Bug 812651
Summary: | [abrt] wvdial-1.61-5.fc17: WvTaskMan::_stackmaster: Process /usr/bin/wvdial was killed by signal 6 (SIGABRT) | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Pedro Francisco <pedrogfrancisco> | ||||||
Component: | libwvstreams | Assignee: | Michal Sekletar <msekleta> | ||||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
Severity: | unspecified | Docs Contact: | |||||||
Priority: | unspecified | ||||||||
Version: | 17 | CC: | akirchhoff135014, anielkis, bugsgentoo, c719711, fabrice, jminter, jsynacek, msekleta, nandanlbhat, pedrogfrancisco, phil, richardsdma, sshedmak | ||||||
Target Milestone: | --- | ||||||||
Target Release: | --- | ||||||||
Hardware: | i686 | ||||||||
OS: | Unspecified | ||||||||
Whiteboard: | abrt_hash:7033d285b0e3a6bf0d9f23bbc7810647939dfdee | ||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2012-06-15 12:29:47 UTC | Type: | --- | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Attachments: |
|
Description
Pedro Francisco
2012-04-15 18:23:22 UTC
Created attachment 577573 [details]
File: backtrace
Created attachment 577574 [details]
File: maps
ping! *** Bug 827419 has been marked as a duplicate of this bug. *** This bug is caused by impairment in libwvstreams, thus changing Component to libwvstreams. I think this bug is caused by optimizations done by new gcc version. I've applied a patch and recompiled libwvstreams package in rawhide[1]. You can download libwvstreams and try it out, your feedback will be greatly appreciated. [1] http://koji.fedoraproject.org/koji/taskinfo?taskID=4124838 (In reply to comment #6) > I think this bug is caused by optimizations done by new gcc version. I've > applied a patch and recompiled libwvstreams package in rawhide[1]. You can > download libwvstreams and try it out, your feedback will be greatly > appreciated. > > [1] http://koji.fedoraproject.org/koji/taskinfo?taskID=4124838 libwvstreams-4.6.1-4 (original release) --> Modem initialized. wvdial: utils/wvtask.cc:409: static void WvTaskMan::_stackmaster(): Assertion `magic_number == -0x123678' failed. Aborted (core dumped) libwvstreams-4.6.1-5 (new release with wvstreams-4.6.1-magic.patch) --> Modem initialized. Segmentation fault (core dumped) dmesg: [ 809.160784] wvdial[8871]: segfault at 20004 ip 4ba8c783 sp bfdbe000 error 4 in libwvbase.so.4.6[4ba54000+7d000] I am sorry to be contributing patchy information, but I didn't have any luck with the koji package. My setup is an HP Pavilion dv6 laptop / 4 GB RAM / 320 GB HDD with Fedora 17 x86_64 installed from DVD. I am away from my regular internet connectivity options and only a bare basic F17 with a Tata Photon Plus (Huawei EC156) is what I have. I have seen the error above (magic number ... failed ... (core dumped). I downloaded the koji rpm from another GPRS connection and tried to apply it with rpm -Uvh libwvstreams-4.6.1-5.fc18.x86_64.rpm. Unfortunately, it kept telling me I needed libssl.so.10 and libcrypto.so.10 (from memory; might be off a little). My base F17 does have openssl package that has the required libraries. So I tried using rpm -Uvh --force --nodeps libwvstreams-4.6.1-5.fc18.x86_64.rpm. There is no change in the error message that I see (core dumped). Only two extra warnings that version information is not available for libssl and libcrypto (probably because of my --force and --nodeps options). I should be back to regular connectivity in a couple of days. But my question is - is there any special stuff I need to do (like enable rawhide yum repo) before trying this rpm install again? Michal, the rawhide libwvstreams-4.6.1-5 you link to is uninstallable on f17: [root@jminter ~]# rpm -U libwvstreams-4.6.1-5.fc18.x86_64.rpm error: Failed dependencies: libcrypto.so.10(libcrypto.so.10)(64bit) is needed by libwvstreams-4.6.1-5.fc18.x86_64 libssl.so.10(libssl.so.10)(64bit) is needed by libwvstreams-4.6.1-5.fc18.x86_64 I downloaded the src.rpm and compiled it locally for fc17. wvdial got a bit further and the error message changed. Previously it was aborting on magic_number == -0x123678 ; now it's aborting later on with *current_task->stack_magic == 0x123678. Previously: (libwvstreams-4.6.1-4.fc17.x86_64.rpm) [root@jminter ~]# wvdial --> WvDial: Internet dialer version 1.61 --> Cannot get information for serial port. --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: AT+CSQ AT+CSQ +CSQ: 2,99 OK --> Sending: AT+CGDCONT=1,"IP","internet" AT+CGDCONT=1,"IP","internet" OK --> Modem initialized. wvdial: utils/wvtask.cc:409: static void WvTaskMan::_stackmaster(): Assertion `magic_number == -0x123678' failed. Aborted Now: (libwvstreams-4.6.1-5.fc17.x86_64.rpm) [root@jminter ~]# wvdial --> WvDial: Internet dialer version 1.61 --> Cannot get information for serial port. --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: AT+CSQ AT+CSQ +CSQ: 8,99 OK --> Sending: AT+CGDCONT=1,"IP","internet" AT+CGDCONT=1,"IP","internet" OK --> Modem initialized. --> Sending: ATDT*99***1# --> Waiting for carrier. ATDT*99***1# CONNECT 7200000 --> Carrier detected. Starting PPP immediately. --> Starting pppd at Thu Jun 7 16:22:22 2012 --> Pid of pppd: 9228 wvdial: utils/wvtask.cc:304: static int WvTaskMan::yield(int): Assertion `*current_task->stack_magic == 0x123678' failed. Aborted Thanks everyone for valueable feedback, to be honest I have looked at the backtrace provided in Description and isolated module in libwvstreams where this bug resides, created some minimal example use case of this module and tested it, I got the same error message as the one in Description, patch I came up with helped in my case so I thought it might help you guys as well, as it turned out it didn't. Please bare with me, I will try to investigate further. Thank you for your patience. Just a quick update. Looks like this will be tough one and it will take me some time to pin down what's wrong here. I've tried to run test wvstreams-4.6.1/utils/tests/tasktest and it's doing something different with every version of libwvstreams package I've tried (f15, f16, f17, rawhide), my only explanation is that behaviour of library, in particular of module wvtask.cc, is highly dependent on compiler version. Gdb is not helping as much as it could because stack get's smashed by jumping around (getcontext(), setcontext()) and library behaves pretty much randomly in every package version. Michal, I had updated to the libwvstreams-4.6.1-5, and it aborted with segfault.. so I used gdb to debug and found this ... maybe this can help to fix the error $ gdb wvdial GNU gdb (GDB) Fedora (7.4.50.20120120-42.fc17) Copyright (C) 2012 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 "i686-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/bin/wvdial...(no debugging symbols found)...done. Missing separate debuginfos, use: debuginfo-install wvdial-1.61-5.fc17.i686 (gdb) run cult Starting program: /usr/bin/wvdial cult [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". --> WvDial: Internet dialer version 1.61 --> Cannot get information for serial port. --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: AT S7=45 S0=0 L1 V1 X4 &C1 &D2 +FCLASS=0 E1 Q0 AT S7=45 S0=0 L1 V1 X4 &C1 &D2 +FCLASS=0 E1 Q0 OK --> Modem initialized. Program received signal SIGSEGV, Segmentation fault. 0xb7d50503 in WvTaskMan::do_task () at utils/wvtask.cc:501 501 assert(task->magic_number == WVTASK_MAGIC); (gdb) break 477 Breakpoint 1 at 0xb7d504b2: file utils/wvtask.cc, line 477. (gdb) run cult The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /usr/bin/wvdial cult [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". --> WvDial: Internet dialer version 1.61 --> Cannot get information for serial port. --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: AT S7=45 S0=0 L1 V1 X4 &C1 &D2 +FCLASS=0 E1 Q0 AT S7=45 S0=0 L1 V1 X4 &C1 &D2 +FCLASS=0 E1 Q0 OK --> Modem initialized. Breakpoint 1, WvTaskMan::do_task () at utils/wvtask.cc:477 477 context_return = 0; (gdb) watch task->magic_number Watchpoint 2: task->magic_number (gdb) print task->magic_number $1 = 1193592 (gdb) n 478 assert(getcontext(&task->mystate) == 0); (gdb) n Watchpoint 2: task->magic_number Old value = 1193592 New value = <unreadable> 0xb7d504bf in WvTaskMan::do_task () at utils/wvtask.cc:478 478 assert(getcontext(&task->mystate) == 0); (gdb) n 479 if (context_return == 0) (gdb) n 538 } (gdb) n Watchpoint 2 deleted because the program has left the block in which its expression is valid. Watchpoint 2 deleted because the program has left the block in which its expression is valid. Watchpoint 2 deleted because the program has left the block in which its expression is valid. WvTaskMan::_stackmaster () at utils/wvtask.cc:440 440 assert(magic_number == -WVTASK_MAGIC); (gdb) n 446 stack_target->stack_magic = (int *)alloca(sizeof(int)); (gdb) n 447 *stack_target->stack_magic = WVTASK_MAGIC; (gdb) n 410 assert(magic_number == -WVTASK_MAGIC); (gdb) n 413 assert(getcontext(&stackmaster_task) == 0); (gdb) n 412 context_return = 0; (gdb) n 413 assert(getcontext(&stackmaster_task) == 0); (gdb) n 415 if (val == 0) (gdb) n 417 assert(magic_number == -WVTASK_MAGIC); (gdb) n 423 setcontext(&get_stack_return); (gdb) n 422 context_return = 1; (gdb) n 423 setcontext(&get_stack_return); (gdb) n Program received signal SIGSEGV, Segmentation fault. 0xb7d50503 in WvTaskMan::do_task () at utils/wvtask.cc:501 501 assert(task->magic_number == WVTASK_MAGIC); (gdb) My problem is temporarily fixed with a workaround. I have gone ahead and installed the packages available from Fedora 16 DVD and I was able to connect like before. The packages I removed were: libwvstreams-4.6.1-4.fc17.x86_64 wvdial-1.61-5.fc17.x86_64 The packages I installed were: libwvstreams-4.6.1-3.fc15.x86_64.rpm wvdial-1.61-4.fc15.x86_64.rpm Maybe that should help people until working packages are available. after bissecting the optimizations used by gcc in -O2 mode, it seems to me that the problem is caused by two specific ones : -ftree-dce and -foptimize-sibling-calls Reverting these two options generates a library that works for me (not with wvdial, but with another application --retchmail-- that shows the same error message with the version of libwvstreams compiled with gcc-4.7.0): $RPM_OPT_FLAGS -fPIC -fpermissive -fno-strict-aliasing -fno-tree-dce -fno-optimize-sibling-calls HTH (In reply to comment #14) > after bissecting the optimizations used by gcc in -O2 mode, it seems to me > that the problem is caused by two specific ones : -ftree-dce and > -foptimize-sibling-calls Yes, thanks Fabrice! I confirm that adding these two gcc options fixes the wvdial problem for me. No more SIGABRTs. If anyone else is stuck with this, I have made f17 packages available at: http://rpm.fifi.org/f17-fifi/x86_64/repoview/libwvstreams.html Phil. (In reply to comment #15) > (In reply to comment #14) > > after bissecting the optimizations used by gcc in -O2 mode, it seems to me > > that the problem is caused by two specific ones : -ftree-dce and > > -foptimize-sibling-calls > > Yes, thanks Fabrice! > > I confirm that adding these two gcc options fixes the wvdial problem for me. > No more SIGABRTs. > > If anyone else is stuck with this, I have made f17 packages available at: > http://rpm.fifi.org/f17-fifi/x86_64/repoview/libwvstreams.html > > Phil. http://koji.fedoraproject.org/koji/buildinfo?buildID=325182 tested on f17 and it works flawlessly. Please, do a f17 update. New package builds are available. Fabrice thank you for pointing out problematic optimizations, I appreciate your assistance. [f17] http://koji.fedoraproject.org/koji/taskinfo?taskID=4161572 [f18] http://koji.fedoraproject.org/koji/taskinfo?taskID=4161427 libwvstreams-4.6.1-6.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/libwvstreams-4.6.1-6.fc17 libwvstreams-4.6.1-6.fc17 has been pushed to the Fedora 17 stable repository. If problems still persist, please make note of it in this bug report. I can use my USB dongle with these packages: libwvstreams-4.6.1-6.fc17.x86_64.rpm wvdial-1.61-5.fc17.x86_64.rpm Thanks for the updates. |