[lfs-book] [LFS Trac] #3255: e2fsprogs-1.42.6 make check fail to compile

LFS Trac trac at linuxfromscratch.org
Wed Dec 26 09:47:12 PST 2012


#3255: e2fsprogs-1.42.6 make check fail to compile
------------------------+---------------------------------------------------
 Reporter:  gespinasse  |       Owner:  bdubbs@…                   
     Type:  defect      |      Status:  assigned                   
 Priority:  high        |   Milestone:  7.3                        
Component:  Book        |     Version:  SVN                        
 Severity:  normal      |    Keywords:                             
------------------------+---------------------------------------------------
Changes (by bdubbs@…):

  * owner:  lfs-book@… => bdubbs@…
  * priority:  normal => high
  * status:  new => assigned
  * type:  enhancement => defect


Comment:

 I tried to move the make check to after the install, but still get a
 zombie process filling up the disk drive.  The directory running the
 checks does get deleted, so the disk is filled with no inodes pointing to
 it.  When the process is killed, the space is freed up.

 When I looked at it this morning, I had three processes running.  The test
 that uses
 e2fsprogs-1.42.6/tests/f_mmp/script has:

 {{{
 kill_debugfs() {
    trap 0
    PID=$(ps -o pid,command | grep -v awk |
       awk "/debugfs -w $TMPFILE/ { print \$1 }")
    [ "x$PID" != "x" ] && kill -9 $PID
 }

 # this will cause debugfs to create the $test_name.mark file once it has
 # passed the MMP startup, then continue reading input until it is killed

 MARKFILE=$test_name.new
 rm -f $MARKFILE
 trap kill_debugfs EXIT
 echo "set mmp sequence to EXT2_MMP_SEQ_FSCK..." >> $test_name.log
 ( { echo dump_mmp; echo "dump_inode <2> $MARKFILE"; cat /dev/zero; } |
    $DEBUGFS -w $TMPFILE >> $test_name.log 2>&1 & ) > /dev/null 2>&1 &
 echo "wait until debugfs has started ..." >> $test_name.log
 while [ ! -e $MARKFILE ]; do
    sleep 1
 done
 rm -f $MARKFILE
 echo "kill debugfs abruptly (simulates e2fsck failure) ..." >>
 $test_name.log
 kill_debugfs
 }}}

 I'm wondering if there is a race here in that the MARKFILE is created
 before the first sleep occurs and then the kill_debugfs call to ps doesn't
 find debugfs.

 Perhaps a forced 'sleep 1' before the while loop would help.

 Alternatively, because we are running in a Makefile, the ps command is not
 finding the process.  A change from ps -o to ps -ao may work.

 The third alternative is to just skip the f_mmp test.  I'll run some tests
 and report back.

-- 
Ticket URL: <http://wiki.linuxfromscratch.org/lfs/ticket/3255#comment:3>
LFS Trac <http://wiki.linuxfromscratch.org/lfs/>
Linux From Scratch: Your Distro, Your Rules.



More information about the lfs-book mailing list