[
https://issues.apache.org/jira/browse/IGNITE-2080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15043356#comment-15043356
]
Andrey Gura edited comment on IGNITE-2080 at 12/5/15 3:55 PM:
--------------------------------------------------------------
All examples were ran with different marshallers and work correctly.
Yardstick benchmarks don't work with offheap caches. Driver node fails (see
ticket description).
Yardstick benchmarks don't work with onheap caches in case of
{{BinaryMarshaller}} and {{OptimizedMarshaller}}. Server node fails. The same
problem on frame {{[libjvm.so+0xc7c438] Unsafe_SetInt+0x14c}} happens but in
{{exchange-worker}} thread. Error logs don't contain stacktrace for this cases.
In case of {{JdkMarshaller}} this problem doesn't happen.
Probably we also have potential problems in the following parts of Ignite
(based on Unsafe.putInt() usages):
* Optimized marshaller
* Binary marshaller
* Direct message writer
* Offheap caches
* Ignite Hadoop (shuffle message)
was (Author: agura):
All examples were ran with different marshallers and work correctly.
Yardstick benchmarks don't work with offheap caches. Driver node fails (see
ticket description).
Yardstick benchmarks don't work with onheap caches in case of
{{BinaryMarshaller}} and {{OptimizedMarshaller}}. Server node fails. The same
problem on frame {{[libjvm.so+0xc7c438] Unsafe_SetInt+0x14c}} happens but in
{{exchange-worker}} thread. Error logs don't contain stacktrace for this cases.
In case of {{JdkMarshaller}} this problem doesn't happen.
Probably we also have potential problems in the following parts of Ignite
(based on Unsafe.putInt() usages):
* Optimized marshaller
* Binary marshaller
* Direct message reader
* Offheap caches
* Ignite Hadoop (shuffle message)
> JVM crashes on SunOS with SIGBUS (0xa) on frame [libjvm.so+0xc7c438]
> Unsafe_SetInt+0x14c
> -----------------------------------------------------------------------------------------
>
> Key: IGNITE-2080
> URL: https://issues.apache.org/jira/browse/IGNITE-2080
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 1.5, 1.4
> Environment: SunOS 5.11, JDK 7
> Reporter: Andrey Gura
> Assignee: Andrey Gura
> Attachments: 054424_0_localhost.log, benchmark-offheap.properties,
> hs_err_pid10523.log
>
>
> JVM crashes on SunOS 5.11 with the following message:
> {noformat}
> # A fatal error has been detected by the Java Runtime Environment:
> #
> # SIGBUS (0xa) at pc=0xffffffff76a7c438, pid=10523, tid=652
> #
> # JRE version: Java(TM) SE Runtime Environment (7.0_79-b15) (build
> 1.7.0_79-b15)
> # Java VM: Java HotSpot(TM) 64-Bit Server VM (24.79-b02 mixed mode
> solaris-sparc )
> # Problematic frame:
> # V [libjvm.so+0xc7c438] Unsafe_SetInt+0x14c
> {noformat}
> Stack trace:
> {noformat}
> Stack: [0xfffffff0f6f00000,0xfffffff0f7000000], sp=0xfffffff0f6ffd1f0, free
> space=1012k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native
> code)
> V [libjvm.so+0xc7c438] Unsafe_SetInt+0x14c
> j sun.misc.Unsafe.putInt(Ljava/lang/Object;JI)V+-1763873616
> j sun.misc.Unsafe.putInt(Ljava/lang/Object;JI)V+0
> j
> org.apache.ignite.internal.util.IgniteUtils.writeVersion([BJLorg/apache/ignite/internal/processors/cache/version/GridCacheVersion;)J+135
> j
> org.apache.ignite.internal.processors.cache.GridCacheSwapEntryImpl.marshal()[B+128
> j
> org.apache.ignite.internal.processors.cache.GridCacheSwapManager.write(Lorg/apache/ignite/internal/processors/cache/KeyCacheObject;Ljava/nio/ByteBuffer;BLorg/apache/
> ignite/internal/processors/cache/version/GridCacheVersion;JJLorg/apache/ignite/lang/IgniteUuid;Lorg/apache/ignite/lang/IgniteUuid;)V+86
> j org.apache.ignite.internal.processors.cache.GridCacheMapEntry.swap()V+333
> j
> org.apache.ignite.internal.processors.cache.GridCacheMapEntry.evictInternal(ZLorg/apache/ignite/internal/processors/cache/version/GridCacheVersion;[Lorg/apache/ignit
> e/internal/processors/cache/CacheEntryPredicate;)Z+122
> j
> org.apache.ignite.internal.processors.cache.GridCacheEvictionManager.evict0(Lorg/apache/ignite/internal/processors/cache/GridCacheAdapter;Lorg/apache/ignite/internal
> /processors/cache/GridCacheEntryEx;Lorg/apache/ignite/internal/processors/cache/version/GridCacheVersion;[Lorg/apache/ignite/internal/processors/cache/CacheEntryPredica
> te;Z)Z+117
> j
> org.apache.ignite.internal.processors.cache.GridCacheEvictionManager.touch(Lorg/apache/ignite/internal/processors/cache/GridCacheEntryEx;Lorg/apache/ignite/internal/
> processors/affinity/AffinityTopologyVersion;)V+123
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.unlockEntries(Ljava/util/Collection;Lorg/apache/ignite/internal/processors/affi
> nity/AffinityTopologyVersion;)V+331
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(Ljava/util/UUID;Lorg/apache/ignite/internal/processors/
> cache/distributed/dht/atomic/GridNearAtomicUpdateRequest;Lorg/apache/ignite/internal/util/typedef/CI2;)V+1023
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal(Ljava/util/UUID;Lorg/apache/ignite/internal/processors/c
> ache/distributed/dht/atomic/GridNearAtomicUpdateRequest;Lorg/apache/ignite/internal/util/typedef/CI2;)V+33
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.mapSingle(Ljava/util/UUID;Lorg/apache/ignite/internal/processors/cache/
> distributed/dht/atomic/GridNearAtomicUpdateRequest;)V+28
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.access$1200(Lorg/apache/ignite/internal/processors/cache/distributed/dh
> t/atomic/GridNearAtomicUpdateFuture;Ljava/util/UUID;Lorg/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateRequest;)V+3
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture$UpdateState.map(Lorg/apache/ignite/internal/processors/affinity/Affinit
> yTopologyVersion;)V+595
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.mapOnTopology()V+253
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.map()V+60
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$18.apply()Lorg/apache/ignite/internal/IgniteInternalFuture;+4
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$18.apply()Ljava/lang/Object;+1
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.asyncOp(Lorg/apache/ignite/internal/util/typedef/CO;)Lorg/apache/ignite/internal/IgniteInternalFuture;+86
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsync0(Ljava/util/Map;Ljava/util/Map;[Ljava/lang/Object;Ljava/util/Map;Ljava/util/Map;ZZ[Lorg/apache/ignite/internal/processors/cache/CacheEntryPredicate;Z)Lorg/apache/ignite/internal/IgniteInternalFuture;+331
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.putAsync0(Ljava/lang/Object;Ljava/lang/Object;[Lorg/apache/ignite/internal/processors/cache/CacheEntryPredicate;)Lorg/apache/ignite/internal/IgniteInternalFuture;+20
> j
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.putAsync(Ljava/lang/Object;Ljava/lang/Object;[Lorg/apache/ignite/internal/processors/cache/CacheEntryPredicate;)Lorg/apache/ignite/internal/IgniteInternalFuture;+30
> j
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.put(Ljava/lang/Object;Ljava/lang/Object;[Lorg/apache/ignite/internal/processors/cache/CacheEntryPredicate;)Z+4
> j
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(Ljava/lang/Object;Ljava/lang/Object;)Z+6
> j
> org.apache.ignite.internal.processors.cache.IgniteCacheProxy.put(Ljava/lang/Object;Ljava/lang/Object;)V+68
> j
> org.apache.ignite.yardstick.cache.IgnitePutBenchmark.test(Ljava/util/Map;)Z+28
> j org.yardstickframework.impl.BenchmarkRunner$2.run()V+242
> j java.lang.Thread.run()V+11
> v ~StubRoutines::call_stub
> V [libjvm.so+0x226c64] void
> JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x2fc
> V [libjvm.so+0x7b1e68] void
> JavaCalls::call_virtual(JavaValue*,Handle,KlassHandle,Symbol*,Symbol*,Thread*)+0x1b8
> V [libjvm.so+0x2d5e34] void thread_entry(JavaThread*,Thread*)+0x164
> V [libjvm.so+0xc55e2c] void JavaThread::thread_main_inner()+0x94
> V [libjvm.so+0x2d1824] void JavaThread::run()+0x454
> V [libjvm.so+0xb09264] java_start+0x364
> {noformat}
> In order ot reproduce it need to do following:
> # Copy [^benchmark-offheap.properties] file into {{modules/yardstick/config}}
> directory.
> # Build yardstick {{mvn -B clean package -Prelease,benchmarks -DskipTests -pl
> modules/yardstick -am}}
> # Run benchmark {{./bin/benchmark-drivers-start.sh
> config/benchmark-offheap.properties}} (do it from {{yardstick}} module
> directory)
> The problem isn't related with JIT (reproduces with -Xint option).
> Also see attached logs and [core
> dump|https://drive.google.com/open?id=0Bz6LUqvKtoj6eklXTEp5aEh1MHM].
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)