[ 
https://issues.apache.org/jira/browse/IGNITE-10406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16708919#comment-16708919
 ] 

Pavel Tupitsyn commented on IGNITE-10406:
-----------------------------------------

The bug is caused by cached Binary Writer Structure: we send meta only once per 
type. The fix is to reset cached meta on reconnect with full cluster restart.

The is one potential issue with the fix (rare use case), see comments in 
Marshaller.OnClientReconnected.

> .NET Failed to run ScanQuery with custom filter after server node restart
> -------------------------------------------------------------------------
>
>                 Key: IGNITE-10406
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10406
>             Project: Ignite
>          Issue Type: Bug
>          Components: platforms
>    Affects Versions: 2.5, 2.6
>            Reporter: Ivan Daschinskiy
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>              Labels: .net
>             Fix For: 2.8
>
>         Attachments: CacheQueriesWithRestartServerTest.cs
>
>
> Scenario:
> 1. Start server
> 2. Start client.
> 3. Restart server and wait for client reconnects the server.
> 4. Put some data to cache and run ScanQuery with custom filter
>  
> StackTrace:
> {code:java}
> class org.apache.ignite.IgniteCheckedException: Failed to inject resource 
> [method=setIgniteInstance, 
> target=org.apache.ignite.internal.processors.platform.cache.PlatformCacheEntryFilterImpl@6225c21c,
>  rsrc=IgniteKernal [cfg=IgniteConfiguration 
> [igniteInstanceName=CashflowCluster, pubPoolSize=8, svcPoolSize=8, 
> callbackPoolSize=8, stripedPoolSize=8, sysPoolSize=8, mgmtPoolSize=4, 
> igfsPoolSize=4, dataStreamerPoolSize=8,
>  utilityCachePoolSize=8, utilityCacheKeepAliveTime=60000, p2pPoolSize=2, 
> qryPoolSize=8, 
> igniteHome=C:\Job\fd-tasks\7404\IgniteTests2\packages\Apache.Ignite.2.6.0, 
> igniteWorkDir=C:\Job\fd-tasks\7404\IgniteTests2\packages\Apache.Ignite.2.6.0\work,
>  mbeanSrv=com.sun.jmx.mbeanserver.JmxMBeanServer@49993335, 
> nodeId=3f4aadd9-01b3-4ffe-b629-895fb6ac886f, 
> marsh=org.apache.ignite.internal.binary.BinaryMarshaller@77a57272, mar
> shLocJobs=false, daemon=false, p2pEnabled=false, netTimeout=5000, 
> sndRetryDelay=1000, sndRetryCnt=3, metricsHistSize=10000, 
> metricsUpdateFreq=2000, metricsExpTime=9223372036854775807, 
> discoSpi=TcpDiscoverySpi [addrRslvr=null, sockTimeout=5000, ackTimeout=5000, 
> marsh=JdkMarshaller 
> [clsFilter=org.apache.ignite.marshaller.MarshallerUtils$1@65b1c1e3], 
> reconCnt=10, reconDelay=2000, maxAckTimeout=600000, forceSrvMode=fals
> e, clientReconnectDisabled=false, internalLsnr=null], segPlc=STOP, 
> segResolveAttempts=2, waitForSegOnStart=true, allResolversPassReq=true, 
> segChkFreq=10000, commSpi=TcpCommunicationSpi 
> [connectGate=org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$ConnectGateway@4737110c,
>  
> connPlc=org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$6@bce0ed4,
>  enableForcibleNodeKill=false, enableTroubleshootingLog=fa
> lse, 
> srvLsnr=org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$2@11c20519,
>  locAddr=null, locHost=0.0.0.0/0.0.0.0, locPort=47100, locPortRange=100, 
> shmemPort=-1, directBuf=true, directSndBuf=false, idleConnTimeout=600000, 
> connTimeout=5000, maxConnTimeout=600000, reconCnt=10, sockSndBuf=32768, 
> sockRcvBuf=32768, msgQueueLimit=0, slowClientQueueLimit=0, 
> nioSrvr=GridNioServer [selectorSpins=0, filterChain=Filte
> rChain[filters=[GridNioCodecFilter 
> [parser=org.apache.ignite.internal.util.nio.GridDirectParser@6839fd4e, 
> directMode=true], GridConnectionBytesVerifyFilter], 
> lsnr=org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$2@11c20519, 
> closed=false, directBuf=true, tcpNoDelay=true, sockSndBuf=32768, 
> sockRcvBuf=32768, writeTimeout=2000, idleTimeout=600000, skipWrite=false, 
> skipRead=false, locAddr=0.0.0.0/0.0.0.0:47100
> , order=LITTLE_ENDIAN, sndQueueLimit=0, directMode=true, 
> metricsLsnr=org.apache.ignite.spi.communication.tcp.TcpCommunicationMetricsListener@4e41089d,
>  sslFilter=null, msgQueueLsnr=null, readerMoveCnt=0, writerMoveCnt=0, 
> readWriteSelectorsAssign=false], shmemSrv=null, usePairedConnections=false, 
> connectionsPerNode=1, tcpNoDelay=true, filterReachableAddresses=false, 
> ackSndThreshold=32, unackedMsgsBufSize=0, sockWriteT
> imeout=2000, 
> lsnr=org.apache.ignite.internal.managers.communication.GridIoManager$2@432d2e4e,
>  boundTcpPort=47100, boundTcpShmemPort=-1, selectorsCnt=4, selectorSpins=0, 
> addrRslvr=null, 
> ctxInitLatch=java.util.concurrent.CountDownLatch@70beb599[Count = 0], 
> stopping=false, 
> metricsLsnr=org.apache.ignite.spi.communication.tcp.TcpCommunicationMetricsListener@4e41089d],
>  evtSpi=org.apache.ignite.spi.eventstorage.NoopEventSt
> orageSpi@32a068d1, colSpi=NoopCollisionSpi [], deploySpi=LocalDeploymentSpi 
> [lsnr=org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore$LocalDeploymentListener@3c6df856],
>  indexingSpi=org.apache.ignite.spi.indexing.noop.NoopIndexingSpi@282003e1, 
> addrRslvr=null, clientMode=false, rebalanceThreadPoolSize=1, 
> txCfg=org.apache.ignite.configuration.TransactionConfiguration@7fad8c79, 
> cacheSanityCheckEnable
> d=true, discoStartupDelay=60000, deployMode=SHARED, p2pMissedCacheSize=100, 
> locHost=null, timeSrvPortBase=31100, timeSrvPortRange=100, 
> failureDetectionTimeout=10000, clientFailureDetectionTimeout=30000, 
> metricsLogFreq=60000, hadoopCfg=null, 
> connectorCfg=org.apache.ignite.configuration.ConnectorConfiguration@71a794e5, 
> odbcCfg=null, warmupClos=null, atomicCfg=AtomicConfiguration 
> [seqReserveSize=1000, cacheMode=PARTITI
> ONED, backups=1, aff=null, grpName=null], classLdr=null, sslCtxFactory=null, 
> platformCfg=PlatformDotNetConfiguration [binaryCfg=null], binaryCfg=null, 
> memCfg=null, pstCfg=null, dsCfg=DataStorageConfiguration 
> [sysRegionInitSize=41943040, sysCacheMaxSize=104857600, pageSize=4096, 
> concLvl=0, dfltDataRegConf=DataRegionConfiguration [name=default, 
> maxSize=3405547110, initSize=268435456, swapPath=null, pageEvictionMode=DI
> SABLED, evictionThreshold=0.9, emptyPagesPoolSize=100, metricsEnabled=false, 
> metricsSubIntervalCount=5, metricsRateTimeInterval=60000, 
> persistenceEnabled=false, checkpointPageBufSize=0], storagePath=null, 
> checkpointFreq=180000, lockWaitTime=10000, checkpointThreads=4, 
> checkpointWriteOrder=SEQUENTIAL, walHistSize=20, walSegments=10, 
> walSegmentSize=67108864, walPath=db/wal, walArchivePath=db/wal/archive, 
> metricsEnable
> d=false, walMode=LOG_ONLY, walTlbSize=131072, walBuffSize=0, 
> walFlushFreq=2000, walFsyncDelay=1000, walRecordIterBuffSize=67108864, 
> alwaysWriteFullPages=false, 
> fileIOFactory=org.apache.ignite.internal.processors.cache.persistence.file.AsyncFileIOFactory@1dd02175,
>  metricsSubIntervalCnt=5, metricsRateTimeInterval=60000, 
> walAutoArchiveAfterInactivity=-1, writeThrottlingEnabled=false, 
> walCompactionEnabled=false], active
> OnStart=true, autoActivation=true, longQryWarnTimeout=3000, sqlConnCfg=null, 
> cliConnCfg=ClientConnectorConfiguration [host=null, port=10800, 
> portRange=100, sockSndBufSize=0, sockRcvBufSize=0, tcpNoDelay=true, 
> maxOpenCursorsPerConn=128, threadPoolSize=8, idleTimeout=0, jdbcEnabled=true, 
> odbcEnabled=true, thinCliEnabled=true, sslEnabled=false, 
> useIgniteSslCtxFactory=true, sslClientAuth=false, sslCtxFactory=null], auth
> Enabled=false, failureHnd=null, commFailureRslvr=null], 
> igniteInstanceName=CashflowCluster, startTime=1543228541082, rsrcCtx=null, 
> reconnectState=org.apache.ignite.internal.IgniteKernal$ReconnectState@472ee9a1]]
>         at 
> org.apache.ignite.internal.processors.resource.GridResourceUtils.inject(GridResourceUtils.java:88)
>         at 
> org.apache.ignite.internal.processors.resource.GridResourceBasicInjector.inject(GridResourceBasicInjector.java:59)
>         at 
> org.apache.ignite.internal.processors.resource.GridResourceIoc$ClassDescriptor.injectInternal(GridResourceIoc.java:446)
>         at 
> org.apache.ignite.internal.processors.resource.GridResourceIoc$ClassDescriptor.inject(GridResourceIoc.java:470)
>         at 
> org.apache.ignite.internal.processors.resource.GridResourceProcessor.inject(GridResourceProcessor.java:278)
>         at 
> org.apache.ignite.internal.processors.resource.GridResourceProcessor.inject(GridResourceProcessor.java:162)
>         at 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.injectResources(GridCacheQueryManager.java:884)
>         at 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.scanIterator(GridCacheQueryManager.java:809)
>         at 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.executeQuery(GridCacheQueryManager.java:592)
>         at 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.queryResult(GridCacheQueryManager.java:1494)
>         at 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.runQuery(GridCacheQueryManager.java:1130)
>         at 
> org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager.processQueryRequest(GridCacheDistributedQueryManager.java:230)
>         at 
> org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$2.apply(GridCacheDistributedQueryManager.java:108)
>         at 
> org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$2.apply(GridCacheDistributedQueryManager.java:106)
>         at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1054)
>         at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579)
>         at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378)
>         at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304)
>         at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99)
>         at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293)
>         at 
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556)
>         at 
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184)
>         at 
> org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125)
>         at 
> org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1091)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at 
> org.apache.ignite.internal.processors.resource.GridResourceUtils.inject(GridResourceUtils.java:85)
>         ... 26 more
> Caused by: class org.apache.ignite.IgniteException: Cannot find schema for 
> object with compact footer [typeId=283075424, schemaId=-1794545082]
>         at 
> org.apache.ignite.internal.processors.platform.callback.PlatformCallbackUtils.inLongOutLong(Native
>  Method)
>         at 
> org.apache.ignite.internal.processors.platform.callback.PlatformCallbackGateway.cacheEntryFilterCreate(PlatformCallbackGateway.java:128)
>         at 
> org.apache.ignite.internal.processors.platform.cache.PlatformCacheEntryFilterImpl.setIgniteInstance(PlatformCacheEntryFilterImpl.java:105)
>         ... 31 more
> {code}
> Reproducer is attached



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to