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

Denis Chudov updated IGNITE-18990:
----------------------------------
    Summary: Integrate PlacementDriverManager into IgniteImpl  (was: Partial 
redesign of TableManager to solve the problems related to huge load of 
metastorage updates)

> Integrate PlacementDriverManager into IgniteImpl
> ------------------------------------------------
>
>                 Key: IGNITE-18990
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18990
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Denis Chudov
>            Assignee: Denis Chudov
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> 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