bin/164131: freebsd-update does not check for failed install commands

John Sellens jsellens at syonex.com
Sun Jan 15 00:30:12 UTC 2012


>Number:         164131
>Category:       bin
>Synopsis:       freebsd-update does not check for failed install commands
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jan 15 00:30:11 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     John Sellens
>Release:        9.0-RELEASE
>Organization:
>Environment:
FreeBSD aim2.aimtechglobal.com 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 2012     root at farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:
In freebsd-update the shell function install_from_index does not appear to check whether the install command succeeds or fails (this seems to apply in other functions as well).

If there is a write error (e.g. file system full) the update process fails but freebsd-update says "go ahead and continue", so you can end up with a corrupted or unbootable system.

I was updating from an 8.x system, with a too small / partition.  Since the 9.0 (and default 8.x I think) amd64 kernels seem to have debugging/symbols enabled, they are larger than kernels used to be.  So my / partition filled up when freebsd-update was installing the kernel.  But it told me to continue right on and reboot, which would have failed.

/: write failed, filesystem is full
install: ///boot/INS at zUqD: No space left on device
install: ///boot/userboot.so: No space left on device
install: ///boot/INS at R4jN: No space left on device
install: ///boot/INS at 5aZb: No space left on device
rmdir: ///boot/kernel: Directory not empty

/: write failed, filesystem is full

/: write failed, filesystem is full

/: write failed, filesystem is full

Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.
#  echo $status
0

>How-To-Repeat:
Have a too small (or too full) / partition and update to a new release on amd64, and watch it fail.
>Fix:
I suspect someone needs to go through the freebsd-update script and check for failing commands (and I'm sorry, but I'm not currently able to do that).


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list