How would they break oracle's though. It's a binary. On Wed, Jul 5, 2017 at 10:40 PM, Andi Vajda <va...@apache.org> wrote:
> > > On Jul 6, 2017, at 00:03, Joshua Campbell <josh...@ualberta.ca> wrote: > > > > I confirmed that it crashes on multiple Debian 9 machines but it > > doesn't crash on Ubuntu 16.04. This behavior is consistent regardless > > of the JDK used (I tried openjdk 8, oracle 8 and openjdk 9). I am at a > > loss for how to track it down further due to the (apparent) GDB bug. > > Hmmm, maybe JNI is broken on Debian 9 ? > > Andi.. > > > > >> On Wed, Jul 5, 2017 at 2:39 PM, Joshua Campbell <josh...@ualberta.ca> > wrote: > >> No, it segfaults. > >> > >>> On Wed, Jul 5, 2017 at 2:26 PM, Andi Vajda <va...@apache.org> wrote: > >>> > >>>> On Jul 5, 2017, at 22:16, Joshua Campbell <josh...@ualberta.ca> > wrote: > >>>> > >>>> It's occuring after JCC calls JNI_CreateJavaVM > >>>> > >>>> cpp.py(529): env = initVM(os.pathsep.join(classpath) or None, > **initvm_args) > >>>> ^^^^^ last python trace before death > >>>> > >>>> Breakpoint 5, initVM (self=0x7ffff7e05048, args=0x7ffff66deac8, > >>>> kwds=0x7ffff7e00ec8) at jcc3/sources/jcc.cpp:527 > >>>> 527 if (JNI_CreateJavaVM(&vm, (void **) &vm_env, > &vm_args) < 0) > >>>> ^^^^ last line of jcc.cpp before death > >>>> > >>>> (gdb) step > >>>> > >>>> Program received signal SIGSEGV, Segmentation fault. > >>>> 0x00007fffe43942b4 in ?? () > >>>> (gdb) > >>>> > >>>> > >>>> AFTER fixing debians debugging symbols with ln -s > >>>> /usr/lib/debug/usr/lib/jvm/java-8-openjdk-amd64 > >>>> /usr/lib/debug/usr/lib/jvm/java-1.8.0-openjdk-amd64 > >>>> > >>>> Breakpoint 1, JNI_CreateJavaVM (vm=0x7fffffffc420, > penv=0x7fffffffc418, > >>>> args=0x7fffffffc450) at ./src/hotspot/src/share/vm/ > prims/jni.cpp:5161 > >>>> 5161 ./src/hotspot/src/share/vm/prims/jni.cpp: No such file or > directory. > >>>> (gdb) s > >>>> JNI_CreateJavaVM (vm=0x7fffffffc420, penv=0x7fffffffc418, > args=0x7fffffffc450) > >>>> at ./src/hotspot/src/share/vm/prims/jni.cpp:5163 > >>>> 5163 in ./src/hotspot/src/share/vm/prims/jni.cpp > >>>> (gdb) > >>>> /build/gdb-A87voC/gdb-7.12/gdb/inline-frame.c:167: internal-error: > >>>> void inline_frame_this_id(frame_info*, void**, frame_id*): Assertion > >>>> `frame_id_p (*this_id)' failed. > >>>> A problem internal to GDB has been detected, > >>>> further debugging may prove unreliable. > >>>> Quit this debugging session? (y or n) n > >>>> > >>>> This is a bug, please report it. For instructions, see: > >>>> <http://www.gnu.org/software/gdb/bugs/>. > >>>> > >>>> What in the name of heck > >>> > >>> Does it run without gdb ? > >>> > >>> Andi.. > >>> > >>>> > >>>> On Wed, Jul 5, 2017 at 11:48 AM, Joshua Campbell <josh...@ualberta.ca> > wrote: > >>>>>> But you should get a better stacktrace ? > >>>>> > >>>>> I got the exact same stacktrace. > >>>>> > >>>>> $ ldd > >>>>> venv3/lib/python3.5/site-packages/JCC-3.0-py3.5-linux- > x86_64.egg/libjcc3.so > >>>>> linux-vdso.so.1 (0x00007ffcf4eb8000) > >>>>> libjava.so => > >>>>> /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/libjava.so > >>>>> (0x00007f412227f000) > >>>>> libjvm.so => > >>>>> /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/server/libjvm.so > >>>>> (0x00007f412133d000) > >>>>> libpython3.5m.so.1.0 => > >>>>> /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0 (0x00007f4120c3a000) > >>>>> libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 > >>>>> (0x00007f41208b8000) > >>>>> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 > (0x00007f41205b4000) > >>>>> libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 > >>>>> (0x00007f412039b000) > >>>>> libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 > >>>>> (0x00007f412017e000) > >>>>> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 > (0x00007f411fddf000) > >>>>> libverify.so => > >>>>> /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/libverify.so > >>>>> (0x00007f411fbce000) > >>>>> libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 > (0x00007f411f9ca000) > >>>>> libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 > >>>>> (0x00007f411f7a0000) > >>>>> libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 > (0x00007f411f584000) > >>>>> libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 > >>>>> (0x00007f411f381000) > >>>>> /lib64/ld-linux-x86-64.so.2 (0x000055857b9dd000) > >>>>> > >>>>> I did verify it's compiling with -g > >>>>> > >>>>> x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall > >>>>> -Wstrict-prototypes -g > >>>>> -fdebug-prefix-map=/build/python3.5-MLq5fN/python3.5-3.5.3=. > >>>>> -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time > >>>>> -D_FORTIFY_SOURCE=2 -fPIC -g -D_java_generics -DJCC_VER="3.0" > >>>>> -I/usr/lib/jvm/java-1.8.0-openjdk-amd64/include > >>>>> -I/usr/lib/jvm/java-1.8.0-openjdk-amd64/include/linux -I_jcc3 > -Ijcc3/sources > >>>>> -I/usr/include/python3.5m > >>>>> -I/home/joshua/unnaturalcode/venv3/include/python3.5m -c > >>>>> _jcc3/java/lang/String.cpp -o > >>>>> build/temp.linux-x86_64-3.5/_jcc3/java/lang/String.o -DPYTHON > >>>>> -fno-strict-aliasing -Wno-write-strings -O0 -g -DDEBUG > >>>>> > >>>>> But it's still producing > >>>>> > >>>>> Program received signal SIGSEGV, Segmentation fault. > >>>>> 0x00007fffe47eb2b4 in ?? () > >>>>> (gdb) bt > >>>>> #0 0x00007fffe47eb2b4 in ?? () > >>>>> #1 0x0000000000000246 in ?? () > >>>>> #2 0x00007fffe47eb160 in ?? () > >>>>> #3 0x00007fffffffc840 in ?? () > >>>>> #4 0x00007fffffffc7e0 in ?? () > >>>>> #5 0x00007ffff6006075 in VM_Version::get_processor_features() () > >>>>> from /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/ > server/libjvm.so > >>>>> Backtrace stopped: previous frame inner to this frame (corrupt > stack?) > >>>>> > >>>>> > >>>>> > >>>>> > >>>>>> On Wed, Jul 5, 2017 at 11:38 AM, Andi Vajda <va...@apache.org> > wrote: > >>>>>> > >>>>>> > >>>>>> On Jul 5, 2017, at 18:56, Joshua Campbell <josh...@ualberta.ca> > wrote: > >>>>>> > >>>>>>>> What version if java is this jcc built with ? > >>>>>>>> To build jcc for debugging with gcc add --debug to the build > command. > >>>>>>>> You > >>>>>>> should then have symbols visible to gdb. > >>>>>>> > >>>>>>> You mean with setup.py build --debug ? I tried that on trunk and > got the > >>>>>>> same result. > >>>>>> > >>>>>> But you should get a better stacktrace ? > >>>>>> > >>>>>>>> Is the version of java used here the same as during jcc build > time ? > >>>>>>> > >>>>>>> Yes I made sure of that and uninstalled all but openjdk and > rebuilt. > >>>>>> > >>>>>> Did you verify this via running 'ldd' on the shared libraries > involved ? > >>>>>> > >>>>>> That being said, it could be something different of course ! > >>>>>> > >>>>>> Andi.. > >>>>>> > >>>>>>> > >>>>>>>> On Wed, Jul 5, 2017 at 10:46 AM, Andi Vajda <va...@apache.org> > wrote: > >>>>>>>> > >>>>>>>> > >>>>>>>>> On Jul 5, 2017, at 18:25, Joshua Campbell <josh...@ualberta.ca> > wrote: > >>>>>>>>> > >>>>>>>>> This segfault appears to occur within the JVM code on both > >>>>>>>> oracle-java8-jdk > >>>>>>>>> and > >>>>>>>>> java-1.8.0-openjdk-amd64. I installed the JVM debugging symbols > but it > >>>>>>>>> didn't seem to help. > >>>>>>>>> > >>>>>>>>> Occurs under python 2 and 3. I don't know how to debug this any > >>>>>>>>> further. > >>>>>>>>> > >>>>>>>>> 0 joshua@buttercup unnaturalcode 17609$ python3 -m virtualenv -p > >>>>>>>>> python3 > >>>>>>>>> venv3 Already using interpreter /usr/bin/python3 > >>>>>>>>> Using base prefix '/usr' > >>>>>>>>> New python executable in /home/joshua/unnaturalcode/ > venv3/bin/python3 > >>>>>>>>> Also creating executable in > >>>>>>>>> /home/joshua/unnaturalcode/venv3/bin/python > >>>>>>>>> Installing setuptools, pkg_resources, pip, wheel...done. > >>>>>>>>> 0 joshua@buttercup unnaturalcode 17610$ source > venv3/bin/activate > >>>>>>>>> 0 joshua@buttercup unnaturalcode 17611$ which python > >>>>>>>>> /home/joshua/unnaturalcode/venv3/bin/python > >>>>>>>>> 0 joshua@buttercup unnaturalcode 17616$ pip install jcc > --no-cache-dir > >>>>>>>>> Collecting jcc > >>>>>>>>> Downloading JCC-3.0.tar.gz (176kB) > >>>>>>>>> 100% |████████████████████████████████| 184kB 3.4MB/s > >>>>>>>>> Installing collected packages: jcc > >>>>>>>>> Running setup.py install for jcc ... done > >>>>>>>> > >>>>>>>> What version if java is this jcc built with ? > >>>>>>>> To build jcc for debugging with gcc add --debug to the build > command. > >>>>>>>> You > >>>>>>>> should then have symbols visible to gdb. > >>>>>>>> > >>>>>>>>> Successfully installed jcc-3.0 > >>>>>>>>> 0 joshua@buttercup unnaturalcode 17617$ gdb --args > >>>>>>>>> /home/joshua/unnaturalcode/venv3/bin/python -m jcc --jar > >>>>>>>> > >>>>>>>> Is the version of java used here the same as during jcc build > time ? > >>>>>>>> > >>>>>>>> Andi.. > >>>>>>>> > >>>>>>>>> java/lex-java/target/lex-java-1.0-SNAPSHOT.jar > >>>>>>>>> GNU gdb (Debian 7.12-6) 7.12.0.20161007-git > >>>>>>>>> Copyright (C) 2016 Free Software Foundation, Inc. > >>>>>>>>> License GPLv3+: GNU GPL version 3 or later > >>>>>>>>> <http://gnu.org/licenses/gpl. > >>>>>>>> html > >>>>>>>>>> > >>>>>>>>> This is free software: you are free to change and redistribute > it. > >>>>>>>>> There is NO WARRANTY, to the extent permitted by law. Type "show > >>>>>>>> copying" > >>>>>>>>> and "show warranty" for details. > >>>>>>>>> This GDB was configured as "x86_64-linux-gnu". > >>>>>>>>> Type "show configuration" for configuration details. > >>>>>>>>> For bug reporting instructions, please see: > >>>>>>>>> <http://www.gnu.org/software/gdb/bugs/>. > >>>>>>>>> Find the GDB manual and other documentation resources online at: > >>>>>>>>> <http://www.gnu.org/software/gdb/documentation/>. > >>>>>>>>> For help, type "help". > >>>>>>>>> Type "apropos word" to search for commands related to "word"... > >>>>>>>>> Reading symbols from /home/joshua/unnaturalcode/ > >>>>>>>> venv3/bin/python...Reading > >>>>>>>>> symbols from > >>>>>>>>> /usr/lib/debug/.build-id/db/fc2e1a3c58b6d241b3f9af7b2fb3a2 > >>>>>>>> 4b81b90e.debug...done. > >>>>>>>>> done. > >>>>>>>>> (gdb) r > >>>>>>>>> Starting program: /home/joshua/unnaturalcode/venv3/bin/python > -m jcc > >>>>>>>> --jar > >>>>>>>>> java/lex-java/target/lex-java-1.0-SNAPSHOT.jar > >>>>>>>>> [Thread debugging using libthread_db enabled] > >>>>>>>>> Using host libthread_db library "/lib/x86_64-linux-gnu/ > >>>>>>>> libthread_db.so.1". > >>>>>>>>> Installing openjdk unwinder > >>>>>>>>> Traceback (most recent call last): > >>>>>>>>> File > >>>>>>>>> "/usr/share/gdb/auto-load/usr/lib/jvm/java-8-openjdk-amd64/ > >>>>>>>> jre/lib/amd64/server/ > >>>>>>>>> libjvm.so-gdb.py", line 52, in <module> > >>>>>>>>> class Types(object): > >>>>>>>>> File > >>>>>>>>> "/usr/share/gdb/auto-load/usr/lib/jvm/java-8-openjdk-amd64/ > >>>>>>>> jre/lib/amd64/server/ > >>>>>>>>> libjvm.so-gdb.py", line 66, in Types > >>>>>>>>> nmethodp_t = gdb.lookup_type('nmethod').pointer() > >>>>>>>>> gdb.error: No type named nmethod. > >>>>>>>>> > >>>>>>>>> Program received signal SIGSEGV, Segmentation fault. > >>>>>>>>> 0x00007fffe47f22b4 in ?? () > >>>>>>>>> (gdb) bt > >>>>>>>>> #0 0x00007fffe47f22b4 in ?? () > >>>>>>>>> #1 0x0000000000000246 in ?? () > >>>>>>>>> #2 0x00007fffe47f2160 in ?? () > >>>>>>>>> #3 0x00007fffffffc8c0 in ?? () > >>>>>>>>> #4 0x00007fffffffc860 in ?? () > >>>>>>>>> #5 0x00007ffff600d075 in VM_Version::get_processor_features() > () > >>>>>>>>> from /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/lib/amd64/ > >>>>>>>> server/libjvm.so > >>>>>>>>> Backtrace stopped: previous frame inner to this frame (corrupt > stack?) > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> -- > >>>>>>>>> Joshua Charles Campbell > >>>>>>>>> Ph.D. Student and Research Assistant > >>>>>>>>> Department of Computing Science > >>>>>>>>> University of Alberta > >>>>>>>>> josh...@ualberta.ca > >>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> -- > >>>>>>> Joshua Charles Campbell > >>>>>>> Ph.D. Student and Research Assistant > >>>>>>> Department of Computing Science > >>>>>>> University of Alberta > >>>>>>> josh...@ualberta.ca > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> Joshua Charles Campbell > >>>>> Ph.D. Student and Research Assistant > >>>>> Department of Computing Science > >>>>> University of Alberta > >>>>> josh...@ualberta.ca > >>>> > >>>> > >>>> > >>>> -- > >>>> Joshua Charles Campbell > >>>> Ph.D. Student and Research Assistant > >>>> Department of Computing Science > >>>> University of Alberta > >>>> josh...@ualberta.ca > >>> > >> > >> > >> > >> -- > >> Joshua Charles Campbell > >> Ph.D. Student and Research Assistant > >> Department of Computing Science > >> University of Alberta > >> josh...@ualberta.ca > > > > > > > > -- > > Joshua Charles Campbell > > Ph.D. Student and Research Assistant > > Department of Computing Science > > University of Alberta > > josh...@ualberta.ca > > -- Joshua Charles Campbell Ph.D. Student and Research Assistant Department of Computing Science University of Alberta josh...@ualberta.ca