Cannot find schema for object with compact footer
Hi Team, Why we get this interim error while loading heavy tables with persistence enabled? Apache.Ignite.Core.Common.JavaException: javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: Cannot find schema for object with compact footer ---> (Inner Exception #2) Apache.Ignite.Core.Cache.CacheException: class org.apache.ignite.IgniteCheckedException: Cannot find schema for object with compact footer [typeName=Barclays.EM.RealTime.Api.Cache.Infrastructure.SqlEntity.RuleGroup, typeId=1470322919, missingSchemaId=267904191, existingSchemaIds=[]] ---> Apache.Ignite.Core.Common.IgniteException: Cannot find schema for object with compact footer [typeName=Barclays.EM.RealTime.Api.Cache.Infrastructure.SqlEntity.RuleGroup, typeId=1470322919, missingSchemaId=267904191, existingSchemaIds=[]] ---> Apache.Ignite.Core.Common.JavaException: javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: Cannot find schema for object with compact footer [typeName=Barclays.EM.RealTime.Api.Cache.Infrastructure.SqlEntity.RuleGroup, typeId=1470322919, missingSchemaId=267904191, existingSchemaIds=[]] at org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1272) at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.cacheException(IgniteCacheProxyImpl.java:2084) at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.put(IgniteCacheProxyImpl.java:1320) at org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.put(GatewayProtectedCacheProxy.java:866) at org.apache.ignite.internal.processors.platform.cache.PlatformCache.processInStreamOutLong(PlatformCache.java:876) at org.apache.ignite.internal.processors.platform.PlatformTargetProxyImpl.inStreamOutLong(PlatformTargetProxyImpl.java:67) Caused by: class org.apache.ignite.IgniteCheckedException: Cannot find schema for object with compact footer [typeName=Barclays.EM.RealTime.Api.Cache.Infrastructure.SqlEntity.RuleGroup, typeId=1470322919, missingSchemaId=267904191, existingSchemaIds=[]] at org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7929) at org.apache.ignite.internal.processors.cache.GridCacheContext.validateKeyAndValue(GridCacheContext.java:1861) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.mapSingleUpdate(GridNearAtomicSingleUpdateFuture.java:550) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.map(GridNearAtomicSingleUpdateFuture.java:452) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.mapOnTopology(GridNearAtomicSingleUpdateFuture.java:441) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.map(GridNearAtomicAbstractUpdateFuture.java:249) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.update0(GridDhtAtomicCache.java:1133) at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.put0(GridDhtAtomicCache.java:601) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2480) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2459) at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.put(IgniteCacheProxyImpl.java:1317) Regards Satyajit Barclays Execution Services Limited registered in England. Registered No. 1767980. Registered office: 1 Churchill Place, London, E14 5HP Barclays Execution Services Limited provides support and administrative services across Barclays group. Barclays Execution Services Limited is an appointed representative of Barclays Bank UK plc, Barclays Bank plc and Clydesdale Financial Services Limited. Barclays Bank UK plc and Barclays Bank plc are authorised by the Prudential Regulation Authority and regulated by the Financial Conduct Authority and the Prudential Regulation Authority. Clydesdale Financial Services Limited is authorised and regulated by the Financial Conduct Authority. This email and any attachments are confidential and intended solely for the addressee and may also be privileged or exempt from disclosure under applicable law. If you are not the addressee, or have received this email in error, please notify the sender and immediately delete it and any attachments from your system. Do not copy, use, disclose or otherwise act on any part of this email or its attachments. Internet communications are not guaranteed to be secure or virus-free. The Barclays group does not accept responsibility for
Re: select * throws cannot find schema for object with compact footer
Hello, Probably related to [1] (Fixed in Ignite 2.9) [1]: https://issues.apache.org/jira/browse/IGNITE-13192 пн, 24 мая 2021 г. в 18:55, Naveen : > When I tried to retrieve the fields of the binary object it does throw > exception, after deleting all such records, it started working fine. We do > have these records earlier also and worked fine, never had any issues, not > sure what has caused this issue all of a sudden > > Thanks > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >
Re: select * throws cannot find schema for object with compact footer
When I tried to retrieve the fields of the binary object it does throw exception, after deleting all such records, it started working fine. We do have these records earlier also and worked fine, never had any issues, not sure what has caused this issue all of a sudden Thanks -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Re: select * throws cannot find schema for object with compact footer
Hello! Please refer to https://ignite.apache.org/docs/latest/key-value-api/binary-objects#recommendations-on-binary-objects-tuning It seems that some of the rows in the table has a layout of data which is not present on any of nodes. So Ignite does not know how to unpack these rows into columns. Maybe you have lost the contents of binary_meta directory on the nodes or something like that. Regards, -- Ilya Kasnacheev пн, 24 мая 2021 г. в 15:50, Naveen : > HI > > We are using Ignite 2.8.1 > > when we run select * table, it throws below exception, how ever querying > for > a specific key works fine. > what could have gone wrong here ? Anything we can make out with these ids > mentioned below > Error: Failed to execute map query on remote node > [nodeId=3db2b3e5-21ae-46ad-9b14-cf3a1c8171de, errMsg=Failed to execute SQL > query. General error: "class > org.apache.ignite.binary.BinaryObjectException: > Cannot find schema for object with compact footer > [typeName=org.ignite.model.curated.Account, typeId=-2143671743, > missingSchemaId=319535867, existingSchemaIds=[-284217025, -131460726, > 738773736, -361085461, 130249633, -1686791135, 670818893, 1018521906, > -978489660, 1225415027, 1484800635, 469100171]]"; SQL statement: > > [2021-05-24 16:42:58,117][WARN > ][client-connector-#78][CacheObjectBinaryProcessorImpl] Schema is missing > while no metadata updates are in progress (will wait for schema update > within timeout defined by IGNITE_WAIT_SCHEMA_UPDATE system property) > [typeId=-2143671743, missingSchemaId=319535867, pendingVer=3, > acceptedVer=3, > binMetaUpdateTimeout=3] > > Thanks > > > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >
select * throws cannot find schema for object with compact footer
HI We are using Ignite 2.8.1 when we run select * table, it throws below exception, how ever querying for a specific key works fine. what could have gone wrong here ? Anything we can make out with these ids mentioned below Error: Failed to execute map query on remote node [nodeId=3db2b3e5-21ae-46ad-9b14-cf3a1c8171de, errMsg=Failed to execute SQL query. General error: "class org.apache.ignite.binary.BinaryObjectException: Cannot find schema for object with compact footer [typeName=org.ignite.model.curated.Account, typeId=-2143671743, missingSchemaId=319535867, existingSchemaIds=[-284217025, -131460726, 738773736, -361085461, 130249633, -1686791135, 670818893, 1018521906, -978489660, 1225415027, 1484800635, 469100171]]"; SQL statement: [2021-05-24 16:42:58,117][WARN ][client-connector-#78][CacheObjectBinaryProcessorImpl] Schema is missing while no metadata updates are in progress (will wait for schema update within timeout defined by IGNITE_WAIT_SCHEMA_UPDATE system property) [typeId=-2143671743, missingSchemaId=319535867, pendingVer=3, acceptedVer=3, binMetaUpdateTimeout=3] Thanks -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Re: Cannot find schema for object with compact footer
Yes, I suppose so, as it fails in the integration test, which uses the ignite client, so the client node. -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Re: Cannot find schema for object with compact footer
Hi, This feature relates to the underlying representation of binary objects. If you disable the compact footer then a binary object will require a bit more memory, but in general, this impact should not be significant, I think. Could you please clarify where the exception is thrown? On client node? Thanks! -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Re: Cannot find schema for object with compact footer
Slava, what is the consequence/price of disabling compact footer? Although it looks like it only happens for the integration tests, and never (at least we have not observed this problem) in production. This is the test (we use Spock): class SessionsCacheITSpec extends IgniteCacheITSpec { @Inject @Subject IgniteCachesessionsCache @Inject SessionsRepository sessionsRepository def "verify on the start sessionsCache cache is empty"() { expect: sessionsCache.size() == 0 } def "verify get on non existent session id returns null"() { setup: def sessionId = UUID.randomUUID().toString() when: def session = sessionsCache.get(sessionId) then: session == null } def "verify get on the existing session id session is loaded from db"() { setup: ... def session = new Session(... ) sessionsRepository.save(session) when: def actualSession = sessionsCache.get(sessionId) then: actualSession == session } } where IgniteCacheITSpec is the following: @SpringApplicationConfiguration @IntegrationTest @DirtiesContext class IgniteCacheITSpec extends Specification { @Inject CacheEnvironment cacheEnvironment @Inject @Qualifier("client") Ignite igniteClient @Shared Ignite igniteServer @Configuration @ComponentScan([...]) static class IgniteClientConfiguration { } def setupSpec() { Ignition.setClientMode(false) igniteServer = Ignition.start(new ClassPathResource("META-INF/grid.xml").inputStream) } def cleanupSpec() { def grids = Ignition.allGrids() // stop all clients first grids.findAll { it.configuration().isClientMode() } forEach { it.close() } igniteServer.close() } } where the igniteClient is defined as the spring bean in one of the configuration class, like the following: @Bean(name = "ignite", destroyMethod = "close") @Qualifier("client") public Ignite ignite() { Ignition.setClientMode(true); return Ignition.start(igniteConfiguration()); } Probably that could due to usage of the @DirtiesContext, although just a guess. -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Re: Cannot find schema for object with compact footer
Hi, It looks like there is an issue with the binary serialization of objects. I would suggest the following workaround: Could you please share the code of your test? It will be very useful in order to understand the root cause of the issue. By the way, could you try to reproduce the issue using the latest version of Apache Ignite? Thanks! -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Cannot find schema for object with compact footer
>From time to time we get the following integration test failure (using mvn test command). Sometimes it passes without any problems, sometime it fails, and not necessary the same test. It never fails when running the test standalone, i.e. from IDEA for example. Here is the failure: Tests run: 3, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 8.418 sec <<< FAILURE! - in SessionLineupsCacheITSpec verify get on the existing session id returns the corresponding session lineups(SessionLineupsCacheITSpec) Time elapsed: 0.142 sec <<< ERROR! javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: Cannot find schema for object with compact footer [typeId=709293316, schemaId=96980434] at SessionLineupsCacheITSpec.verify get on the existing session id returns the corresponding session lineups(SessionLineupsCacheITSpec.groovy:48) Caused by: org.apache.ignite.IgniteCheckedException: Cannot find schema for object with compact footer [typeId=709293316, schemaId=96980434] at SessionLineupsCacheITSpec.verify get on the existing session id returns the corresponding session lineups(SessionLineupsCacheITSpec.groovy:48) Caused by: org.apache.ignite.binary.BinaryObjectException: Cannot find schema for object with compact footer [typeId=709293316, schemaId=96980434] What does it mean "Cannot find schema for object with compact footer", and what could be the cause of this in-consistence behavior, i.e. why it passes sometimes, and sometimes fails? -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/