[
https://issues.apache.org/jira/browse/IGNITE-23871?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Puchkovskiy updated IGNITE-23871:
---------------------------------------
Description:
Apache.Ignite.Tests.Table.SchemaSynchronizationTest.TestSchemaUpdateWhileStreaming(True,True)
failed in
[https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/8670063?hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildTestsSection=true&expandBuildDeploymentsSection=false&expandCode+Inspection=true&expandBuildProblemsSection=true&expandBuildChangesSection=true]
with the following exception:
Apache.Ignite.Table.DataStreamerException : Cannot find table version 2 in
table descriptor CatalogTableDescriptor [zoneId=0, schemaId=1, pkIndexId=122,
columns=ArrayList [CatalogTableColumnDescriptor [name=KEY, type=INT64,
nullable=false, length=1, precision=0, scale=0,
defaultValue=org.apache.ignite.internal.catalog.commands.DefaultValue$ConstantValue@d7d2d7b2]],
primaryKeyColumns=ArrayList [KEY], colocationColumns=ArrayList [KEY],
storageProfile=default, super=CatalogObjectDescriptor [id=121,
name=TESTSCHEMAUPDATEWHILESTREAMING_TRUE_TRUE, type=TABLE, updateToken=1165]]
caused by
Caused by: java.lang.AssertionError: Cannot find table version 2 in table
descriptor CatalogTableDescriptor [zoneId=0, schemaId=1, pkIndexId=122,
columns=ArrayList [CatalogTableColumnDescriptor [name=KEY, type=INT64,
nullable=false, length=1, precision=0, scale=0,
defaultValue=org.apache.ignite.internal.catalog.commands.DefaultValue$ConstantValue@d7d2d7b2]],
primaryKeyColumns=ArrayList [KEY], colocationColumns=ArrayList [KEY],
storageProfile=default, super=CatalogObjectDescriptor [id=121,
name=TESTSCHEMAUPDATEWHILESTREAMING_TRUE_TRUE, type=TABLE, updateToken=1165]]
at
org.apache.ignite.internal.schema.catalog.CatalogToSchemaDescriptorConverter.convert(CatalogToSchemaDescriptorConverter.java:151)
at
org.apache.ignite.internal.schema.SchemaManager.loadSchemaDescriptor(SchemaManager.java:212)
at
org.apache.ignite.internal.schema.SchemaManager.lambda$createSchemaRegistry$4(SchemaManager.java:248)
at
org.apache.ignite.internal.util.IgniteUtils.inBusyLock(IgniteUtils.java:835)
at
org.apache.ignite.internal.schema.SchemaManager.lambda$createSchemaRegistry$5(SchemaManager.java:248)
at
org.apache.ignite.internal.schema.registry.SchemaRegistryImpl.loadStoredSchemaByVersion(SchemaRegistryImpl.java:307)
at
org.apache.ignite.internal.schema.registry.SchemaRegistryImpl.getFromCacheOrLoad(SchemaRegistryImpl.java:108)
at
org.apache.ignite.internal.schema.registry.SchemaRegistryImpl.schemaAsync(SchemaRegistryImpl.java:136)
at
org.apache.ignite.client.handler.requests.table.ClientSchemasGetRequest.lambda$process$2(ClientSchemasGetRequest.java:70)
at
java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
at
java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235)
at
org.apache.ignite.client.handler.requests.table.ClientSchemasGetRequest.process(ClientSchemasGetRequest.java:51)
Looks like the problem is that, if a server node does not contain information
about a certain table version N, but thin client requests this version, an
assertion happens in SchemaRegistry#schemaAsync(int). This method should not
fail in this case, instead it must return a future that completes when the node
gets table version N.
was:
Apache.Ignite.Tests.Table.SchemaSynchronizationTest.TestSchemaUpdateWhileStreaming(True,True)
failed in
[https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/8670063?hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildTestsSection=true&expandBuildDeploymentsSection=false&expandCode+Inspection=true&expandBuildProblemsSection=true&expandBuildChangesSection=true]
with the following exception:
Apache.Ignite.Table.DataStreamerException : Cannot find table version 2 in
table descriptor CatalogTableDescriptor [zoneId=0, schemaId=1, pkIndexId=122,
columns=ArrayList [CatalogTableColumnDescriptor [name=KEY, type=INT64,
nullable=false, length=1, precision=0, scale=0,
defaultValue=org.apache.ignite.internal.catalog.commands.DefaultValue$ConstantValue@d7d2d7b2]],
primaryKeyColumns=ArrayList [KEY], colocationColumns=ArrayList [KEY],
storageProfile=default, super=CatalogObjectDescriptor [id=121,
name=TESTSCHEMAUPDATEWHILESTREAMING_TRUE_TRUE, type=TABLE, updateToken=1165]]
caused by
Caused by: java.lang.AssertionError: Cannot find table version 2 in table
descriptor CatalogTableDescriptor [zoneId=0, schemaId=1, pkIndexId=122,
columns=ArrayList [CatalogTableColumnDescriptor [name=KEY, type=INT64,
nullable=false, length=1, precision=0, scale=0,
defaultValue=org.apache.ignite.internal.catalog.commands.DefaultValue$ConstantValue@d7d2d7b2]],
primaryKeyColumns=ArrayList [KEY], colocationColumns=ArrayList [KEY],
storageProfile=default, super=CatalogObjectDescriptor [id=121,
name=TESTSCHEMAUPDATEWHILESTREAMING_TRUE_TRUE, type=TABLE, updateToken=1165]]
at
org.apache.ignite.internal.schema.catalog.CatalogToSchemaDescriptorConverter.convert(CatalogToSchemaDescriptorConverter.java:151)
Looks like the problem is that, if a server node does not contain information
about a certain table version N, but thin client requests this version, an
assertion happens in SchemaRegistry#schemaAsync(int). This method should not
fail in this case, instead it must return a future that completes when the node
gets table version N.
> TestSchemaUpdateWhileStreaming failed
> -------------------------------------
>
> Key: IGNITE-23871
> URL: https://issues.apache.org/jira/browse/IGNITE-23871
> Project: Ignite
> Issue Type: Bug
> Reporter: Roman Puchkovskiy
> Assignee: Roman Puchkovskiy
> Priority: Major
> Labels: ignite-3
>
> Apache.Ignite.Tests.Table.SchemaSynchronizationTest.TestSchemaUpdateWhileStreaming(True,True)
> failed in
> [https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/8670063?hideTestsFromDependencies=false&hideProblemsFromDependencies=false&expandBuildTestsSection=true&expandBuildDeploymentsSection=false&expandCode+Inspection=true&expandBuildProblemsSection=true&expandBuildChangesSection=true]
> with the following exception:
> Apache.Ignite.Table.DataStreamerException : Cannot find table version 2 in
> table descriptor CatalogTableDescriptor [zoneId=0, schemaId=1, pkIndexId=122,
> columns=ArrayList [CatalogTableColumnDescriptor [name=KEY, type=INT64,
> nullable=false, length=1, precision=0, scale=0,
> defaultValue=org.apache.ignite.internal.catalog.commands.DefaultValue$ConstantValue@d7d2d7b2]],
> primaryKeyColumns=ArrayList [KEY], colocationColumns=ArrayList [KEY],
> storageProfile=default, super=CatalogObjectDescriptor [id=121,
> name=TESTSCHEMAUPDATEWHILESTREAMING_TRUE_TRUE, type=TABLE, updateToken=1165]]
> caused by
> Caused by: java.lang.AssertionError: Cannot find table version 2 in table
> descriptor CatalogTableDescriptor [zoneId=0, schemaId=1, pkIndexId=122,
> columns=ArrayList [CatalogTableColumnDescriptor [name=KEY, type=INT64,
> nullable=false, length=1, precision=0, scale=0,
> defaultValue=org.apache.ignite.internal.catalog.commands.DefaultValue$ConstantValue@d7d2d7b2]],
> primaryKeyColumns=ArrayList [KEY], colocationColumns=ArrayList [KEY],
> storageProfile=default, super=CatalogObjectDescriptor [id=121,
> name=TESTSCHEMAUPDATEWHILESTREAMING_TRUE_TRUE, type=TABLE, updateToken=1165]]
> at
> org.apache.ignite.internal.schema.catalog.CatalogToSchemaDescriptorConverter.convert(CatalogToSchemaDescriptorConverter.java:151)
> at
> org.apache.ignite.internal.schema.SchemaManager.loadSchemaDescriptor(SchemaManager.java:212)
> at
> org.apache.ignite.internal.schema.SchemaManager.lambda$createSchemaRegistry$4(SchemaManager.java:248)
> at
> org.apache.ignite.internal.util.IgniteUtils.inBusyLock(IgniteUtils.java:835)
> at
> org.apache.ignite.internal.schema.SchemaManager.lambda$createSchemaRegistry$5(SchemaManager.java:248)
> at
> org.apache.ignite.internal.schema.registry.SchemaRegistryImpl.loadStoredSchemaByVersion(SchemaRegistryImpl.java:307)
> at
> org.apache.ignite.internal.schema.registry.SchemaRegistryImpl.getFromCacheOrLoad(SchemaRegistryImpl.java:108)
> at
> org.apache.ignite.internal.schema.registry.SchemaRegistryImpl.schemaAsync(SchemaRegistryImpl.java:136)
> at
> org.apache.ignite.client.handler.requests.table.ClientSchemasGetRequest.lambda$process$2(ClientSchemasGetRequest.java:70)
> at
> java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
> at
> java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235)
> at
> org.apache.ignite.client.handler.requests.table.ClientSchemasGetRequest.process(ClientSchemasGetRequest.java:51)
>
> Looks like the problem is that, if a server node does not contain information
> about a certain table version N, but thin client requests this version, an
> assertion happens in SchemaRegistry#schemaAsync(int). This method should not
> fail in this case, instead it must return a future that completes when the
> node gets table version N.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)