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

Andrey Gura commented on IGNITE-2080:
-------------------------------------

1) All methods of {{GridUnsafe}} use bigendian byte order. Client code is 
reposonsible for correct endianness handling. 

2) Of course, we can always uses aligned aware methods. But why we need do it 
in cases where we sure that pointer/offset already aligned?

3) I can be wrong but volatile access always requires aligned access. 

> 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
>             Fix For: 1.5
>
>         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)

Reply via email to