SIG_BUS on SunOS pm1 5.10 Generic_150400-59 sun4v sparc sun4v
zolyfarkas opened this issue · 3 comments
This happened with aircompressor-0.9.
is aircompressor not supported on 64 bit sparc platforms?
Here is the native stack:
----------------- lwp# 2 / thread# 2 --------------------
ffffffff7e7dccbc _lwp_kill (6, 0, ffffffff7e949968, ffffffffffffffff, ffffffff7e93e000, 0) + 8
ffffffff7e74c250 abort (1, 1d8, ffffffff7db9b1cc, 1f1ebc, 0, 0) + 118
ffffffff7db84a48 _1cCosFabort6Fb_v (1, 1, 4b318, ffffffff7e0dda20, 55902c, 4b000) + 58
ffffffff7ddfb2d4 _1cHVMErrorOreport_and_die6M_v (1, ffffffff7e1eeb35, 100110800, ffffffff7db98100, ffffffff7e2d5a80, ffffffff7e2751c0) + 10ac
ffffffff7db9574c JVM_handle_solaris_signal (a, ffffffff7affa2a0, ffffffff7dd7cff0, ffffffff7aff9b30, ffffffffffaaf928, ffffffff7aff9fc0) + c0c
ffffffff7db8d364 signalHandler (a, ffffffff7affa2a0, ffffffff7aff9fc0, ffffffff7e94ec38, 1001042d0, 2) + 1c
ffffffff7e7d8d6c __sighndlr (a, ffffffff7affa2a0, ffffffff7aff9fc0, ffffffff7db8d348, 0, 9) + c
ffffffff7e7cc8d4 call_user_handler (ffffffff7e600a00, ffffffff7e600a00, ffffffff7aff9fc0, c, 0, 0) + 3e0
ffffffff7e7ccae0 sigacthandler (0, ffffffff7affa2a0, ffffffff7aff9fc0, ffffffff7e600a00, 0, ffffffff7e93e000) + 68
--- called from signal handler with signal 10 (SIGBUS) ---
ffffffff7dd7cff0 Unsafe_GetInt (ffffffff7affc5e8, ffffffff7e26f240, ffffffff7affa510, 11, 100110800, 191800) + 174
ffffffff6bb450a0 * *sun/misc/Unsafe.getInt(Ljava/lang/Object;J)I [compiled]
ffffffff6b007b18 * io/airlift/compress/snappy/SnappyRawCompressor.compress(Ljava/lang/Object;JJLjava/lang/Object;JJ[S)I+462
ffffffff6b007b18 * io/airlift/compress/snappy/SnappyCompressor.compress([BII[BII)I+57
ffffffff6b007b18 * io/airlift/compress/snappy/SnappyFramedOutputStream.writeCompressed([BII)V+59
ffffffff6b008068 * io/airlift/compress/snappy/SnappyFramedOutputStream.flushBuffer()V+34
ffffffff6b008068 * io/airlift/compress/snappy/SnappyFramedOutputStream.flush()V+32
We don't have any sparc systems to test on, so this is not something we can generally support. Does sparc support unaligned reads, because we make no effort to align reads? Also, the code assumes a little endian native encoding. Adding support for either of these would likely make this code too difficult to support (and may slow stuff down).
If you can reproduce the problem on intel, I can fix it. Alternative, you can send a patch.
Thanks for the answer, if little-endian is supported only, the fact that it crashes on sparc should not be a surprise since SPARC is big-endian... same issues would probably be with ARM, POWER....
Maybe this should be documented in the readme: https://github.com/airlift/aircompressor...
the 100% java statement is a bit misleading...
I added code that verifies the VM is compatible with the compressor code, and updated the read me. Thanks.