Bugzilla – Bug 457035
yast2 scanner hangs in busy loop
Last modified: 2009-01-07 08:21:47 UTC
Created attachment 258433 [details] y2log from both unsuccessful (qt) and successful (ncurses) scanner setup This might be related to bug 439431 about yast2 printer hanging. I also googled and found another recent report from an openSUSE-11.0 user with the same problem: http://linux.derkeiler.com/Mailing-Lists/SuSE/2008-11/msg01862.html yast2 scanner calls /usr/lib/YaST2/bin/y2base scanner -S qt changes caption to "Scanner Model and Driver Selection" and then hangs in busy loop (100% CPU) an interesting bit of information: yast scanner which calls /usr/lib/YaST2/bin/y2base scanner -S ncurses works I used gdb and hit Ctrl+C to find where it hangs: Program received signal SIGINT, Interrupt. [Switching to Thread 0x7f3b7f999700 (LWP 12511)] 0x00007f3b7e13190b in read () from /lib64/libpthread.so.0 (gdb) bt #0 0x00007f3b7e13190b in read () from /lib64/libpthread.so.0 #1 0x00007f3b7b1d68f0 in YUI::waitForUIThread () from /usr/lib64/libyui.so.3 #2 0x00007f3b7b4693c1 in YUIFunction::evaluateCall () from /usr/lib64/YaST2/plugin/libpy2UI.so.2 #3 0x00007f3b7eeacddf in YEFunction::evaluate () from /usr/lib64/libycp.so.3 #4 0x00007f3b7eeb6681 in YSExpression::evaluate () from /usr/lib64/libycp.so.3 #5 0x00007f3b7eed50c9 in YBlock::evaluate () from /usr/lib64/libycp.so.3 #6 0x00007f3b7eea998c in Y2YCPFunction::evaluateCall () from /usr/lib64/libycp.so.3 #7 0x00007f3b7eeacddf in YEFunction::evaluate () from /usr/lib64/libycp.so.3 #8 0x00007f3b7eeb6681 in YSExpression::evaluate () from /usr/lib64/libycp.so.3 #9 0x00007f3b7eed50c9 in YBlock::evaluate () from /usr/lib64/libycp.so.3 #10 0x00007f3b7eea998c in Y2YCPFunction::evaluateCall () from /usr/lib64/libycp.so.3 #11 0x00007f3b7eeacddf in YEFunction::evaluate () from /usr/lib64/libycp.so.3 #12 0x00007f3b7eeb6681 in YSExpression::evaluate () from /usr/lib64/libycp.so.3 #13 0x00007f3b7eed50c9 in YBlock::evaluate () from /usr/lib64/libycp.so.3 #14 0x00007f3b7eeb64f1 in YSBlock::evaluate () from /usr/lib64/libycp.so.3 #15 0x00007f3b7eec61f7 in YSIf::evaluate () from /usr/lib64/libycp.so.3 #16 0x00007f3b7eed50c9 in YBlock::evaluate () from /usr/lib64/libycp.so.3 #17 0x00007f3b7eea998c in Y2YCPFunction::evaluateCall () from /usr/lib64/libycp.so.3 #18 0x00007f3b7eeacddf in YEFunction::evaluate () from /usr/lib64/libycp.so.3 #19 0x00007f3b7eeb6681 in YSExpression::evaluate () from /usr/lib64/libycp.so.3 #20 0x00007f3b7eed50c9 in YBlock::evaluate () from /usr/lib64/libycp.so.3 #21 0x00007f3b7eea998c in Y2YCPFunction::evaluateCall () from /usr/lib64/libycp.so.3 #22 0x00007f3b7eeacddf in YEFunction::evaluate () from /usr/lib64/libycp.so.3 #23 0x00007f3b7ee9066c in YCPCodeRep::evaluate () from /usr/lib64/libycp.so.3 #24 0x00007f3b7ef1a153 in ?? () from /usr/lib64/libycp.so.3 #25 0x00007f3b7eea8989 in YEBuiltin::evaluate () from /usr/lib64/libycp.so.3 #26 0x00007f3b7eeb68b7 in YSAssign::evaluate () from /usr/lib64/libycp.so.3 #27 0x00007f3b7eed50c9 in YBlock::evaluate () from /usr/lib64/libycp.so.3 #28 0x00007f3b7eea998c in Y2YCPFunction::evaluateCall () from /usr/lib64/libycp.so.3 #29 0x00007f3b7eeacddf in YEFunction::evaluate () from /usr/lib64/libycp.so.3 #30 0x00007f3b7eeb68b7 in YSAssign::evaluate () from /usr/lib64/libycp.so.3 #31 0x00007f3b7eed50c9 in YBlock::evaluate () from /usr/lib64/libycp.so.3 #32 0x00007f3b7eeb64f1 in YSBlock::evaluate () from /usr/lib64/libycp.so.3 #33 0x00007f3b7eec9902 in YSWhile::evaluate () from /usr/lib64/libycp.so.3 #34 0x00007f3b7eed50c9 in YBlock::evaluate () from /usr/lib64/libycp.so.3 #35 0x00007f3b7eea998c in Y2YCPFunction::evaluateCall () from /usr/lib64/libycp.so.3 #36 0x00007f3b7eeacddf in YEFunction::evaluate () from /usr/lib64/libycp.so.3 #37 0x00007f3b7eeb77f5 in YSReturn::evaluate () from /usr/lib64/libycp.so.3 #38 0x00007f3b7eed50c9 in YBlock::evaluate () from /usr/lib64/libycp.so.3 ... #86 0x00007f3b7eeacddf in YEFunction::evaluate () from /usr/lib64/libycp.so.3 #87 0x00007f3b7eeb68b7 in YSAssign::evaluate () from /usr/lib64/libycp.so.3 #88 0x00007f3b7eed50c9 in YBlock::evaluate () from /usr/lib64/libycp.so.3 #89 0x00007f3b7eeb64f1 in YSBlock::evaluate () from /usr/lib64/libycp.so.3 #90 0x00007f3b7eec6227 in YSIf::evaluate () from /usr/lib64/libycp.so.3 #91 0x00007f3b7eed50c9 in YBlock::evaluate () from /usr/lib64/libycp.so.3 #92 0x00007f3b7ee9066c in YCPCodeRep::evaluate () from /usr/lib64/libycp.so.3 #93 0x00007f3b7f5971dd in Y2WFMComponent::doActualWork () from /usr/lib64/YaST2/plugin/libpy2wfm.so.2 #94 0x00007f3b7ec1b75a in main () from /usr/lib64/liby2.so.2 #95 0x00007f3b7cf1d436 in __libc_start_main () from /lib64/libc.so.6 #96 0x0000000000400659 in ?? () #97 0x00007fff879c2da8 in ?? () #98 0x000000000000001c in ?? () #99 0x0000000000000004 in ?? () #100 0x00007fff879c3726 in ?? () #101 0x00007fff879c3740 in ?? () #102 0x00007fff879c3748 in ?? () #103 0x00007fff879c374b in ?? () #104 0x0000000000000000 in ?? () other info: > scanimage -L device `sm3600:libusb:002:002' is a Microtek ScanMaker 3600 flatbed scanner > lsusb Bus 002 Device 002: ID 05da:40ca Microtek International, Inc. ScanMaker 3600
Really openSUSE-11.0, not 11.1?
The backtrace from comment #0 might be misleading: It shows only one of the two threads. Can you try again with full debug logging and no threads? cd /var/log/YaST2 mv y2log y2log.old export Y2DEBUG=1 cd /usr/share/YaST2/clients gdb /usr/lib/YaST2/bin/y2base (gdb) run ./scanner.ycp qt --nothreads (wait for a while until starting up with verbose logging should be finished, then hit Ctrl-C) Please also attach the resulting /var/log/YaST2/y2log (preferably bzip'ed).
Created attachment 259244 [details] y2log from both unsuccessful (qt) and successful (ncurses) scanner setup with debug and nothreads This is definitely 11.0-final. # cat /etc/*release openSUSE 11.0 (X86-64) VERSION = 11.0 Now I also tested this issue with the 11.1-RC1 that I installed on the other partition of the same machine and found no problem there. Both installations are very clean as I only bought this machine 2 weeks ago. I also reproduced the bug with the scanner turned off by mistake (clicked "add" in the initial "yast2 scanner" screen).
Sorry, that y2log from comment #3 only contains (the last part of) the succesful program run with the NCurses UI. The problematic part with the Qt UI is already rotated out. But the y2log-1, y2log-2 etc. files that contain the relevant parts should still be in that directory. save_y2logs can package them all. But anyway, if the problem was a scanner that was swithched off, it might be some hardware probing still waiting for the device to come online. Johannes?
Created attachment 259816 [details] yast2/qt/scanner debug nothread log I don't think that the problem is with the scanner because it works with yast/ncurses without changing anything else with both the scanner on and off and I think that yast/ncurses should use the same hardware-access and scanning code as the QT-version.
The Assignee: of this bug currently in vacation, please bear with us, while we wait for him to come back. :-) Thanks.
*** This bug has been marked as a duplicate of bug 442173 ***