Bug 156762 - YaST hangs after creating initrd
Summary: YaST hangs after creating initrd
Status: RESOLVED FIXED
Alias: None
Product: openSUSE 10.2
Classification: openSUSE
Component: Update Problems (show other bugs)
Version: unspecified
Hardware: i686 Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Jiri Srain
QA Contact: Klaus Kämpf
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-09 21:55 UTC by Andreas Schwab
Modified: 2006-07-25 09:31 UTC (History)
1 user (show)

See Also:
Found By: Other
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
YaST log file (766.28 KB, application/x-gzip)
2006-03-09 21:56 UTC, Andreas Schwab
Details
hwinfo (141.40 KB, text/plain)
2006-03-15 13:31 UTC, Andreas Schwab
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Schwab 2006-03-09 21:55:19 UTC
YaST is hanging waiting for data on a pipe.

# ps -L 3162
  PID   LWP TTY      STAT   TIME COMMAND
 3162  3162 tty1     Sl+    8:06 y2base installation ("initial") qt --fullscreen --noborder --auto-fonts
 3162  3166 tty1     Sl+    5:37 y2base installation ("initial") qt --fullscreen --noborder --auto-fonts
# strace -p 3162
Process 3162 attached - interrupt to quit
read(7,  <unfinished ...>
Process 3162 detached
# /mnt/usr/bin/lsof | grep 8748
y2base     3162       root    7r     FIFO        0,5                8748 pipe
y2base     3162       root    8w     FIFO        0,5                8748 pipe
Comment 1 Andreas Schwab 2006-03-09 21:56:32 UTC
Created attachment 72113 [details]
YaST log file
Comment 2 Andreas Schwab 2006-03-09 22:19:49 UTC
(gdb) bt
#0  0xb7bbdc61 in read () from /lib/libpthread.so.0
#1  0xb7ebf001 in YUI::waitForUIThread () from /usr/lib/libyui.so.2
#2  0xb7ec00fc in YUI::callBuiltin () from /usr/lib/libyui.so.2
#3  0xb7ebea9a in YUIComponent::callBuiltin () from /usr/lib/libyui.so.2
#4  0xb7ef248c in UI::UI () from /usr/lib/libyui.so.2
#5  0xb7dbd730 in YEBuiltin::evaluate () from /usr/lib/libycp.so.2
#6  0xb7de0cb7 in YSExpression::evaluate () from /usr/lib/libycp.so.2
#7  0xb7deda78 in YSIf::evaluate () from /usr/lib/libycp.so.2
#8  0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#9  0xb7dcd472 in Y2YCPFunction::evaluateCall () from /usr/lib/libycp.so.2
#10 0xb7dd08ee in YEFunction::evaluate () from /usr/lib/libycp.so.2
#11 0xb7de0cb7 in YSExpression::evaluate () from /usr/lib/libycp.so.2
#12 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#13 0xb7ddb664 in YSBlock::evaluate () from /usr/lib/libycp.so.2
#14 0xb7deda78 in YSIf::evaluate () from /usr/lib/libycp.so.2
#15 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#16 0xb7dcd472 in Y2YCPFunction::evaluateCall () from /usr/lib/libycp.so.2
#17 0xb7dd08ee in YEFunction::evaluate () from /usr/lib/libycp.so.2
#18 0xb7de0b7b in YSReturn::evaluate () from /usr/lib/libycp.so.2
#19 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#20 0xb7dcd472 in Y2YCPFunction::evaluateCall () from /usr/lib/libycp.so.2
#21 0xb7dd08ee in YEFunction::evaluate () from /usr/lib/libycp.so.2
#22 0xb7de0b7b in YSReturn::evaluate () from /usr/lib/libycp.so.2
#23 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#24 0xb7ddb664 in YSBlock::evaluate () from /usr/lib/libycp.so.2
#25 0xb7deda78 in YSIf::evaluate () from /usr/lib/libycp.so.2
#26 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#27 0xb7ddb664 in YSBlock::evaluate () from /usr/lib/libycp.so.2
#28 0xb7deda78 in YSIf::evaluate () from /usr/lib/libycp.so.2
#29 0xb7deda78 in YSIf::evaluate () from /usr/lib/libycp.so.2
#30 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#31 0xb7db19c4 in YCPCodeRep::evaluate () from /usr/lib/libycp.so.2
#32 0xb7f75f83 in Y2WFMComponent::doActualWork ()
   from /usr/lib/YaST2/plugin/libpy2wfm.so.2
#33 0xb7f710cb in Y2WFMComponent::CallFunction ()
   from /usr/lib/YaST2/plugin/libpy2wfm.so.2
#34 0xb7f7aa49 in std::operator+<char, std::char_traits<char>, std::allocator<char> > () from /usr/lib/YaST2/plugin/libpy2wfm.so.2
#35 0xb7dbd99c in YEBuiltin::evaluate () from /usr/lib/libycp.so.2
#36 0xb7de0cb7 in YSExpression::evaluate () from /usr/lib/libycp.so.2
#37 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#38 0xb7db19c4 in YCPCodeRep::evaluate () from /usr/lib/libycp.so.2
#39 0xb7e3ce80 in YCPBuiltinList::YCPBuiltinList () from /usr/lib/libycp.so.2
#40 0xb7dbda62 in YEBuiltin::evaluate () from /usr/lib/libycp.so.2
#41 0xb7de0cb7 in YSExpression::evaluate () from /usr/lib/libycp.so.2
#42 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#43 0xb7db19c4 in YCPCodeRep::evaluate () from /usr/lib/libycp.so.2
#44 0xb7e3ce80 in YCPBuiltinList::YCPBuiltinList () from /usr/lib/libycp.so.2
#45 0xb7dbda62 in YEBuiltin::evaluate () from /usr/lib/libycp.so.2
---Type <return> to continue, or q <return> to quit---
#46 0xb7de0cb7 in YSExpression::evaluate () from /usr/lib/libycp.so.2
#47 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#48 0xb7db19c4 in YCPCodeRep::evaluate () from /usr/lib/libycp.so.2
#49 0xb7f75f83 in Y2WFMComponent::doActualWork ()
   from /usr/lib/YaST2/plugin/libpy2wfm.so.2
#50 0xb7f710cb in Y2WFMComponent::CallFunction ()
   from /usr/lib/YaST2/plugin/libpy2wfm.so.2
#51 0xb7f7aa49 in std::operator+<char, std::char_traits<char>, std::allocator<char> > () from /usr/lib/YaST2/plugin/libpy2wfm.so.2
#52 0xb7dbd99c in YEBuiltin::evaluate () from /usr/lib/libycp.so.2
#53 0xb7dc992a in YEPropagate::evaluate () from /usr/lib/libycp.so.2
#54 0xb7de09b5 in YSAssign::evaluate () from /usr/lib/libycp.so.2
#55 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#56 0xb7ddb664 in YSBlock::evaluate () from /usr/lib/libycp.so.2
#57 0xb7dec6ca in YSWhile::evaluate () from /usr/lib/libycp.so.2
#58 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#59 0xb7dcd472 in Y2YCPFunction::evaluateCall () from /usr/lib/libycp.so.2
#60 0xb7dd08ee in YEFunction::evaluate () from /usr/lib/libycp.so.2
#61 0xb7de09b5 in YSAssign::evaluate () from /usr/lib/libycp.so.2
#62 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#63 0xb7ddb664 in YSBlock::evaluate () from /usr/lib/libycp.so.2
#64 0xb7deda78 in YSIf::evaluate () from /usr/lib/libycp.so.2
#65 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#66 0xb7ddb664 in YSBlock::evaluate () from /usr/lib/libycp.so.2
#67 0xb7deda78 in YSIf::evaluate () from /usr/lib/libycp.so.2
#68 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#69 0xb7db19c4 in YCPCodeRep::evaluate () from /usr/lib/libycp.so.2
#70 0xb7f75f83 in Y2WFMComponent::doActualWork ()
   from /usr/lib/YaST2/plugin/libpy2wfm.so.2
#71 0xb7f710cb in Y2WFMComponent::CallFunction ()
   from /usr/lib/YaST2/plugin/libpy2wfm.so.2
#72 0xb7f7aa49 in std::operator+<char, std::char_traits<char>, std::allocator<char> > () from /usr/lib/YaST2/plugin/libpy2wfm.so.2
#73 0xb7dbd99c in YEBuiltin::evaluate () from /usr/lib/libycp.so.2
#74 0xb7dc992a in YEPropagate::evaluate () from /usr/lib/libycp.so.2
#75 0xb7de09b5 in YSAssign::evaluate () from /usr/lib/libycp.so.2
#76 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#77 0xb7ddb664 in YSBlock::evaluate () from /usr/lib/libycp.so.2
#78 0xb7dec6ca in YSWhile::evaluate () from /usr/lib/libycp.so.2
#79 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#80 0xb7dcd472 in Y2YCPFunction::evaluateCall () from /usr/lib/libycp.so.2
#81 0xb7dd08ee in YEFunction::evaluate () from /usr/lib/libycp.so.2
#82 0xb7de0b7b in YSReturn::evaluate () from /usr/lib/libycp.so.2
#83 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#84 0xb7dcd472 in Y2YCPFunction::evaluateCall () from /usr/lib/libycp.so.2
#85 0xb7dd08ee in YEFunction::evaluate () from /usr/lib/libycp.so.2
#86 0xb7de09b5 in YSAssign::evaluate () from /usr/lib/libycp.so.2
#87 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#88 0xb7ddb664 in YSBlock::evaluate () from /usr/lib/libycp.so.2
---Type <return> to continue, or q <return> to quit---
#89 0xb7deda78 in YSIf::evaluate () from /usr/lib/libycp.so.2
#90 0xb7dfab39 in YBlock::evaluate () from /usr/lib/libycp.so.2
#91 0xb7db19c4 in YCPCodeRep::evaluate () from /usr/lib/libycp.so.2
#92 0xb7f75f83 in Y2WFMComponent::doActualWork ()
   from /usr/lib/YaST2/plugin/libpy2wfm.so.2
#93 0xb7d552fb in main () from /usr/lib/liby2.so.2
#94 0xb764a87c in __libc_start_main () from /lib/libc.so.6
Comment 3 Lukas Ocilka 2006-03-15 12:50:10 UTC
Andreas, does the log finish in the time when the YaST got stucked?
Comment 4 Andreas Schwab 2006-03-15 13:01:46 UTC
Yes.
Comment 5 Lukas Ocilka 2006-03-15 13:28:34 UTC
There are many strange errors in the log:

clients/copy_files_finish.ycp:36 starting copy_files_finish
ShellCommand.cc(shellcommand):47 fork failed, errno: 12
(8 times)

clients/switch_scr_finish.ycp:60 Re-starting SCR on /mnt
Y2ProgramComponent.cc(receiveFromExternal):350 External program /usr/lib/YaST2/servers/scr died unexpectedly
Y2ProgramComponent.cc(evaluate):122 Couldn't launch external server scr
Y2WFMComponent.cc(SCROpen):250 SCROpen 'chroot=/mnt:scr' failed: -1
Directory.ycp:118 No SCR instance found
Directory.ycp:120 Failed to set temporary directory: nil

clients/ldconfig_finish.ycp:45 No SCR instance found
clients/ldconfig_finish.ycp:45 ldconfig failed

My guessing:
/usr/src/linux/include/asm-generic/errno-base.h
#define ENOMEM          12      /* Out of memory */

What kind of system (configuration) do you have? hwinfo?
Comment 6 Andreas Schwab 2006-03-15 13:31:37 UTC
Created attachment 73012 [details]
hwinfo
Comment 7 Lukas Ocilka 2006-03-21 15:00:11 UTC
256 MB RAM
CPU: Intel Pentium III (Katmai) [not 64bit]

RootPart.ycp:772 mounting /dev/sda2 to swap
RootPart.ycp:772 mounting /var/tmp/swapfile to swap
ShellCommand.cc(shellcommand):78 swapon: cannot stat /var/tmp/swapfile: No such file or directory
RootPart.ycp:786 swapon failed: /sbin/swapon /var/tmp/swapfile
bootloader/routines/misc.ycp:1282 Available swap partitions: $[]

Thomas, please, `swapon` failed with /var/tmp/swapfile, did it also influence the `swapon` for /dev/sda2? Was the /dev/sda2 mounted or wasn't?
Comment 8 Thomas Fehr 2006-03-21 15:57:03 UTC
As already said RootPart.ycp is not my file, it belongs to yast2-update which
is maintained by Jiri. From my basic knowledge of the code I would assume that
swap on /dev/sda2 was succesfully activated but /dev/sda2 is only 125M in size
and apparently 256M+125M=381M is not enough memory to do a succesfull 
update and/or installation nowadays.
Comment 9 Lukas Ocilka 2006-04-19 14:11:20 UTC
Andreas, could you, please, retest with a bigger swap somehow?
Comment 10 Andreas Schwab 2006-04-19 14:15:06 UTC
Sorry, no place for more swap.
Comment 11 Lukas Ocilka 2006-04-21 11:42:20 UTC
Sorry, but postponing to 10.2.
There's no time to cleanup the code and save every byte now.
Comment 12 Jiri Srain 2006-07-25 09:31:54 UTC
Well, there were actually two problems:

1. Forking processes failed - probably due to the amount of memory, can't do anything about it

2. Failed reading of mkinitrd log (result of 1.), which was not handler properly. This one is fixed in SVN.