You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vyacheslav Koptilin (Jira)" <ji...@apache.org> on 2021/09/04 14:01:00 UTC

[jira] [Updated] (IGNITE-15454) ITSchemaChangeTableViewTest hangs on the main branch

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

Vyacheslav Koptilin updated IGNITE-15454:
-----------------------------------------
    Description: 
A number of integration tests (SchemaChangeKVViewTest, SchemaChangeTableViewTest, LiveSchemaChangeTableTest, LiveSchemaChangeKVViewTest) hang with the following exception:

 
{noformat}
2021-09-04 16:37:42:122 +0300 [ERROR][Thread-71][CursorImpl] Unable to evaluate cursor hasNext command2021-09-04 16:37:42:122 +0300 [ERROR][Thread-71][CursorImpl] Unable to evaluate cursor hasNext commandjava.util.concurrent.ExecutionException: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 1000ms in 'source(MonoDefer)' (and no fallback has been configured) at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999) at org.apache.ignite.internal.metastorage.client.CursorImpl$InnerIterator.hasNext(CursorImpl.java:101) at org.apache.ignite.internal.metastorage.client.MetaStorageServiceImpl$WatchProcessor$Watcher.run(MetaStorageServiceImpl.java:453)Caused by: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 1000ms in 'source(MonoDefer)' (and no fallback has been configured) at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:289) at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:274) at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:396) at reactor.core.publisher.StrictSubscriber.onNext(StrictSubscriber.java:89) at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73) at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:117) at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) 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) {noformat}
It seems that the root cause is the following event triggered by TableManager#changeSchema
{code:java}
CompletableFuture.allOf(schemaReadyFut)CompletableFuture.allOf(schemaReadyFut) .exceptionally(e -> { LOG.error("Failed to upgrade schema for a table [name=" + tblName + ", id=" + tblId + ']', e); onEvent(TableEvent.ALTER, new TableEventParameters(tblId, tblName), e); return null; }) .thenRun(() -> onEvent(TableEvent.ALTER, new TableEventParameters(tblId, tblName), null) );
{code}
 

  was:
A number of integration tests (SchemaChangeKVViewTest, SchemaChangeTableViewTest, LiveSchemaChangeTableTest, LiveSchemaChangeKVViewTest) hang with the following exception:



 
{noformat}
2021-09-04 16:37:42:122 +0300 [ERROR][Thread-71][CursorImpl] Unable to evaluate cursor hasNext command2021-09-04 16:37:42:122 +0300 [ERROR][Thread-71][CursorImpl] Unable to evaluate cursor hasNext commandjava.util.concurrent.ExecutionException: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 1000ms in 'source(MonoDefer)' (and no fallback has been configured) at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999) at org.apache.ignite.internal.metastorage.client.CursorImpl$InnerIterator.hasNext(CursorImpl.java:101) at org.apache.ignite.internal.metastorage.client.MetaStorageServiceImpl$WatchProcessor$Watcher.run(MetaStorageServiceImpl.java:453)Caused by: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 1000ms in 'source(MonoDefer)' (and no fallback has been configured) at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:289) at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:274) at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:396) at reactor.core.publisher.StrictSubscriber.onNext(StrictSubscriber.java:89) at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73) at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:117) at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) 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){noformat}
 

It seems that the root cause is the follwoing event triggered by TableManager#

changeSchema
{code:java}
CompletableFuture.allOf(schemaReadyFut)CompletableFuture.allOf(schemaReadyFut) .exceptionally(e -> { LOG.error("Failed to upgrade schema for a table [name=" + tblName + ", id=" + tblId + ']', e);
 onEvent(TableEvent.ALTER, new TableEventParameters(tblId, tblName), e); return null; }) .thenRun(() -> onEvent(TableEvent.ALTER, new TableEventParameters(tblId, tblName), null) );
{code}
 


> ITSchemaChangeTableViewTest hangs on the main branch
> ----------------------------------------------------
>
>                 Key: IGNITE-15454
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15454
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Vyacheslav Koptilin
>            Assignee: Vyacheslav Koptilin
>            Priority: Major
>              Labels: ignite-3
>
> A number of integration tests (SchemaChangeKVViewTest, SchemaChangeTableViewTest, LiveSchemaChangeTableTest, LiveSchemaChangeKVViewTest) hang with the following exception:
>  
> {noformat}
> 2021-09-04 16:37:42:122 +0300 [ERROR][Thread-71][CursorImpl] Unable to evaluate cursor hasNext command2021-09-04 16:37:42:122 +0300 [ERROR][Thread-71][CursorImpl] Unable to evaluate cursor hasNext commandjava.util.concurrent.ExecutionException: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 1000ms in 'source(MonoDefer)' (and no fallback has been configured) at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999) at org.apache.ignite.internal.metastorage.client.CursorImpl$InnerIterator.hasNext(CursorImpl.java:101) at org.apache.ignite.internal.metastorage.client.MetaStorageServiceImpl$WatchProcessor$Watcher.run(MetaStorageServiceImpl.java:453)Caused by: java.util.concurrent.TimeoutException: Did not observe any item or terminal signal within 1000ms in 'source(MonoDefer)' (and no fallback has been configured) at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:289) at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:274) at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:396) at reactor.core.publisher.StrictSubscriber.onNext(StrictSubscriber.java:89) at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73) at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:117) at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) 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) {noformat}
> It seems that the root cause is the following event triggered by TableManager#changeSchema
> {code:java}
> CompletableFuture.allOf(schemaReadyFut)CompletableFuture.allOf(schemaReadyFut) .exceptionally(e -> { LOG.error("Failed to upgrade schema for a table [name=" + tblName + ", id=" + tblId + ']', e); onEvent(TableEvent.ALTER, new TableEventParameters(tblId, tblName), e); return null; }) .thenRun(() -> onEvent(TableEvent.ALTER, new TableEventParameters(tblId, tblName), null) );
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)