On boot to multiuser mode, the system hangs just before the "login:"
prompt is displayed. Telnetting to the system succeeds and the
process table shows a sleep 1000000 process running. When the sleep
process is killed, the login prompt appears and the system functions
normally.
CAUSE:
The sleep command is called by the script /etc/rc2. This is the
script that runs when the server goes into multiuser state. The
addition of the sleep 1000000 to the script is only present in SCO
OpenServer 5.0.5. It addresses some timing problems with drivers
starting from this script. With OpenServer 5.0.5, the startup
scripts can all start in parallel, making the startup sequence
faster. However, a script failure (hang) can completely hang the
startup process if one script hangs. With the addition of the
sleep command, if a third-party device driver (installed in
/etc/idrc.d for example) were to lock, then the processor would
still be kept busy running the sleep command until the offending
device driver timed out. This prevents the server from completely
hanging.
The root cause of this hang is the incomplete startup of a
third-party driver. The sleep command hanging is a symptom of the
root problem.
|