kern/77181: newfs -g largevalue, mkdir, panic

Peter Much pmc at
Sun Feb 6 14:20:15 PST 2005

>Number:         77181
>Category:       kern
>Synopsis:       newfs -g largevalue, mkdir, panic
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Feb 06 22:20:14 GMT 2005
>Originator:     Peter Much
>Release:        FreeBSD 5.3-RELEASE-p4 i386
System: FreeBSD 5.3-RELEASE-p4 FreeBSD 5.3-RELEASE-p4 #4: Sun Jan 30 21:53:17 CET 2005 root at i386


	create 5G filesystem on gvinum drive (single drive, no mirror, no stripe).
	newfs -g 104857600 -U
	mount it, and mkdir some directories.
	panic, integer divide fault.


	Was quite reproducible. First directoriy within directory
	crashed it. Here is the dumpfs header:

magic   19540119 (UFS2) time    Sun Feb  6 22:09:11 2005
superblock location     65536   id      [ 42066452 b1313aa3 ]
ncg     28      size    2621440 blocks  2538519
bsize   16384   shift   14      mask    0xffffc000
fsize   2048    shift   11      mask    0xfffff800
frag    8       shift   3       fsbtodb 2
minfree 8%      optim   time    symlinklen 120
maxbsize 16384  maxbpg  2048    maxcontig 8     contigsumsize 8
nbfree  317308  ndir    6       nifree  659448  nffree  49
bpg     11761   fpg     94088   ipg     23552
nindir  2048    inopb   64      maxfilesize     140806241583103
sbsize  2048    cgsize  16384   csaddr  3000    cssize  2048
sblkno  40      cblkno  48      iblkno  56      dblkno  3000
cgrotor 15      fmod    0       ronly   0       clean   0
avgfpdir 64     avgfilesize 104857600
flags   unclean soft-updates
fsmnt   /j/conn/var/spool/files
volname         swuid   0


	Now I dont use the -g option. Actually I just found it and
	thought, lets try it out - have not yet researched what it
	functionally does. And I know that my value is way large and 
	is not in good match with the blocksize.
	But as this can be harmful in such a way (and not only on
	performance), we need some plausibility check in newfs.
	(And now I put kerneldebugger back into my config - btw,
	there seems no longer anywhere the nice explanations for such
	options as was in the former LINT file - where one could
	easily pick what could be eventually needed.)

More information about the freebsd-bugs mailing list