I discovered this bug on an Apple iBook 2002 with 640MB of RAM and a 700Mhz IBM PPC750FX CPU; however, i belive that it relates to all platforms. The bug occures when the Gentoo rc script system is shutting down (for halt, reboot, etc.) and deactivating swap if total tmpfs usage is greater than free physical memory the system deadlocks. See /usr/src/linux/Documentation/filesystems/tmpfs.txt for more info on the nature of the deadlock This bug can prevent proper dismounting of other filesystems (such as / ) because the system will deadlock before rc unmounts those filesystems. I can see 2 different solutions to this bug though there may be more: 1) Deactivate swap after unmounting local filesystems 2) 'umount -at tmpfs' (or similar) to umount all tmpfs filesystems not in use before deactivating swap This bug becomes especially prevalent when using a large tmpfs on /var/tmp because this is where portage builds ebuilds, some of which can be very large. Because the tmpfs that the rc script system mounts on /mnt/.init.d is of limited size and not set up in fstab; I do not belive this specific tmpfs poses a problem when shutting down.
Ill get this fixed in 1.8.6+ versions as we go along.
Fixed on CVS. Will be in 1.8.6.3.