No physical znode address

Patrick Proniewski patpro at patpro.net
Tue May 31 15:40:47 UTC 2011


Hi all,

I'm running a FreeBSD 8.2 server, with Apache 2.2 hosting around 260 web sites. It's a virtual machine, running on top of ESXi and a SAN storage.
The OS is installed on UFS, and a dedicated ZFS disk holds every web sites. Each web site is a ZFS volume created from the zpool "tank".

# zpool list  
NAME   SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
tank   149G  53.6G  95.4G    35%  ONLINE  -

# zpool status          
  pool: tank
 state: ONLINE
 scrub: scrub completed after 0h19m with 0 errors on Fri May 13 22:57:10 2011
config:

	NAME        STATE     READ WRITE CKSUM
	tank        ONLINE       0     0     0
	  da1       ONLINE       0     0     0

errors: No known data errors

Today, I've noticed an httpd process, stuck, using 100% CPU for hours. It looks like the process has opened non-existing files. Here is a part of the output of lsof:

# lsof -p 10453
COMMAND   PID USER   FD     TYPE             DEVICE SIZE/OFF   NODE NAME
httpd   10453  www  cwd                                             No physical znode address: 0xffffff0013019c60
httpd   10453  www  rtd     VDIR               0,87      512      2 /
httpd   10453  www  txt     VREG               0,87  1321703 406618 /usr/local/sbin/httpd
httpd   10453  www  txt     VREG               0,87   246776 235521 /libexec/ld-elf.so.1
httpd   10453  www  txt     VREG               0,87   154320 659461 /lib/libm.so.5
../..
httpd   10453  www  120r                                            No physical znode address: 0xffffff00132e2840
httpd   10453  www  121r                                            No physical znode address: 0xffffff0013019c60
httpd   10453  www  122r                                            No physical znode address: 0xffffff00132e2840
httpd   10453  www  123r                                            No physical znode address: 0xffffff0013019c60
httpd   10453  www  124r                                            No physical znode address: 0xffffff00132e2840
httpd   10453  www  125r                                            No physical znode address: 0xffffff0013019c60
httpd   10453  www  126r                                            No physical znode address: 0xffffff00132e2840
httpd   10453  www  127r                                            No physical znode address: 0xffffff0013019c60
httpd   10453  www  128r                                            No physical znode address: 0xffffff00132e2840
httpd   10453  www  129r                                            No physical znode address: 0xffffff0013019c60
httpd   10453  www  130r                                            No physical znode address: 0xffffff00132e2840
httpd   10453  www  131r                                            No physical znode address: 0xffffff0013019c60
../..

Reading a part of lsof's source code, it seems to relate to ZFS (dnode2.c - FreeBSD ZFS node functions for lsof).
Using truss, I've discovered that the process is trying to stat a non-existing file, with a way too long path. truss output is a infinite repetition of:

stat("/Sites/sites//spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core/sites/spip-core-vh/sites/edhum/bd/.Trashes//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////",0x7fffffffcc90) ERR#63 'File name too long'

(I had to kill -9 truss process...)

Obviously, there is something wrong with this particular web site. But I'm afraid it could come from the file system, or impact the FS. 
Any idea is welcome.

patpro



More information about the freebsd-fs mailing list