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