Quote:> Hi,
> Interestingly enough, I am experiencing the same problem. I have a process
> that writes to a file using printf/sprintf, and once in a while syslog
> reports that the file system (in this case /export/home/) is full, when in
> reality it is not. The file is not being corrupted or deleted, but the
> process must stop as it cannot write to the file due to this strange
> problem.
> Please post any resolution you find. I have searched sunsolve extensively,
> and have not found a bug/symptom report on this.
Maybe you have run out of full blocks on the FS. Try a
fstyp -v <Raw-Device> | head
and take a look at "nbfree". This is the number of available full sized
blocks.
The output of df also includes free fragments.
In my case:
# fstyp -v /dev/rdsk/c2t0d0s0
ufs
magic 11954 format dynamic time Tue Feb 13 21:30:17 2001
sblkno 16 cblkno 24 iblkno 32 dblkno 480
sbsize 2048 cgsize 8192 cgoffset 112 cgmask 0xfffffff8
ncg 89 size 3837345 blocks 3796031
bsize 8192 shift 13 mask 0xffffe000
fsize 1024 shift 10 mask 0xfffffc00
frag 8 shift 3 fsbtodb 1
minfree 2% maxbpg 1024 optim time
maxcontig 128 rotdelay 0ms rps 120
csaddr 480 cssize 2048 shift 9 mask 0xfffffe00
ntrak 5 nsect 218 spc 1090 ncyl 7041
cpg 80 bpg 5450 fpg 43600 ipg 3584
nindir 2048 inopb 64 nspf 2
nbfree 94349 ndir 11151 nifree 193518 nffree 14181
cgrotor 62 fmod 0 ronly 0 logbno 0
# df -k /
Dateisystem kByte belegt verfgbar Kapazit?t Eingeh?ngt auf
/dev/dsk/c2t0d0s0 3796031 3027070 693041 82% /
nbfree[94349] * bsize + nifree[193518] * fsize = 768973 kB
If you add the 2% root reserve, you will get the same results.
If you have run out of full sized blocks, you may try to change optimization
to space and copying around some files < 96 kB. This may free up some
blocks, since the file tails will be placed more aggresive in fragments.
--
Daniel