Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Jan 2012 00:23:13 GMT
From:      John Sellens <jsellens@syonex.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   bin/164131: freebsd-update does not check for failed install commands
Message-ID:  <201201150023.q0F0NDQI086949@red.freebsd.org>
Resent-Message-ID: <201201150030.q0F0UC6A059694@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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@zUqD: No space left on device
install: ///boot/userboot.so: No space left on device
install: ///boot/INS@R4jN: No space left on device
install: ///boot/INS@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201201150023.q0F0NDQI086949>