No physical znode address

Andriy Gapon avg at FreeBSD.org
Tue May 31 16:44:11 UTC 2011


on 31/05/2011 18:21 Patrick Proniewski said the following:
> 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).

I wonder if fstat would have worked any differently from lsof here.

> 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...)

I wonder if with ktrace/kdump you wouldn't have to use kill.

> 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.

Unfortunately, nothing for such a mysterious problem.
Maybe you could investigate why apache tries to use that overlong path in the
first place.  Like some undesirable recursion...
-- 
Andriy Gapon


More information about the freebsd-fs mailing list