JVM segmentation faults due to "Invalid memory access of location"
- by Dan
I have a small project written in Scala 2.9.2 with unit tests written using ScalaTest. I use SBT for compiling and running my tests.
Running sbt test on my project makes the JVM segfault regularly, but just compiling and running my project from SBT works fine. Here is the exact error message:
Invalid memory access of location 0x8 rip=0x10959f3c9
[1] 11925 segmentation fault sbt
I cannot locate a core dump anywhere, but would be happy to provide it if it can be obtained.
Running java -version results in this:
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)
But I've also got Java 7 installed (though I was never able to actually run a Java program with it, afaik).
Another issue that may be related: some of my test cases contain titles including parentheses like ( and ). SBT or ScalaTest (not sure) will consequently insert square parens in the middle of the output. For example, a test case with the name (..)..(..) might suddenly look like (..[)..](..).
Any help resolving these issues is much appreciated :-)
EDIT: I installed the Java 7 JDK, so now java -version shows the right thing:
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
This also means that I now get a more detailed segfault error and a core dump:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x000000010a71a3e3, pid=16830, tid=19459
#
# JRE version: 7.0_07-b10
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.3-b01 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# V [libjvm.dylib+0x3cd3e3]
And the dump.