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

Dmitriy Pavlov commented on IGNITE-10451:
-----------------------------------------

Cherry-picked to 2.7.6 
https://github.com/apache/ignite/pull/6775/commits/93d0f89cf59fa02b9e3dda2b463835d6608667a4

> .NET: Persistence does not work with custom affinity function
> -------------------------------------------------------------
>
>                 Key: IGNITE-10451
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10451
>             Project: Ignite
>          Issue Type: Bug
>          Components: platforms
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>              Labels: .NET
>             Fix For: 2.8
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> To reproduce: assign custom affinity function in 
> {{PersistenceTest.TestCacheDataSurvivesNodeRestart}}.
> As a result, node restart fails with the following exception:
> {code}
> Apache.Ignite.Core.Common.IgniteException : An error occurred during cache 
> configuration loading from file 
> [file=C:\Users\tps0\AppData\Local\Temp\Ignite_ihxso0zq.tw0\Store\node00-263cfb5e-ec70-4378-8cbb-62b6fcc8043b\cache-persistentCache\cache_data.dat]
>   ----> Apache.Ignite.Core.Common.JavaException : class 
> org.apache.ignite.IgniteException: An error occurred during cache 
> configuration loading from file 
> [file=C:\Users\tps0\AppData\Local\Temp\Ignite_ihxso0zq.tw0\Store\node00-263cfb5e-ec70-4378-8cbb-62b6fcc8043b\cache-persistentCache\cache_data.dat]
>       at 
> org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1027)
>       at 
> org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:48)
>       at 
> org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:74)
> Caused by: class org.apache.ignite.IgniteCheckedException: An error occurred 
> during cache configuration loading from file 
> [file=C:\Users\tps0\AppData\Local\Temp\Ignite_ihxso0zq.tw0\Store\node00-263cfb5e-ec70-4378-8cbb-62b6fcc8043b\cache-persistentCache\cache_data.dat]
>       at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheData(FilePageStoreManager.java:902)
>       at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheConfigurations(FilePageStoreManager.java:844)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.addCacheOnJoinFromConfig(GridCacheProcessor.java:891)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.restoreCacheConfigurations(GridCacheProcessor.java:756)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.access$1300(GridCacheProcessor.java:204)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheProcessor$CacheRecoveryLifecycle.onReadyForRead(GridCacheProcessor.java:5456)
>       at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetastorageReadyForRead(GridCacheDatabaseSharedManager.java:412)
>       at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readMetastore(GridCacheDatabaseSharedManager.java:724)
>       at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetaStorageSubscribersOnReadyForRead(GridCacheDatabaseSharedManager.java:4473)
>       at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1047)
>       at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2040)
>       at 
> org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1732)
>       at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1158)
>       at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:656)
>       at 
> org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:43)
>       ... 1 more
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to 
> deserialize object with given class loader: 
> sun.misc.Launcher$AppClassLoader@18b4aac2
>       at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:147)
>       at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
>       at 
> org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheData(FilePageStoreManager.java:898)
>       ... 15 more
> Caused by: java.lang.IllegalArgumentException: Ignite instance name thread 
> local must be set or this method should be accessed under 
> org.apache.ignite.thread.IgniteThread
>       at 
> org.apache.ignite.internal.IgnitionEx.localIgnite(IgnitionEx.java:1413)
>       at 
> org.apache.ignite.internal.binary.GridBinaryMarshaller.threadLocalContext(GridBinaryMarshaller.java:398)
>       at 
> org.apache.ignite.internal.binary.BinaryObjectImpl.readExternal(BinaryObjectImpl.java:695)
>       at 
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2116)
>       at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2065)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1571)
>       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
>       at 
> org.apache.ignite.internal.processors.platform.cache.affinity.PlatformAffinityFunction.readExternal(PlatformAffinityFunction.java:257)
>       at 
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2116)
>       at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2065)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1571)
>       at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2285)
>       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2209)
>       at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2067)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1571)
>       at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2285)
>       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2209)
>       at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2067)
>       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1571)
>       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
>       at 
> org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:139)
>       ... 17 more
>    at Apache.Ignite.Core.Ignition.Start(IgniteConfiguration cfg) in 
> C:\w\ignite\modules\platforms\dotnet\Apache.Ignite.Core\Ignition.cs:line 323
>    at 
> Apache.Ignite.Core.Tests.Cache.PersistenceTest.TestCacheDataSurvivesNodeRestart()
>  in 
> C:\w\ignite\modules\platforms\dotnet\Apache.Ignite.Core.Tests\Cache\PersistenceTest.cs:line
>  132
> --JavaException
>    at Apache.Ignite.Core.Impl.Unmanaged.Jni.Env.ExceptionCheck() in 
> C:\w\ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Unmanaged\Jni\Env.cs:line
>  490
>    at 
> Apache.Ignite.Core.Impl.Unmanaged.Jni.Env.CallStaticVoidMethod(GlobalRef cls, 
> IntPtr methodId, Int64* argsPtr) in 
> C:\w\ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Unmanaged\Jni\Env.cs:line
>  169
>    at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.IgnitionStart(Env env, 
> String cfgPath, String gridName, Boolean clientMode, Boolean userLogger, 
> Int64 igniteId, Boolean redirectConsole) in 
> C:\w\ignite\modules\platforms\dotnet\Apache.Ignite.Core\Impl\Unmanaged\UnmanagedUtils.cs:line
>  52
>    at Apache.Ignite.Core.Ignition.Start(IgniteConfiguration cfg) in 
> C:\w\ignite\modules\platforms\dotnet\Apache.Ignite.Core\Ignition.cs:line 271
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to