Denis Magda created IGNITE-2359:
-----------------------------------

             Summary: Race in MarshallerContextImpl when working with files 
that store "id->clsName" mapping
                 Key: IGNITE-2359
                 URL: https://issues.apache.org/jira/browse/IGNITE-2359
             Project: Ignite
          Issue Type: Bug
          Components: cache
    Affects Versions: ignite-1.4
            Reporter: Denis Magda
            Priority: Critical


There is a possible race that happens when several nodes are being started on 
the same box and try to preload 'clsName' for 'id' from a file stored in a work 
directory.

{noformat}
Caused by: javax.cache.integration.CacheLoaderException: 
java.lang.NullPointerException: Ouch! Argument cannot be null: val
        at 
org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.loadCache(GridCacheStoreManagerAdapter.java:509)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAdapter.localLoadCache(GridCacheAdapter.java:3442)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter.localLoadCache(GridDhtCacheAdapter.java:448)
        at 
org.apache.ignite.internal.processors.cache.IgniteCacheProxy.localLoadCache(IgniteCacheProxy.java:372)
        at 
com.jefco.portfoliotrading.gets.loader.GGLifecycleBean.loadCache(GGLifecycleBean.java:69)
        at 
com.jefco.portfoliotrading.gets.loader.GGLifecycleBean.onLifecycleEvent(GGLifecycleBean.java:48)
        at 
org.apache.ignite.internal.IgniteKernal.notifyLifecycleBeans(IgniteKernal.java:620)
        ... 8 more
Caused by: java.lang.NullPointerException: Ouch! Argument cannot be null: val
        at 
org.apache.ignite.internal.util.GridArgumentCheck.notNull(GridArgumentCheck.java:48)
        at 
org.apache.ignite.internal.util.GridArgumentCheck.notNull(GridArgumentCheck.java:61)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.tryPutIfAbsent(GridDhtAtomicCache.java:394)
        at 
org.apache.ignite.internal.MarshallerContextImpl.registerClassName(MarshallerContextImpl.java:114)
        at 
org.apache.ignite.internal.MarshallerContextImpl.className(MarshallerContextImpl.java:165)
        at 
org.apache.ignite.internal.MarshallerContextAdapter.getClass(MarshallerContextAdapter.java:174)
        at 
org.apache.ignite.marshaller.optimized.OptimizedMarshallerUtils.classDescriptor(OptimizedMarshallerUtils.java:256)
        at 
org.apache.ignite.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:309)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:365)
        at 
org.apache.ignite.marshaller.optimized.OptimizedObjectInputStream.readArrayList(OptimizedObjectInputStream.java:602)
        at 
org.apache.ignite.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:281)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:365)
        at 
com.jefco.portfoliotrading.gets.common.CumExec.readExternal(CumExec.java:273)
        at 
org.apache.ignite.marshaller.optimized.OptimizedObjectInputStream.readExternalizable(OptimizedObjectInputStream.java:514)
        at 
org.apache.ignite.marshaller.optimized.OptimizedClassDescriptor.read(OptimizedClassDescriptor.java:803)
        at 
org.apache.ignite.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:315)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:365)
        at 
org.apache.ignite.lang.IgniteBiTuple.readExternal(IgniteBiTuple.java:276)
        at 
org.apache.ignite.marshaller.optimized.OptimizedObjectInputStream.readExternalizable(OptimizedObjectInputStream.java:514)
        at 
org.apache.ignite.marshaller.optimized.OptimizedClassDescriptor.read(OptimizedClassDescriptor.java:803)
        at 
org.apache.ignite.marshaller.optimized.OptimizedObjectInputStream.readObjectOverride(OptimizedObjectInputStream.java:315)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:365)
        at 
org.apache.ignite.marshaller.optimized.OptimizedMarshaller.unmarshal(OptimizedMarshaller.java:240)
        at 
org.gridgain.grid.internal.processors.cache.store.local.CacheFileLocalStoreFileManager$3.apply(CacheFileLocalStoreFileManager.java:1041)
        at 
org.gridgain.grid.internal.processors.cache.store.local.CacheFileLocalStoreMap.iterate(CacheFileLocalStoreMap.java:450)
        at 
org.gridgain.grid.internal.processors.cache.store.local.CacheFileLocalStoreStripedMap.iterate(CacheFileLocalStoreStripedMap.java:214)
        at 
org.gridgain.grid.internal.processors.cache.store.local.CacheFileLocalStoreFileManager.loadAll(CacheFileLocalStoreFileManager.java:1033)
        at 
org.gridgain.grid.cache.store.local.CacheFileLocalStore.loadCache(CacheFileLocalStore.java:581)
        at 
org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.loadCache(GridCacheStoreManagerAdapter.java:483)
        ... 14 more
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to