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.

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

Reply via email to