[ 
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:

 
{code:java}
2021-09-04 16:37:42:122 +0300 [ERROR][Thread-71][CursorImpl] Unable to evaluate 
cursor hasNext command java.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){code}
It seems that the root cause is the following event triggered by 
TableManager#changeSchema
{code:java}
            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}
It should be changed to
{code:java}
 onEvent(TableEvent.ALTER, new TableEventParameters(tblId, tblName, tbl), 
e);{code}
Thread dump attached.

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

 
{code:java}
2021-09-04 16:37:42:122 +0300 [ERROR][Thread-71][CursorImpl] Unable to evaluate 
cursor hasNext command java.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){code}
It seems that the root cause is the following event triggered by 
TableManager#changeSchema
{code:java}
            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}
It should be changed to
{code:java}
 onEvent(TableEvent.ALTER, new TableEventParameters(tblId, tblName, tbl), 
e);{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
>         Attachments: ignite-15454-threaddump.txt
>
>
> A number of integration tests (SchemaChangeKVViewTest, 
> SchemaChangeTableViewTest, LiveSchemaChangeTableTest, 
> LiveSchemaChangeKVViewTest) hang with the following exception:
>  
> {code:java}
> 2021-09-04 16:37:42:122 +0300 [ERROR][Thread-71][CursorImpl] Unable to 
> evaluate cursor hasNext command java.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){code}
> It seems that the root cause is the following event triggered by 
> TableManager#changeSchema
> {code:java}
>             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}
> It should be changed to
> {code:java}
>  onEvent(TableEvent.ALTER, new TableEventParameters(tblId, tblName, tbl), 
> e);{code}
> Thread dump attached.



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

Reply via email to