Index: user/pho/stress2/misc/all.sh =================================================================== --- user/pho/stress2/misc/all.sh (revision 285746) +++ user/pho/stress2/misc/all.sh (revision 285747) @@ -1,216 +1,230 @@ #!/bin/sh # # Copyright (c) 2008-2009, 2012-13 Peter Holm # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # $FreeBSD$ # # Run all the scripts in stress2/misc, except these known problems: # Start of list Known problems Seen # altbufferflushes.sh snapshots + disk full == know problem 20130617 # backingstore.sh # g_vfs_done():md6a[WRITE(offset=...)]error = 28 20111220 # backingstore2.sh # panic: 43 vncache entries remaining 20111220 # backingstore3.sh # g_vfs_done():md6a[WRITE(offset=...)]error = 28 20111230 +# core5.sh May slow down if vnode cache is full 20150714 +# crossmp4.sh Known nullfs issue 20150523 +# crossmp6.sh Known lockd issue 20150625 # dfull.sh umount stuck in "mount drain" 20111227 # ext2fs.sh Deadlock 20120510 # ext2fs2.sh panic 20140716 # fuse.sh Memory corruption seen in log file kostik734.txt 20141114 # fuse2.sh Deadlock seen 20121129 # fuse3.sh Deadlock seen 20141120 # gbde.sh panic: handle_written_inodeblock: Invalid link count... 20131128 # gjournal.sh kmem_malloc(131072): kmem_map too small 20120626 # gjournal2.sh # gjournal3.sh panic: Journal overflow 20130729 +# lockf5.sh Page fault 20150622 +# md2.sh panic: ufs_dirbad: /mnt: bad dir ino ...: mangled entry 20150227 +# maxproc.sh WiP 20150329 # memguard.sh Waiting for fix commit # memguard2.sh Waiting for fix commit # memguard3.sh Waiting for fix commit +# mkfifo.sh Page fault in softdep_count_dependencies+0x27 seen 20150524 # mmap18.sh panic: vm_fault_copy_entry: main object missing page 20141015 -# mmap21.sh panic: vm_reserv_populate: reserv is already promoted 20141122 +# mmap21.sh rangelock issue? 20150326 +# mmap23.sh Waiting commit +# mmap24.sh Waiting commit +# mmap25.sh Waiting commit +# mmap26.sh Waiting commit # msdos5.sh Panic: Freeing unused sector ... 20141118 # newfs.sh Memory modified after free. ... used by inodedep 20111217 # newfs2.sh umount stuck in ufs 20111226 # nfs2.sh panic: wrong diroffset 20140219 # nfs5.sh Deadlock panic 20141120 # nfs6.sh Hang 20141012 # nfs9.sh panic: lockmgr still held 20130503 # nfs10.sh Deadlock 20130401 # nfs11.sh Deadlock 20130429 # pfl3.sh panic: handle_written_inodeblock: live inodedep 20140812 # pmc.sh NMI ... going to debugger 20111217 # snap5-1.sh mksnap_ffs deadlock 20111218 # quota2.sh panic: dqflush: stray dquot 20120221 # quota3.sh panic: softdep_deallocate_dependencies: unrecovered ... 20111222 # quota6.sh panic: softdep_deallocate_dependencies: unrecovered ... 20130206 # quota7.sh panic: dqflush: stray dquot 20120221 # shm_open.sh panic: kmem_malloc(4096): kmem_map too small 20130504 # snap3.sh mksnap_ffs stuck in snaprdb 20111226 # snap5.sh mksnap_ffs stuck in getblk 20111224 # snap6.sh panic: softdep_deallocate_dependencies: unrecovered ... 20130630 # snap8.sh panic: softdep_deallocate_dependencies: unrecovered ... 20120630 # snap9.sh panic: softdep_deallocate_dependencies: unrecovered ... 20150217 +# suj3.sh panic: Memory modified after free 20150721 # suj9.sh page fault in softdep_count_dependencies+0x27 20141116 # suj11.sh panic: ufsdirhash_newblk: bad offset 20120118 # suj13.sh general protection fault in bufdaemon 20141130 # suj18.sh panic: Bad tailq NEXT(0xc1e2a6088->tqh_last_s) != NULL 20120213 # suj30.sh panic: flush_pagedep_deps: MKDIR_PARENT 20121020 # suj34.sh Various hangs and panics 20131210 -# trim4.sh Page fault in softdep_count_dependencies+0x27 20140608 +# trim4.sh Page fault in softdep_count_dependencies+0x27 20140608 # umountf3.sh KDB: enter: watchdog timeout 20111217 # umountf7.sh panic: handle_written_inodeblock: live inodedep ... 20131129 # unionfs.sh insmntque: non-locked vp: xx is not exclusive locked... 20130909 # unionfs2.sh insmntque: mp-safe fs and non-locked vp is not ... 20111219 # unionfs3.sh insmntque: mp-safe fs and non-locked vp is not ... 20111216 # Test not to run for other reasons: # fuzz.sh A know issue # newfs3.sh OK, but runs for a very long time # mmap10.sh OK, but runs for a long time # mmap11.sh OK, but runs for a very long time -# mmap15.sh Rung for a very long time +# mmap15.sh Runs for a very long time +# mmap22.sh Runs for a very long time # statfs.sh Not very interesting # syscall.sh OK, but runs for a very long time # syscall2.sh OK, but runs for a very long time # vunref.sh No problems ever seen # vunref2.sh No problems ever seen # Snapshots has been disabled on SU+J # suj15.sh # suj16.sh # suj19.sh # suj20.sh # suj21.sh # suj22.sh # suj24.sh # suj25.sh # suj26.sh # suj27.sh # suj28.sh # Exclude NFS loopback tests # nfs13.sh # nullfs8.sh # End of list # Suspects: # ffs_syncvnode2.sh # Memory modified after free. ... used by inodedep 20111224 [ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 # Log files: alllog=/tmp/stress2.all.log # Tests run allfaillog=/tmp/stress2.all.fail.log # Tests that failed alllast=/tmp/stress2.all.last # Last test run alloutput=/tmp/stress2.all.output # Output from current test args=`getopt acno $*` [ $? -ne 0 ] && echo "Usage $0 [-a] [-c] [-n] [tests]" && exit 1 set -- $args for i; do case "$i" in -a) all=1 # Run all tests echo "Note: including known problem tests." shift ;; -c) rm -f $alllast # Clear last know test shift ;; -n) noshuffle=1 # Do not shuffle the list of tests shift # Resume test after last test ;; -o) once=1 # Only run once shift ;; --) shift break ;; esac done rm -f $alllog $allfaillog find `dirname $alllast` -maxdepth 1 -name $alllast -mtime +12h -delete touch $alllast $alllog chmod 640 $alllast $alllog while true; do exclude=`sed -n '/^# Start of list/,/^# End of list/p' < $0 | cat - all.exclude 2>/dev/null | grep "\.sh" | awk '{print $2}'` list=`echo *.sh` [ $# -ne 0 ] && list=$* list=`echo $list | sed "s/all\.sh//; s/cleanup\.sh//"` if [ -n "$noshuffle" -a $# -eq 0 ]; then last=`cat $alllast` if [ -n "$last" ]; then l=`echo "$list" | sed "s/.*$last//"` [ -z "$l" ] && l=$list # start over list=$l echo "Resuming test at `echo "$list" | \ awk '{print $1}'`" fi fi [ -n "$noshuffle" ] || list=`echo $list | tr '\n' ' ' | ../tools/shuffle | \ tr ' ' '\n'` lst="" for i in $list; do [ -z "$all" ] && echo $exclude | grep -qw $i && continue lst="$lst $i" done [ -z "$lst" ] && exit . ../default.cfg n1=0 n2=`echo $lst | wc -w | sed 's/ //g'` for i in $lst; do n1=$((n1 + 1)) echo $i > $alllast ./cleanup.sh echo "`date '+%Y%m%d %T'` all: $i" echo "`date '+%Y%m%d %T'` all: $i" >> $alllog printf "`date '+%Y%m%d %T'` all ($n1/$n2): $i\r\n" > /dev/console logger "Starting test all: $i" sync;sync;sync start=`date '+%s'` ./$i 2>&1 | tee $alloutput grep -qw FAIL $alloutput && - echo "`date '+%Y%m%d %T'` $i" >> $allfaillog + echo "`date '+%Y%m%d %T'` $i" >> $allfaillog && + logger "stress2 test $i failed" rm -f $alloutput - [ $((`date '+%s'` - $start)) -gt 1830 ] && + [ $((`date '+%s'` - $start)) -gt 1900 ] && printf "*** Excessive run time: %s %d min\r\n" $i, \ $(((`date '+%s'` - $start) / 60))> /dev/console done [ -n "$once" ] && break done Index: user/pho/stress2/misc/suj3.sh =================================================================== --- user/pho/stress2/misc/suj3.sh (revision 285746) +++ user/pho/stress2/misc/suj3.sh (revision 285747) @@ -1,62 +1,65 @@ #!/bin/sh # # Copyright (c) 2010 Peter Holm # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # $FreeBSD: projects/stress2/misc/suj.sh 210724 2010-08-01 10:33:03Z pho $ # [ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 # Sector size > 512 test. +# "panic: Memory modified after free ..." seen. +# https://people.freebsd.org/~pho/stress/log/suj3-2.txt + . ../default.cfg mount | grep $mntpoint | grep -q /dev/md && umount -f $mntpoint mdconfig -l | grep -q md$mdstart && mdconfig -d -u $mdstart mdconfig -a -t swap -s 1g -u $mdstart dd if=/dev/random of=/tmp/suj3.key bs=64 count=1 > /dev/null 2>&1 echo test | geli init -s 4096 -J - -K /tmp/suj3.key /dev/md$mdstart > /dev/null echo test | geli attach -j - -k /tmp/suj3.key /dev/md$mdstart newfs /dev/md$mdstart.eli > /dev/null tunefs -j enable /dev/md${mdstart}.eli mount /dev/md${mdstart}.eli $mntpoint chmod 777 $mntpoint export RUNDIR=$mntpoint/stressX export runRUNTIME=5m mount | grep -q md${mdstart}.eli && \ su $testuser -c "cd ..; ./run.sh rw.cfg" while mount | grep $mntpoint | grep -q /dev/md; do umount $mntpoint || sleep 1 done checkfs /dev/md${mdstart}.eli geli kill /dev/md$mdstart.eli mdconfig -d -u $mdstart rm -f /tmp/suj3.key