Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JVM crash on Raspberry Pi 3 #253

Closed
glandais opened this issue May 12, 2016 · 14 comments
Closed

JVM crash on Raspberry Pi 3 #253

glandais opened this issue May 12, 2016 · 14 comments
Assignees

Comments

@glandais
Copy link

Using provided Oracle JDK on my new π

pi@raspberrypi:~/Chronicle-Queue $ uname -a
Linux raspberrypi 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 GMT 2016 armv7l GNU/Linux
pi@raspberrypi:~/Chronicle-Queue $ java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)
pi@raspberrypi:~/Chronicle-Queue $ mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Maven home: /home/pi/apache-maven-3.3.9
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "4.1.19-v7+", arch: "arm", family: "unix"

Cloned using

git clone https://github.com/OpenHFT/Chronicle-Queue.git

Output :

pi@raspberrypi:~/Chronicle-Queue $ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building OpenHFT/Chronicle-Queue 4.4.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ chronicle-queue ---
[INFO] Deleting /home/pi/Chronicle-Queue/target
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-no-snapshots) @ chronicle-queue ---
[INFO]
[INFO] --- maven-resources-plugin:2.7:resources (default-resources) @ chronicle-queue ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/pi/Chronicle-Queue/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ chronicle-queue ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 34 source files to /home/pi/Chronicle-Queue/target/classes
[INFO] /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java: /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java uses unchecked or unsafe operations.
[INFO] /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-bundle-plugin:3.0.0:manifest (default) @ chronicle-queue ---
[INFO]
[INFO] --- maven-resources-plugin:2.7:testResources (default-testResources) @ chronicle-queue ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/pi/Chronicle-Queue/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ chronicle-queue ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 36 source files to /home/pi/Chronicle-Queue/target/test-classes
[INFO] /home/pi/Chronicle-Queue/src/test/java/net/openhft/chronicle/queue/impl/single/ToEndTest.java: /home/pi/Chronicle-Queue/src/test/java/net/openhft/chronicle/queue/impl/single/ToEndTest.java uses or overrides a deprecated API.
[INFO] /home/pi/Chronicle-Queue/src/test/java/net/openhft/chronicle/queue/impl/single/ToEndTest.java: Recompile with -Xlint:deprecation for details.
[INFO]
[INFO] --- maven-surefire-plugin:2.19:test (default-test) @ chronicle-queue ---

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running net.openhft.chronicle.queue.LastIndexAppendedTest
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0x740ab5dc, pid=6450, tid=1982784608
#
# JRE version: Java(TM) SE Runtime Environment (8.0_65-b17) (build 1.8.0_65-b17)
# Java VM: Java HotSpot(TM) Client VM (25.65-b01 mixed mode linux-arm )
# Problematic frame:
# v  ~StubRoutines::atomic_store_long
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/pi/Chronicle-Queue/hs_err_pid6450.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
Aborted

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20.233 s
[INFO] Finished at: 2016-05-12T09:48:21+00:00
[INFO] Final Memory: 19M/51M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19:test (default-test) on project chronicle-queue: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd /home/pi/Chronicle-Queue && /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java -jar /home/pi/Chronicle-Queue/target/surefire/surefirebooter8772016599844544191.jar /home/pi/Chronicle-Queue/target/surefire/surefire8678532781266343868tmp /home/pi/Chronicle-Queue/target/surefire/surefire_02798566282531128178tmp
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

The report : hs_err_pid6450.zip

May be an issue with the JVM...

@peter-lawrey
Copy link
Member

It would be useful to see if the core, bytes, and wire libraries crash or
not to help isolate the problem.
On 12 May 2016 10:54 am, "Gabriel Landais" notifications@github.com wrote:

Using provided Oracle JDK on my new π

pi@raspberrypi:/Chronicle-Queue $ uname -a
Linux raspberrypi 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 GMT 2016 armv7l GNU/Linux
pi@raspberrypi:
/Chronicle-Queue $ java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)
pi@raspberrypi:~/Chronicle-Queue $ mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00)
Maven home: /home/pi/apache-maven-3.3.9
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "4.1.19-v7+", arch: "arm", family: "unix"

Cloned using

git clone https://github.com/OpenHFT/Chronicle-Queue.git

Output :

pi@raspberrypi:~/Chronicle-Queue $ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building OpenHFT/Chronicle-Queue 4.4.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ chronicle-queue ---
[INFO] Deleting /home/pi/Chronicle-Queue/target
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-no-snapshots) @ chronicle-queue ---
[INFO]
[INFO] --- maven-resources-plugin:2.7:resources (default-resources) @ chronicle-queue ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/pi/Chronicle-Queue/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ chronicle-queue ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 34 source files to /home/pi/Chronicle-Queue/target/classes
[INFO] /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java: /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java uses unchecked or unsafe operations.
[INFO] /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-bundle-plugin:3.0.0:manifest (default) @ chronicle-queue ---
[INFO]
[INFO] --- maven-resources-plugin:2.7:testResources (default-testResources) @ chronicle-queue ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/pi/Chronicle-Queue/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ chronicle-queue ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 36 source files to /home/pi/Chronicle-Queue/target/test-classes
[INFO] /home/pi/Chronicle-Queue/src/test/java/net/openhft/chronicle/queue/impl/single/ToEndTest.java: /home/pi/Chronicle-Queue/src/test/java/net/openhft/chronicle/queue/impl/single/ToEndTest.java uses or overrides a deprecated API.
[INFO] /home/pi/Chronicle-Queue/src/test/java/net/openhft/chronicle/queue/impl/single/ToEndTest.java: Recompile with -Xlint:deprecation for details.
[INFO]
[INFO] --- maven-surefire-plugin:2.19:test (default-test) @ chronicle-queue ---


T E S T S

Running net.openhft.chronicle.queue.LastIndexAppendedTest

A fatal error has been detected by the Java Runtime Environment:

SIGBUS (0x7) at pc=0x740ab5dc, pid=6450, tid=1982784608

JRE version: Java(TM) SE Runtime Environment (8.0_65-b17) (build 1.8.0_65-b17)

Java VM: Java HotSpot(TM) Client VM (25.65-b01 mixed mode linux-arm )

Problematic frame:

v ~StubRoutines::atomic_store_long

Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

An error report file with more information is saved as:

/home/pi/Chronicle-Queue/hs_err_pid6450.log

If you would like to submit a bug report, please visit:

http://bugreport.java.com/bugreport/crash.jsp

Aborted

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20.233 s
[INFO] Finished at: 2016-05-12T09:48:21+00:00
[INFO] Final Memory: 19M/51M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19:test (default-test) on project chronicle-queue: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd /home/pi/Chronicle-Queue && /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java -jar /home/pi/Chronicle-Queue/target/surefire/surefirebooter8772016599844544191.jar /home/pi/Chronicle-Queue/target/surefire/surefire8678532781266343868tmp /home/pi/Chronicle-Queue/target/surefire/surefire_02798566282531128178tmp
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

The report : hs_err_pid6450.zip
https://github.com/OpenHFT/Chronicle-Queue/files/261012/hs_err_pid6450.zip

May be an issue with the JVM...


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#253

@franz1981
Copy link

Hi!
atomic_store_long...
It is an alignment issue: without proper recompilation of the kernel on ARM (v7,v11 and others) it is not possible to perform type (and WORD too) misaligned write/read. By default the kernel provided with raspbian issue a CPU interrupt not properly catched by the JVM. To solve the issue it's possible to:

  1. replace the destination address to a proper type-aligned one
  2. recompile the kernel in order to receive a performance penalty on misaligned ops but with no crashes

@glandais
Copy link
Author

glandais commented May 12, 2016

Thank for you responses

I'm getting the same problem on bytes (not in core but I guess atomic_store_long is never called).

Thanks franz1981 for your answer, I'm a bit disappointed, I don't really like to recompile a kernel :)

@peter-lawrey
Copy link
Member

We can a different Memory implementation which only performs aligned
operations. What would you suggest for detecting whether aligned access is
required?

On 12 May 2016 at 12:49, Gabriel Landais notifications@github.com wrote:

Thanks for you responses

I'm getting the same problem on bytes (not in core but I guess
atomic_store_long is never called).

Thanks franz1981 for your answer, I'm a bit disappointed, I don't really
like to recompile a kernel :)


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#253 (comment)

@glandais
Copy link
Author

The kernel message :

[66626.969436] Alignment trap: not handling instruction e1bc2f9f at [<740875d8>]
[66626.969450] Unhandled fault: alignment exception (0x001) at 0x65a07764
[66626.978443] pgd = b6e48000
[66626.983579] [65a07764] *pgd=3827d831, *pte=2ea6b75f, *ppte=2ea6bc7f

The output of /proc/cpu/alignment :

pi@raspberrypi:~/Chronicle-Bytes $ cat /proc/cpu/alignment
User:           14
System:         8164 (ip6_datagram_recv_common_ctl+0xb8/0xc4 [ipv6])
Skipped:        14
Half:           0
Word:           0
DWord:          0
Multi:          8164
User faults:    2 (fixup)

Some doc

So I tried

root@raspberrypi:/home/pi/Chronicle-Bytes# echo 1 > /proc/cpu/alignment
pi@raspberrypi:~/Chronicle-Bytes $ cat /proc/cpu/alignment
User:           15
System:         8164 (ip6_datagram_recv_common_ctl+0xb8/0xc4 [ipv6])
Skipped:        15
Half:           0
Word:           0
DWord:          0
Multi:          8164
User faults:    3 (fixup+warn)

But it still fails...

[68974.465026] alignment: ignoring faults is unsafe on this CPU.  Defaulting to fixup mode.
[69037.303382] Alignment trap: java (6854) PC=0x740e15d8 Instr=0xe1bc2f9f Address=0x65a0a1fc FSR 0x001
[69037.303394] Alignment trap: not handling instruction e1bc2f9f at [<740e15d8>]
[69037.303400] Unhandled fault: alignment exception (0x001) at 0x65a0a1fc
[69037.312427] pgd = b8020000
[69037.317506] [65a0a1fc] *pgd=09740831, *pte=03b0075f, *ppte=03b00c7f

@franz1981
Copy link

franz1981 commented May 12, 2016

@peter-lawrey
In theory every (on and off-heap) memory operation using primitive types is eligible for this kind of issue, thus adding a proper check on Memory with a configuration flag that (if enabled) let the calls rise an exception during the tests is a good way to track the issues before to release an ARM-sanitized version of the lib (on putXXX,getXXX,cas and wait-free getAndAdd etc etc)..

@glandais
ARMs are a NightARMare :P
MMM..generally i do not encounter that issue because i perform on the rasp only aligned accesses...but "maybe":
http://lxr.free-electrons.com/source/arch/arm/mm/alignment.c

/*
104 * ARMv6 and later CPUs can perform unaligned accesses for
105 * most single load and store instructions up to word size.
106 * LDM, STM, LDRD and STRD still need to be handled.
107 *
108 * Ignoring the alignment fault is not an option on these
109 * CPUs since we spin re-faulting the instruction without
110 * making any progress.
111 */

there are a lot of possibilities:

Anyway, here:
http://psy-lob-saw.blogspot.it/2013/01/direct-memory-alignment-in-java.html
you could find tests and info to understand the issue...

@peter-lawrey
Copy link
Member

I have changed the alignment for atomic long operations for queue in the
latest snapshot. Changing it for int values would be much harder, but at
least you shouldn't get this error for atomic longs in future.

Peter.

On 12 May 2016 at 13:57, franz1981 notifications@github.com wrote:

@peter-lawrey https://github.com/peter-lawrey
In theory every memory operation with address on primitive type is
eligible for this kind of issue, thus adding a proper check on Memory with
a configuration flag could rise an exception during the tests
(putXXX,getXXX,cas and wait-free getAndAdd etc etc)..

@glandais https://github.com/glandais
ARMs are a NightARMare :P
MMM..generally i do not encounter that issue because i perform on the rasp
only aligned accesses...but "maybe":
http://lxr.free-electrons.com/source/arch/arm/mm/alignment.c http://url

/*
104 * ARMv6 and later CPUs can perform unaligned accesses for
105 * most single load and store instructions up to word size.
106 * LDM, STM, LDRD and STRD still need to be handled.
107 *
108 * Ignoring the alignment fault is not an option on these
109 * CPUs since we spin re-faulting the instruction without
110 * making any progress.
111 */

there are a lot of possibilities:

Anyway, here:
http://psy-lob-saw.blogspot.it/2013/01/direct-memory-alignment-in-java.html
http://url
you could find tests and info to understand the issue...


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#253 (comment)

@glandais
Copy link
Author

Maybe VM.isDirectMemoryPageAligned() ?
DirectByteBuffer is handling alignement pretty well already no?

@franz1981
Copy link

AFAIK yes:

777     private ByteBuffer putLong(long a, long x) {
778 
779         if (unaligned) {
780             long y = (x);
781             unsafe.putLong(a, (nativeByteOrder ? y : Bits.swap(y)));
782         } else {
783             Bits.putLong(a, x, bigEndian);
784         }
785         return this;
786 
787 
788 
789     }

Unsafe is the only way to be perform any-type-misaligned ops on the JDK: Bits.putXXX/getXXX implements the XXX put/get with single byte ops (every adress is byte-aligned).
The value you need to know is Bits.unaligned() and it is cached on DirectByteBuffer as the "unaligned" constant.
VM.isDirectMemoryPageAligned is not related to the type of Alignment required, but instead is related to the Unsafe.PageSize() alignment (on JDK 8) aka the OS Virtual memory page.
Anyway there are (until the JDK 10 maybe) no way to perform "legally" concurrent ops on off heap addresses but with Unsafe, thus using DirectByteBuffer it is not sufficient if you need a library for IPC.
ByteBuffer interface do not offer any concurrent operation...

@peter-lawrey
Copy link
Member

For now the next version will always align 8 byte atomic values. We can
treat not having to do this an optimisation on some platforms.
On 13 May 2016 2:03 pm, "franz1981" notifications@github.com wrote:

AFAIK yes:

777 private ByteBuffer putLong(long a, long x) {
778
779 if (unaligned) {
780 long y = (x);
781 unsafe.putLong(a, (nativeByteOrder ? y : Bits.swap(y)));
782 } else {
783 Bits.putLong(a, x, bigEndian);
784 }
785 return this;
786
787
788
789 }

Unsafe is the only way to be perform any-type-misaligned ops on the JDK:
Bits.putXXX/getXXX implements the XXX put/get with single byte ops (every
adress is byte-aligned).
The value you need to know is Bits.unaligned() and it is cached on
DirectByteBuffer as the "unaligned" constant.
VM.isDirectMemoryPageAligned is not related to the type of Alignment
required, but instead is related to the Unsafe.PageSize() alignment (on JDK
8) aka the OS Virtual memory page.
Anyway there are (until the JDK 10 maybe) no way to perform "legally"
concurrent ops on off heap addresses but with Unsafe, thus using
DirectByteBuffer it is not sufficient if you need a library for IPC.
ByteBuffer interface do not offer any concurrent operation...


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#253 (comment)

@peter-lawrey
Copy link
Member

Some changes have been made to enforce alignment for these 8-byte updates.
Are you able to tests the latest release?

@glandais
Copy link
Author

Yes!

@glandais
Copy link
Author

pi@raspberrypi:~/Chronicle-Queue $ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building OpenHFT/Chronicle-Queue 4.4.4-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ chronicle-queue ---
[INFO] Deleting /home/pi/Chronicle-Queue/target
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-no-snapshots) @ chronicle-queue ---
[INFO]
[INFO] --- maven-resources-plugin:2.7:resources (default-resources) @ chronicle-queue ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/pi/Chronicle-Queue/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ chronicle-queue ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 40 source files to /home/pi/Chronicle-Queue/target/classes
[INFO] /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java: /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java uses unchecked or unsafe operations.
[INFO] /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-bundle-plugin:3.0.0:manifest (default) @ chronicle-queue ---
[INFO]
[INFO] --- maven-resources-plugin:2.7:testResources (default-testResources) @ chronicle-queue ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/pi/Chronicle-Queue/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ chronicle-queue ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 40 source files to /home/pi/Chronicle-Queue/target/test-classes
[INFO] /home/pi/Chronicle-Queue/src/test/java/net/openhft/chronicle/queue/impl/single/ToEndTest.java: Some input files use or override a deprecated API.
[INFO] /home/pi/Chronicle-Queue/src/test/java/net/openhft/chronicle/queue/impl/single/ToEndTest.java: Recompile with -Xlint:deprecation for details.
[INFO]
[INFO] --- maven-surefire-plugin:2.19:test (default-test) @ chronicle-queue ---

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running net.openhft.chronicle.queue.JDBCServiceTest
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0x740c5570, pid=3959, tid=1982948448
#
# JRE version: Java(TM) SE Runtime Environment (8.0_65-b17) (build 1.8.0_65-b17)
# Java VM: Java HotSpot(TM) Client VM (25.65-b01 mixed mode linux-arm )
# Problematic frame:
# v  ~StubRoutines::atomic_cmpxchg
#
# Core dump written. Default location: /home/pi/Chronicle-Queue/core or core.3959
#
# An error report file with more information is saved as:
# /home/pi/Chronicle-Queue/hs_err_pid3959.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
Aborted (core dumped)

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 25.356 s
[INFO] Finished at: 2016-06-28T08:43:12+00:00
[INFO] Final Memory: 19M/46M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19:test (default-test) on project chronicle-queue: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd /home/pi/Chronicle-Queue && /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java -jar /home/pi/Chronicle-Queue/target/surefire/surefirebooter2848824417948399987.jar /home/pi/Chronicle-Queue/target/surefire/surefire732934346351580465tmp /home/pi/Chronicle-Queue/target/surefire/surefire_05018655822439703380tmp
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

hs_err_pid3959.zip

@peter-lawrey
Copy link
Member

I was worried that might be the case. The 8 byte values are aligned but 4
byte values are not. Will work on this some more.

On 28 June 2016 at 09:45, Gabriel Landais notifications@github.com wrote:

pi@raspberrypi:~/Chronicle-Queue $ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building OpenHFT/Chronicle-Queue 4.4.4-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ chronicle-queue ---
[INFO] Deleting /home/pi/Chronicle-Queue/target
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-no-snapshots) @ chronicle-queue ---
[INFO]
[INFO] --- maven-resources-plugin:2.7:resources (default-resources) @ chronicle-queue ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/pi/Chronicle-Queue/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ chronicle-queue ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 40 source files to /home/pi/Chronicle-Queue/target/classes
[INFO] /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java: /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java uses unchecked or unsafe operations.
[INFO] /home/pi/Chronicle-Queue/src/main/java/net/openhft/chronicle/queue/impl/AbstractChronicleQueueBuilder.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- maven-bundle-plugin:3.0.0:manifest (default) @ chronicle-queue ---
[INFO]
[INFO] --- maven-resources-plugin:2.7:testResources (default-testResources) @ chronicle-queue ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/pi/Chronicle-Queue/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ chronicle-queue ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 40 source files to /home/pi/Chronicle-Queue/target/test-classes
[INFO] /home/pi/Chronicle-Queue/src/test/java/net/openhft/chronicle/queue/impl/single/ToEndTest.java: Some input files use or override a deprecated API.
[INFO] /home/pi/Chronicle-Queue/src/test/java/net/openhft/chronicle/queue/impl/single/ToEndTest.java: Recompile with -Xlint:deprecation for details.
[INFO]
[INFO] --- maven-surefire-plugin:2.19:test (default-test) @ chronicle-queue ---


T E S T S

Running net.openhft.chronicle.queue.JDBCServiceTest

A fatal error has been detected by the Java Runtime Environment:

SIGBUS (0x7) at pc=0x740c5570, pid=3959, tid=1982948448

JRE version: Java(TM) SE Runtime Environment (8.0_65-b17) (build 1.8.0_65-b17)

Java VM: Java HotSpot(TM) Client VM (25.65-b01 mixed mode linux-arm )

Problematic frame:

v ~StubRoutines::atomic_cmpxchg

Core dump written. Default location: /home/pi/Chronicle-Queue/core or core.3959

An error report file with more information is saved as:

/home/pi/Chronicle-Queue/hs_err_pid3959.log

If you would like to submit a bug report, please visit:

http://bugreport.java.com/bugreport/crash.jsp

Aborted (core dumped)

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 25.356 s
[INFO] Finished at: 2016-06-28T08:43:12+00:00
[INFO] Final Memory: 19M/46M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19:test (default-test) on project chronicle-queue: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd /home/pi/Chronicle-Queue && /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java -jar /home/pi/Chronicle-Queue/target/surefire/surefirebooter2848824417948399987.jar /home/pi/Chronicle-Queue/target/surefire/surefire732934346351580465tmp /home/pi/Chronicle-Queue/target/surefire/surefire_05018655822439703380tmp
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

hs_err_pid3959.zip
https://github.com/OpenHFT/Chronicle-Queue/files/336570/hs_err_pid3959.zip


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#253 (comment),
or mute the thread
https://github.com/notifications/unsubscribe/ABBU8Q7fx6rTEIp7WuNjh9Jj3J9Aykm7ks5qQN8igaJpZM4Ic5zK
.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants