http://bugzilla.novell.com/show_bug.cgi?id=540482 http://bugzilla.novell.com/show_bug.cgi?id=540482#c115 --- Comment #115 from Vincent Untz <vuntz@novell.com> 2009-12-06 00:56:56 UTC --- I was able to reproduce this here, finally. With some ssh debugging, I can confirm that the reboot/shutdown process is blocked by chvt not exiting. chvt itself is blocked on this line: if (ioctl(fd,VT_WAITACTIVE,num)) { (which is really the last thing it does before exiting) Looking at the code, it's indeed racy: it does a VT_ACTIVATE to num, and then the VT_WAITACTIVE for num. However, nothing guarantees that another VT_ACTIVATE is sent by another process before the VT_WAITACTIVE... Looking around, there seems to be various issues with doing this. Some people are using the patch at [1] to work around the issue -- the wait is simulated in the user space. The suspend people also implemented a similar workaround in s2ram [2]. And Debian worked around the issue in their splashy script instead of doing it in chvt [3]. Does anybody know if it would be acceptable to add a patch like [1] in our kbd package? This would also imply changing sysvinit to make sure the call to chvt uses the user space wait. [1] http://www.brontes3d.com/opensource/dist/v1.2/overlay/sys-apps/kbd/files/kbd... [2] http://thread.gmane.org/gmane.linux.kernel.suspend.devel/7117/focus=7119 [3] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504389 -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.