Bug 150847 - "-D" in /fsckoptions cause reboot cycling until "fastboot" is used on boot command line
"-D" in /fsckoptions cause reboot cycling until "fastboot" is used on boot co...
Status: CLOSED NOTABUG
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: e2fsprogs (Show other bugs)
4.0
All Linux
medium Severity medium
: ---
: ---
Assigned To: Thomas Woerner
Jay Turner
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2005-03-11 05:46 EST by Peter Bieringer
Modified: 2015-01-07 19:09 EST (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2005-03-11 12:05:46 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Peter Bieringer 2005-03-11 05:46:12 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1

Description of problem:
Turing on "dir_index" filesytem option and proper initialization I've triggered a reboot cycling.

Version-Release number of selected component (if applicable):
initscripts-7.93.11.EL-1

How reproducible:
Always

Steps to Reproduce:
1. Set dir_index option:
# tune2fs -O dir_index /dev/md0
# tune2fs -O dir_index /dev/md1

2. Set additional fschkoption:
# echo "-D" > /fsckoptions

3. Force fsck next reboot
# touch /forcefsck

4. Reboot
# reboot


Actual Results:  Checking root filesystem
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a -f -D /dev/md1
/: ***** REBOOT LINUX *****
/: 35135/513024 files (1.0% non-contiguous), 708617/1024112 blocks
Unmounting file systems
Automatic reboot in progress.

Expected Results:  Checking root filesystem
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a -f /dev/md1
/: 35133/513024 files (1.0% non-contiguous), 708615/1024112 blocks
[  OK  ]

Additional info:

During debugging I found that the problem is located in rc.sysinit. rc of fsck is in case of using "-D" 3, which causes the reboot:

        elif [ "$rc" -eq "2" -o "$rc" -eq "3" ]; then   <-!!!!
                echo $"Unmounting file systems"
                umount -a
                mount -n -o remount,ro /
                echo $"Automatic reboot in progress."
                reboot -f
        fi

Checking root filesystem
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a -f -D /dev/md1
/: ***** REBOOT LINUX *****
/: 35135/513024 files (1.0% non-contiguous), 708617/1024112 blocks
#DEBUG: exit code: 3   <----!!!!!!!
Unmounting file systems 
Automatic reboot in progress.


Looks like something needs to be reviewed here, because reboot cycling is not nice ;-)
Comment 1 Peter Bieringer 2005-03-11 05:49:15 EST
Here an verbose execution of fsck:

# fsck.ext3  -f -D /dev/md1; echo $?
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/: ***** FILE SYSTEM WAS MODIFIED *****
/: ***** REBOOT LINUX *****
/: 35138/513024 files (1.0% non-contiguous), 708739/1024112 blocks
3
Comment 2 Peter Bieringer 2005-03-11 05:51:01 EST
It's a little bit strange, it looks like that using "-D" on the root partition
results in rc=3, while using "-D" e.g. on the "/boot" partition results in rc=1:

# fsck.ext3  -f -D /dev/md0; echo $?
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/boot: ***** FILE SYSTEM WAS MODIFIED *****
/boot: 59/26104 files (16.9% non-contiguous), 30629/104320 blocks
1
Comment 3 Bill Nottingham 2005-03-11 11:57:36 EST
EXIT CODE
       The exit code returned by e2fsck is the sum  of  the  following  condi-
       tions:
            0    - No errors
            1    - File system errors corrected
            2    - File system errors corrected, system should
                   be rebooted

initscripts is just following orders.
Comment 4 Stephen Tweedie 2005-03-11 12:05:46 EST
The "-D" flag forces the htree information on-disk to be rebuilt
unconditionally.  That *always* modifies the filesystem.  That *always* causes
e2fsck to return non-zero.  That will *always* require a reboot if you do it to
the root filesystem.

In short, everything is working just as you'd expect if you add options to
/fsckoptions which require compulsory changes to the root filesystem.  The
answer is not to do this. :)

To do this manually, I'd boot either to a rescue CD or to a readonly root mount
(eg. boot with init=/bin/sh),force the fsck -D from there, and then reboot.

Note You need to log in before you can comment on or make changes to this bug.