Control: found -1 6.0.1-10

(I suggest opening a new bug for the 6.0.2 issues: as noted above, that probably won't be accepted for buster even if we do get it to build.)

Running what I think is the relevant step in a debugger:
* Go to the top level directory of a _built_ source tree (i.e. one that has had dpkg-buildpackage run on it; the same such tree can be used more than once) * Open the script file scilab-bin, and at line 117 (in function func_exec_program_core), replace
-    exec "$progdir/$program" ${1+"$@"}
+    exec gdb --args "$progdir/$program" ${1+"$@"}
(or whatever debugging tool you want to use).
* Run:
LANG=en_US.UTF-8 LC_ALL=C SCI_DISABLE_TK=1 SCI_JAVA_ENABLE_HEADLESS=1 _JAVA_OPTIONS='-Djava.awt.headless=true' ./bin/scilab-adv-cli -noatomsautoload -nb -l en_US -nouserstartup -e "try xmltojar([],[],'en_US');catch disp(lasterror()); exit(-1);end;exit(0);"

Results:
* no debugging tool: succeeds (for me), with the usual nonfatal IllegalStateException. * qemu-x86_64-static -cpu Opteron_G3 (probably what x86-bm-01 has [0], but note that qemu *doesn't* reject instructions that the CPU model emulated doesn't have [1]): hangs using a full core of CPU.
* gdb: crashes with segfault and corrupt-stack backtrace,
Thread 1 "scilab-bin" received signal SIGSEGV, Segmentation fault.
0x00007fffc096851b in ?? ()
(gdb) bt full
#0  0x00007fffc096851b in ?? ()
No symbol table info available.
#1  0x0000000000000206 in ?? ()
No symbol table info available.
#2  0x00007fffc0968280 in ?? ()
No symbol table info available.
#3  0x00007ffff76c5034 in Abstract_VM_Version::_vm_major_version ()
   from /usr/lib/jvm/default-java/lib/server/libjvm.so
No symbol table info available.
#4  0x00007fffffffbe10 in ?? ()
No symbol table info available.
#5  0x00007ffff73317ca in VM_Version::get_processor_features ()
    at ./src/hotspot/cpu/x86/vm_version_x86.cpp:565
        use_avx_limit = <optimized out>
buf = "P\372]UUU\000\000\000\000\000\000\000\000\000\000\004\f\000\000\000\000\000\000\320\335\062\367\377\177\000\000\001\000\000\000\004", '\000' <repeats 11 times>, "\020", '\000' <repeats 23 times>, "\310\235C\367\377\177\000\000\327\234C\367\377\177\000\000\001", '\000' <repeats 23 times>, " vq\367\377\177\000\000\002\000\000\000\000\000\000\000S\000\000\000\032", '\000' <repeats 51 times>, "p\372]UUU\000\000p\372]UUU\000\000\000\000\000\000\000\000\000\000"...
        use_sse_limit = <optimized out>
        cache_line_size = <optimized out>
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

* valgrind: reports a _lot_ of invalid memory accesses, then crashes with segfault * (jvm doesn't work - .libs/scilab-bin is a native executable, not a Java file)

This suggests that it is memory corruption after all: the "illegal instruction" might be a corrupt stack returning to somewhere that was never meant to be executable code.

[0] https://lists.debian.org/debian-wb-team/2019/05/msg00004.html
[1] https://bugs.launchpad.net/qemu/+bug/1818075

Reply via email to