Solaris full /tmp - du and df different swap NOT filled

Hello all,

The issue is

# df -h /tmp
Filesystem             size   used  avail capacity  Mounted on
swap                   4.0G   4.0G   8.7M   100%    /tmp
# du -sh /tmp/
  87M   /tmp

By now you probably will say that this is open file destriptor issue.
Well no, nothing was using the /tmp and the files in it - tried with fuser /tmp and fuser /tmp/*

The most strange thing is that after sometime it fixed by itself without restarting any processes(there is monitoring for that)

# df -h /tmp
Filesystem             size   used  avail capacity  Mounted on
swap                   4.0G    87M   3.9G     3%    /tmp

Any ideas?

p.s. Swap was not full during the same time:

# swap -l
swapfile             dev  swaplo blocks   free
/dev/swap            0,0      16 197132288 123747040

p.p.s Worth to mention that this is a zone

# uname -a
SunOS 5.10 Generic_144488-11 sun4v sparc SUNW,Sun-Fire-T200

Never been that convinced how trustworthy lsof and the like are under solaris.

It could also be a filesystem corruption issue I suppose.

You might be in a zone with virtual memory capping.
In any case, use "swap -s" to display your swap (a.k.a. virtual memory) usage. /tmp being reported as full is, when /tmp is mounted using tmpfs, just a side effect of memory exhaustion.