Bug 457035

Summary: yast2 scanner hangs in busy loop
Product: [openSUSE] openSUSE 11.0 Reporter: Bernhard Wiedemann <novellbmw>
Component: YaST2Assignee: Johannes Meixner <jsmeix>
Status: RESOLVED DUPLICATE QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None CC: jsmeix, ma
Version: Final   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 11.0   
Whiteboard:
Found By: Community User Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: y2log from both unsuccessful (qt) and successful (ncurses) scanner setup
y2log from both unsuccessful (qt) and successful (ncurses) scanner setup with debug and nothreads
yast2/qt/scanner debug nothread log

Description Bernhard Wiedemann 2008-12-06 11:10:49 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
Comment 1 Stefan Hundhammer 2008-12-09 16:07:00 UTC
Really openSUSE-11.0, not 11.1?
Comment 2 Stefan Hundhammer 2008-12-10 11:25:50 UTC
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).


Comment 3 Bernhard Wiedemann 2008-12-10 19:51:24 UTC
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).
Comment 4 Stefan Hundhammer 2008-12-11 13:46:50 UTC
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?
Comment 5 Bernhard Wiedemann 2008-12-12 19:41:26 UTC
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.
Comment 6 Klaus Singvogel 2008-12-16 08:36:16 UTC
The Assignee: of this bug currently in vacation, please bear with us, while we wait for him to come back. :-) Thanks.
Comment 7 Johannes Meixner 2009-01-07 08:21:47 UTC

*** This bug has been marked as a duplicate of bug 442173 ***