Bug ID | 1100690 |
---|---|
Summary | windows:mingw:win32/mingw32-cross-nsis: Bug segfault when used in OBS worker or OSC chroot |
Classification | openSUSE |
Product | openSUSE.org |
Version | unspecified |
Hardware | x86-64 |
OS | openSUSE 42.3 |
Status | NEW |
Severity | Normal |
Priority | P5 - None |
Component | 3rd party software |
Assignee | fridrich.strba@bluewin.ch |
Reporter | thomas@ruecker.fi |
QA Contact | bnc-team-screening@forge.provo.novell.com |
CC | fstrba@suse.com, hib@hiberis.nl, idonmez@suse.com, mkbosmans@gmail.com, tlillqvist@suse.com |
Found By | --- |
Blocker | --- |
I've spent yesterday trying to figure out how to work around it. My package is: https://build.opensuse.org/package/show/home:dm8tbr/mingw32-icecast-installer I forked mingw32-cross-nsis to ensure it wasn't a stale binary. I also included openSUSE_Leap_42.3:updates for that target to rule out it was the updated glibc. I verified that it happens on the following targets: * openSUSE_13.2 * openSUSE_Leap_15.0 * openSUSE_Leap_42.3 * openSUSE_Tumbleweed It happens both on OBS workers and in OSC build/chroot. It does however not happen on full distro installations. This made me at first suspect an undeclared runtime dependency, but I fail to find the usual signs of it in backtraces and strace output. $ osc build --clean win32_openSUSE_Leap_42.3 x86_64 ��� [ 16s] + makensis icecast.nsis -V4 [ 16s] Processing config: /etc/nsisconf.nsh [ 16s] Processing script file: "icecast.nsis" (UTF8) [ 16s] /var/tmp/rpm-tmp.5kt6vn: line 33: 8023 Segmentation fault makensis icecast.nsis -V4 [ 16s] error: Bad exit status from /var/tmp/rpm-tmp.5kt6vn (%build) $ strace -f makensis icecast.nsis -V4 ��� open("/usr/share/nsis/Include/Util.nsh", O_RDONLY) = 7 lseek(7, 0, SEEK_CUR) = 0 fstat(7, {st_mode=S_IFREG|0755, st_size=4659, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9a4ad1e000 lseek(7, 0, SEEK_SET) = 0 read(7, "; ---------------------\r\n; "..., 4096) = 4096 lseek(7, 4096, SEEK_SET) = 4096 stat("/usr/share/nsis/Include/Util.nsh", {st_mode=S_IFREG|0755, st_size=4659, ...}) = 0 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=127, ...}) = 0 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x1c72000} --- +++ killed by SIGSEGV +++ Segmentation fault $ gdb --args makensis icecast.nsis GNU gdb (GDB; openSUSE Leap 42.3) 8.0 ��� Reading symbols from makensis...Reading symbols from /usr/lib/debug/usr/bin/makensis.debug...done. done. (gdb) run Starting program: /usr/bin/makensis icecast.nsis [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Processing config: /etc/nsisconf.nsh Processing script file: "icecast.nsis" (UTF8) Program received signal SIGSEGV, Segmentation fault. wcslen () at ../sysdeps/x86_64/wcslen.S:126 126 ../sysdeps/x86_64/wcslen.S: No such file or directory. (gdb) bt #0 wcslen () at ../sysdeps/x86_64/wcslen.S:126 #1 0x0000000000440758 in CEXEBuild::GetMacro(wchar_t const*, wchar_t**) () #2 0x0000000000443f2d in CEXEBuild::pp_macro(LineParser&) () #3 0x0000000000435bad in CEXEBuild::doCommand(int, LineParser&) () #4 0x000000000043e9b3 in CEXEBuild::doParse(wchar_t const*) () #5 0x000000000043f6ee in CEXEBuild::parseScript() () #6 0x000000000044197d in CEXEBuild::includeScript(wchar_t const*, NStreamEncoding&) () #7 0x00000000004424f1 in CEXEBuild::pp_include(LineParser&) () #8 0x000000000043348a in CEXEBuild::doCommand(int, LineParser&) () #9 0x000000000043e9b3 in CEXEBuild::doParse(wchar_t const*) () #10 0x000000000043f6ee in CEXEBuild::parseScript() () #11 0x000000000044197d in CEXEBuild::includeScript(wchar_t const*, NStreamEncoding&) () #12 0x00000000004424f1 in CEXEBuild::pp_include(LineParser&) () #13 0x000000000043348a in CEXEBuild::doCommand(int, LineParser&) () #14 0x000000000043e9b3 in CEXEBuild::doParse(wchar_t const*) () #15 0x000000000043f6ee in CEXEBuild::parseScript() () #16 0x000000000044197d in CEXEBuild::includeScript(wchar_t const*, NStreamEncoding&) () #17 0x00000000004422d8 in CEXEBuild::pp_include(LineParser&) () #18 0x000000000043348a in CEXEBuild::doCommand(int, LineParser&) () #19 0x000000000043e9b3 in CEXEBuild::doParse(wchar_t const*) () #20 0x000000000043f6ee in CEXEBuild::parseScript() () #21 0x000000000044197d in CEXEBuild::includeScript(wchar_t const*, NStreamEncoding&) () #22 0x00000000004424f1 in CEXEBuild::pp_include(LineParser&) () #23 0x000000000043348a in CEXEBuild::doCommand(int, LineParser&) () #24 0x000000000043e9b3 in CEXEBuild::doParse(wchar_t const*) () #25 0x000000000043f6ee in CEXEBuild::parseScript() () #26 0x000000000043f8eb in CEXEBuild::process_script(NIStream&, wchar_t const*) () #27 0x0000000000421828 in makensismain(int, wchar_t**) () #28 0x00000000004046aa in main () There are no annotations despite the -debug packages being installed and makensis.debug being loaded. I inspected '/usr/share/nsis/Include/Util.nsh' but failed to spot anything obvious in the first two lines (bt indicates 5 lines being parsed?). I suspect it's *something* from one of the 900ish packages of a headless OpenSUSE install that makes this work. I tried installing all glibc packages to match things, but that didn't help. Running it as part of rpmbuild on a regular install works too. Oh, and yes, this has worked in the past. The last successful build run that I'm sure of is from 2016. I hope the package maintainer