[ 
https://issues.apache.org/jira/browse/IGNITE-18990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladislav Pyatkov updated IGNITE-18990:
---------------------------------------
    Description: 
The exception does not connect with placement driver directly, but the feature 
increases probability of the problem.
The root cause of the issue is in SqlSchemaManagerImpl#schemasVv that is 
updated depending on table creation and the configuration revision update in 
the same time. To got rid of the issue, required waiting of table creation 
event (TableEvent.CREATE) before complete the versioned value object  
(schemasVv).

{noformat}
WARNING: Error occurred while updating tables.
java.util.concurrent.CompletionException: java.lang.AssertionError: Token must 
be greater than actual [token=6734, actual=6734]
    at 
java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
    at 
java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
    at 
java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1081)
    at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
    at 
java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
    at 
org.apache.ignite.internal.causality.VersionedValue.completeInternal(VersionedValue.java:335)
    at 
org.apache.ignite.internal.causality.VersionedValue.lambda$completeOnRevision$3(VersionedValue.java:493)
    at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
    at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
    at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
    at 
java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
    at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl.lambda$sendWithRetry$38(RaftGroupServiceImpl.java:525)
    at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
    at 
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
    at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
    at 
java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
    at 
org.apache.ignite.network.DefaultMessagingService.onInvokeResponse(DefaultMessagingService.java:349)
    at 
org.apache.ignite.network.DefaultMessagingService.onMessage(DefaultMessagingService.java:314)
    at 
org.apache.ignite.network.DefaultMessagingService.lambda$onMessage$3(DefaultMessagingService.java:292)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.AssertionError: Token must be greater than actual 
[token=6734, actual=6734]
    at 
org.apache.ignite.internal.causality.VersionedValue.checkToken(VersionedValue.java:597)
    at 
org.apache.ignite.internal.causality.VersionedValue.update(VersionedValue.java:403)
    at 
org.apache.ignite.internal.sql.engine.schema.SqlSchemaManagerImpl.onTableCreated(SqlSchemaManagerImpl.java:210)
    at 
org.apache.ignite.internal.sql.engine.SqlQueryProcessor$TableCreatedListener.notify(SqlQueryProcessor.java:580)
    at 
org.apache.ignite.internal.sql.engine.SqlQueryProcessor$TableCreatedListener.notify(SqlQueryProcessor.java:572)
    at org.apache.ignite.internal.manager.Producer.fireEvent(Producer.java:108)
    at org.apache.ignite.internal.manager.Producer.fireEvent(Producer.java:129)
    at 
org.apache.ignite.internal.table.distributed.TableManager.lambda$createTableLocally$36(TableManager.java:1158)
    at 
org.apache.ignite.internal.util.IgniteUtils.inBusyLock(IgniteUtils.java:861)
    at 
org.apache.ignite.internal.table.distributed.TableManager.lambda$createTableLocally$37(TableManager.java:1158)
    at 
java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
    ... 19 more
{noformat}

After the issue will be fixed, placement driver ready to include in the node 
start workflow.

> Partial redesign of TableManager to solve the problems related to huge load 
> of metastorage updates
> --------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-18990
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18990
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Denis Chudov
>            Priority: Major
>              Labels: ignite-3
>
> The exception does not connect with placement driver directly, but the 
> feature increases probability of the problem.
> The root cause of the issue is in SqlSchemaManagerImpl#schemasVv that is 
> updated depending on table creation and the configuration revision update in 
> the same time. To got rid of the issue, required waiting of table creation 
> event (TableEvent.CREATE) before complete the versioned value object  
> (schemasVv).
> {noformat}
> WARNING: Error occurred while updating tables.
> java.util.concurrent.CompletionException: java.lang.AssertionError: Token 
> must be greater than actual [token=6734, actual=6734]
>     at 
> java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
>     at 
> java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
>     at 
> java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1081)
>     at 
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
>     at 
> java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
>     at 
> org.apache.ignite.internal.causality.VersionedValue.completeInternal(VersionedValue.java:335)
>     at 
> org.apache.ignite.internal.causality.VersionedValue.lambda$completeOnRevision$3(VersionedValue.java:493)
>     at 
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
>     at 
> java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
>     at 
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
>     at 
> java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
>     at 
> org.apache.ignite.internal.raft.RaftGroupServiceImpl.lambda$sendWithRetry$38(RaftGroupServiceImpl.java:525)
>     at 
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
>     at 
> java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
>     at 
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
>     at 
> java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
>     at 
> org.apache.ignite.network.DefaultMessagingService.onInvokeResponse(DefaultMessagingService.java:349)
>     at 
> org.apache.ignite.network.DefaultMessagingService.onMessage(DefaultMessagingService.java:314)
>     at 
> org.apache.ignite.network.DefaultMessagingService.lambda$onMessage$3(DefaultMessagingService.java:292)
>     at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>     at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>     at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: java.lang.AssertionError: Token must be greater than actual 
> [token=6734, actual=6734]
>     at 
> org.apache.ignite.internal.causality.VersionedValue.checkToken(VersionedValue.java:597)
>     at 
> org.apache.ignite.internal.causality.VersionedValue.update(VersionedValue.java:403)
>     at 
> org.apache.ignite.internal.sql.engine.schema.SqlSchemaManagerImpl.onTableCreated(SqlSchemaManagerImpl.java:210)
>     at 
> org.apache.ignite.internal.sql.engine.SqlQueryProcessor$TableCreatedListener.notify(SqlQueryProcessor.java:580)
>     at 
> org.apache.ignite.internal.sql.engine.SqlQueryProcessor$TableCreatedListener.notify(SqlQueryProcessor.java:572)
>     at 
> org.apache.ignite.internal.manager.Producer.fireEvent(Producer.java:108)
>     at 
> org.apache.ignite.internal.manager.Producer.fireEvent(Producer.java:129)
>     at 
> org.apache.ignite.internal.table.distributed.TableManager.lambda$createTableLocally$36(TableManager.java:1158)
>     at 
> org.apache.ignite.internal.util.IgniteUtils.inBusyLock(IgniteUtils.java:861)
>     at 
> org.apache.ignite.internal.table.distributed.TableManager.lambda$createTableLocally$37(TableManager.java:1158)
>     at 
> java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
>     ... 19 more
> {noformat}
> After the issue will be fixed, placement driver ready to include in the node 
> start workflow.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to