[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: JavaHL segfault on svn-x64-ubuntu-gcc buildbot

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Wed, 25 Jun 2014 12:09:50 +0100

Branko Čibej <brane_at_wandisco.com> writes:

> On 24.06.2014 21:48, Bert Huijben wrote:
>> Hi,
>>
>> For some time the JavaHL tests on the svn-x64-ubuntu-gcc have been
>> segfaulting.
>>
>> Looking at
>> http://ci.apache.org/builders/svn-x64-ubuntu-gcc?numbuilds=200
>>
>> It appears this bot started failing after either
>> r1603298 or r1603299
>>
>> Other, similar bots don't produce the same segfault.
>>
>> Can somebody get more details of the bot to help diagnosing this problem?
>
> Can you post one of the JVM stack traces, please; the test output
> contains a path to the generated file. FWIW, I've seen reports of JavaHL
> segfaults but never been able to reproduce them, this would be an ideal
> opportunity.

I'm getting a SEGV in the JVM and it varies from run to run, two
examples at the end. I tried r1603298 and r1603297 and those also SEGV.
I also tried valgrind but there are a huge number of warnings related to
the JVM. I spotted two valgrind warnings that might indicate a
Subversion problem (multiple occurrences of each) but these occur after
several hundred other warnings:

==26302== Invalid write of size 4
==26302== at 0x77A1F48: ???
==26302== by 0x77914E6: ???
==26302== by 0x5FAC4DD: JavaCalls::call_helper(JavaValue*, methodHandle*, Jav
aCallArguments*, Thread*) (in /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/se
rver/libjvm.so)
==26302== by 0x5FABF94: JavaCalls::call(JavaValue*, methodHandle, JavaCallArg
uments*, Thread*) (in /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/lib
jvm.so)
==26302== by 0x5FC14BA: jni_invoke_nonstatic(JNIEnv_*, JavaValue*, _jobject*,
 JNICallType, _jmethodID*, JNI_ArgumentPusher*, Thread*) (in /usr/lib/jvm/java-7
-openjdk-amd64/jre/lib/amd64/server/libjvm.so)
==26302== by 0x5FC5CE5: jni_CallIntMethodV (in /usr/lib/jvm/java-7-openjdk-am
d64/jre/lib/amd64/server/libjvm.so)
==26302== by 0x17AF63A6: JNIEnv_::CallIntMethod(_jobject*, _jmethodID*, ...)
(jni.h:987)
==26302== by 0x17AF62B6: EnumMapper::getOrdinal(char const*, _jobject*) (Enum
Mapper.cpp:324)
==26302== by 0x17AF5EFC: EnumMapper::toDepth(_jobject*) (EnumMapper.cpp:219)
==26302== by 0x17B2841D: Java_org_apache_subversion_javahl_SVNClient_doImport
 (org_apache_subversion_javahl_SVNClient.cpp:826)
==26302== by 0x77A3CD7: ???
==26302== by 0x7797057: ???
==26302== Address 0x414b3a8 is not stack'd, malloc'd or (recently) free'd

==26302== Invalid write of size 4
==26302== at 0x77A1BC5: ???
==26302== by 0x7797705: ???
==26302== by 0x77914E6: ???
==26302== by 0x5FAC4DD: JavaCalls::call_helper(JavaValue*, methodHandle*, Jav
aCallArguments*, Thread*) (in /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/se
rver/libjvm.so)
==26302== by 0x5FABF94: JavaCalls::call(JavaValue*, methodHandle, JavaCallArg
uments*, Thread*) (in /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/lib
jvm.so)
==26302== by 0x5FC14BA: jni_invoke_nonstatic(JNIEnv_*, JavaValue*, _jobject*,
 JNICallType, _jmethodID*, JNI_ArgumentPusher*, Thread*) (in /usr/lib/jvm/java-7
-openjdk-amd64/jre/lib/amd64/server/libjvm.so)
==26302== by 0x5FC5139: jni_CallVoidMethodV (in /usr/lib/jvm/java-7-openjdk-a
md64/jre/lib/amd64/server/libjvm.so)
==26302== by 0x17AE97B8: JNIEnv_::CallVoidMethod(_jobject*, _jmethodID*, ...)
 (jni.h:1054)
==26302== by 0x17AE9FBE: ClientContext::notify(void*, svn_wc_notify_t const*,
 apr_pool_t*) (ClientContext.cpp:196)
==26302== by 0x17BF1DA5: import_dir (import.c:573)
==26302== by 0x17BF1A39: import_children (import.c:458)
==26302== by 0x17BF2355: import (import.c:751)
==26302== Address 0x414fd10 is not stack'd, malloc'd or (recently) free'd

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff7fd7700 (LWP 1685)]
0x00007ffff6a351aa in ThreadStateTransition::transition_from_native(JavaThread*, JavaThreadState) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
(gdb) bt
#0 0x00007ffff6a351aa in ThreadStateTransition::transition_from_native(JavaThread*, JavaThreadState) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#1 0x00007ffff6d2aec0 in Unsafe_CompareAndSwapInt ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#2 0x00007ffff2480cd8 in ?? ()
#3 0x00007ffff7fd5f10 in ?? ()
#4 0x00007ffff2474233 in ?? ()
#5 0x0000000000000000 in ?? ()

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe6cc5700 (LWP 20525)]
0x00007ffff680e379 in ciEnv::get_field_by_index(ciInstanceKlass*, int) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
(gdb) bt
#0 0x00007ffff680e379 in ciEnv::get_field_by_index(ciInstanceKlass*, int) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#1 0x00007ffff6829683 in ciBytecodeStream::get_field(bool&) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#2 0x00007ffff6c16915 in Parse::do_field_access(bool, bool) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#3 0x00007ffff6c110a1 in Parse::do_one_bytecode() ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#4 0x00007ffff6c06f7d in Parse::do_one_block() ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#5 0x00007ffff6c073e4 in Parse::do_all_blocks() ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#6 0x00007ffff6c08a8a in Parse::Parse(JVMState*, ciMethod*, float) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#7 0x00007ffff67eff75 in ParseGenerator::generate(JVMState*) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#8 0x00007ffff692208e in Parse::do_call() ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#9 0x00007ffff6c1369e in Parse::do_one_bytecode() ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#10 0x00007ffff6c06f7d in Parse::do_one_block() ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#11 0x00007ffff6c073e4 in Parse::do_all_blocks() ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#12 0x00007ffff6c08a8a in Parse::Parse(JVMState*, ciMethod*, float) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#13 0x00007ffff67eff75 in ParseGenerator::generate(JVMState*) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#14 0x00007ffff687b823 in Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#15 0x00007ffff67ef7f0 in C2Compiler::compile_method(ciEnv*, ciMethod*, int) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#16 0x00007ffff68800fe in CompileBroker::invoke_compiler_on_method(CompileTask*) () from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#17 0x00007ffff688132c in CompileBroker::compiler_thread_loop() ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#18 0x00007ffff6d0f3c5 in JavaThread::thread_main_inner() ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#19 0x00007ffff6d0f6d1 in JavaThread::run() ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#20 0x00007ffff6be0242 in java_start(Thread*) ()
   from /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
#21 0x00007ffff7bc7b50 in start_thread (arg=<optimized out>)
    at pthread_create.c:304
#22 0x00007ffff75000ed in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#23 0x0000000000000000 in ?? ()

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Received on 2014-06-25 13:10:33 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.