Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#21013 - [sysvinit] unclean shutdown if not "init u" is executed.

Attached to Project: Arch Linux
Opened by Gerardo Exequiel Pozzi (djgera) - Friday, 01 October 2010, 03:57 GMT
Last edited by Eric Belanger (Snowman) - Monday, 04 October 2010, 15:04 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Eric Belanger (Snowman)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description: I commonly execute "init u" after a sysvinit update, so "init" proccess is re-execute itself. But this time I missed this step, so when I rebooted / was not clean umounted.

Solution: Execute [ -x sbin/init ] && sbin/init u on post_upgrade() in .INSTALL

Additional info:
sysvinit-2.88-1

Steps to reproduce:
pacman -S sysvinit
reboot/shutdown the system


Messages on shutdown:
:: Unmounting Filesystems [BUSY]
umount: /: device is busy.
[DONE]
:: Remounting Root Filesystem Read-only [BUSY]
mount: / is busy
[DONE]

Messages on first startup after upgrade:
EXT4-fs (sda1): INFO: recovery required on readonly filesystem
EXT4-fs (sda1): write access will be enabled during recovery
EXT4-fs (sda1): orphan cleanup on readonly fs
EXT4-fs (sda1): 1 orphan inode deleted
EXT4-fs (sda1): recovery complete
This task depends upon

Closed by  Eric Belanger (Snowman)
Monday, 04 October 2010, 15:04 GMT
Reason for closing:  Fixed
Comment by Allan McRae (Allan) - Friday, 01 October 2010, 05:33 GMT Comment by Eric Belanger (Snowman) - Friday, 01 October 2010, 05:57 GMT
Allan: By chance , are you also using ext4?

I'll see if I can reproduce it on my ext3 system.
Comment by Gerardo Exequiel Pozzi (djgera) - Friday, 01 October 2010, 06:08 GMT
@Allan: yes.

@Eric: unrelated to fs type. This is because init is loaded "as TXT", filename entry pointer to inode is (deleted) but the inode is still used. Same semantic when you try to open+w a file that is loaded as TXT, you will see something like "text file busy".

Example:
# mount -t tmpfs none /mnt/test
# cp /bin/sleep /mnt/test
# /mnt/test/sleep 1m &
# mount /mnt/test -o remount,ro
mount: /mnt/test is busy
Comment by Jan de Groot (JGC) - Friday, 01 October 2010, 09:33 GMT
Well, this is logical. We do the same with glibc upgrades, as the running init holds a reference to the old glibc libraries. Reloading init from glibc post_upgrade drops that reference.
Comment by Eric Belanger (Snowman) - Saturday, 02 October 2010, 19:36 GMT
implemented in sysvinit 2.88-2 in testing

Loading...