Bug#926180: scilab: FTBFS on all

Rebecca N. Palmer rebecca_palmer at zoho.com
Mon May 20 23:03:20 BST 2019


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



More information about the debian-science-maintainers mailing list