While preparing to upgrade to latest stable, I ran some scripts to verify that the target was OK and found something that I think I need to fix but have no clue to how. This is the essence of what I found: # ls /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO/* autosplit.ix # ls -la /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO/* ls: : No such file or directory ls: autosplit.ix: No such file or directory total 8 drwxr-xr-x 2 root wheel 2251799813685760 Jun 14 04:06 . drwxr-xr-x 2 root wheel 2251799813685760 Jun 14 04:06 . drwxr-xr-x 24 root wheel 512 Mar 29 10:33 .. drwxr-xr-x 24 root wheel 512 Mar 29 10:33 .. # stat /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO 163 5229427 drwxr-xr-x 2 root wheel 20894350 2251799813685760 "Jun 14 07:07:43 2008" "Jun 14 04:06:44 2008" "Jun 14 04:06:44 2008" "Mar 29 10:33:10 2008" 4096 4 0 /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO # stat /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO/autosplit.ix stat: /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO/autosplit.ix: stat: No such file or directory # od -c /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO | more 0000000 s 313 O \0 \f \0 004 001 . \0 \0 \0 1 313 O \0 0000020 364 001 004 002 . . \0 \0 t 313 O \0 024 \0 \b \t 0000040 P e r l I O . s o \0 217 300 u 313 O \0 0000060 324 001 \b \t P e r l I O . b s \0 217 300 0000100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0001000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0001020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0002000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0002020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0003000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0003020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0004000 v 313 O \0 \f \0 004 001 . \0 \0 \0 335 312 O \0 0004020 \f \0 004 002 . . \0 \0 w 313 O \0 350 001 \b \f 0004040 a u t o s p l i t . i x \0 231 - 351 0004060 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0005000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0006000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0006020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0007000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0010000 177 E L F 001 001 001 \t \0 \0 \0 \0 \0 \0 \0 \0 0010020 003 \0 003 \0 001 \0 \0 \0 240 \t \0 \0 4 \0 \0 \0 0010040 330 025 \0 \0 \0 \0 \0 \0 4 \0 \0 003 \0 ( \0 This does not look like a directory, it looks like a shared library, PerlIO.so, that somehow got the directory bit set. First, am I correct in my analysis? Second, how do I remove the directory bit so I can delete the file? Host info, dmesg.boot attached: # uname -a FreeBSD balder.glz.hidden-powers.com 6.3-STABLE FreeBSD 6.3-STABLE #1: Thu Feb 28 02:14:05 CET 2008 root@midgard.glz.hidden-powers.com:/usr/obj/usr/src/sys/BALDER i386 Cheers, G?ran ................................................... the future isMobile Goran Lowkrantz <goran.lowkrantz@ismobile.com> System Architect, isMobile AB Sandviksgatan 81, PO Box 58, S-971 03 Lule?, Sweden Mobile: +46(0)70-587 87 82 http://www.ismobile.com ............................................... -------------- next part -------------- A non-text attachment was scrubbed... Name: dmesg.boot Type: application/octet-stream Size: 7426 bytes Desc: not available Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20080614/596ce421/dmesg.obj
The initial fsck didn't clear it but using fsdb to remove the entry from the parent directory, an fsck -y /usr in singleuser cleard the problem. Thanks to Joseph Koshy for directing me to fsdb. Cheers, G?ran --On Saturday, June 14, 2008 07:17 +0200 Goran Lowkrantz <goran.lowkrantz@ismobile.com> wrote:> While preparing to upgrade to latest stable, I ran some scripts to verify > that the target was OK and found something that I think I need to fix but > have no clue to how. > > This is the essence of what I found: > ># ls /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO/* > autosplit.ix ># ls -la /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO/* > ls: : No such file or directory > ls: autosplit.ix: No such file or directory > total 8 > drwxr-xr-x 2 root wheel 2251799813685760 Jun 14 04:06 . > drwxr-xr-x 2 root wheel 2251799813685760 Jun 14 04:06 . > drwxr-xr-x 24 root wheel 512 Mar 29 10:33 .. > drwxr-xr-x 24 root wheel 512 Mar 29 10:33 .. ># stat /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO > 163 5229427 drwxr-xr-x 2 root wheel 20894350 2251799813685760 "Jun 14 > 07:07:43 2008" "Jun 14 04:06:44 2008" "Jun 14 04:06:44 2008" "Mar 29 > 10:33:10 2008" 4096 4 0 > /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO ># stat ># /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO/autosplit.ix > stat: > /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO/autosplit.ix: > stat: No such file or directory ># od -c /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO | more > 0000000 s 313 O \0 \f \0 004 001 . \0 \0 \0 1 313 O \0 > 0000020 364 001 004 002 . . \0 \0 t 313 O \0 024 \0 \b \t > 0000040 P e r l I O . s o \0 217 300 u 313 O \0 > 0000060 324 001 \b \t P e r l I O . b s \0 217 300 > 0000100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > * > 0001000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > 0001020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > * > 0002000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > 0002020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > * > 0003000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > 0003020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > * > 0004000 v 313 O \0 \f \0 004 001 . \0 \0 \0 335 312 O \0 > 0004020 \f \0 004 002 . . \0 \0 w 313 O \0 350 001 \b \f > 0004040 a u t o s p l i t . i x \0 231 - 351 > 0004060 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > * > 0005000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > 0005020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > * > 0006000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > 0006020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > * > 0007000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > 0007020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 > * > 0010000 177 E L F 001 001 001 \t \0 \0 \0 \0 \0 \0 \0 \0 > 0010020 003 \0 003 \0 001 \0 \0 \0 240 \t \0 \0 4 \0 \0 \0 > 0010040 330 025 \0 \0 \0 \0 \0 \0 4 \0 \0 003 \0 ( \0 > > > This does not look like a directory, it looks like a shared library, > PerlIO.so, that somehow got the directory bit set. > > First, am I correct in my analysis? > Second, how do I remove the directory bit so I can delete the file? > > Host info, dmesg.boot attached: ># uname -a > FreeBSD balder.glz.hidden-powers.com 6.3-STABLE FreeBSD 6.3-STABLE #1: > Thu Feb 28 02:14:05 CET 2008 > root@midgard.glz.hidden-powers.com:/usr/obj/usr/src/sys/BALDER i386 > > > Cheers, > G?ran > > > ................................................... the future isMobile > > Goran Lowkrantz <goran.lowkrantz@ismobile.com> > System Architect, isMobile AB > Sandviksgatan 81, PO Box 58, S-971 03 Lule?, Sweden > Mobile: +46(0)70-587 87 82 > http://www.ismobile.com .................................................................................................. the future isMobile Goran Lowkrantz <goran.lowkrantz@ismobile.com> System Architect, isMobile AB Sandviksgatan 81, PO Box 58, S-971 03 Lule?, Sweden Mobile: +46(0)70-587 87 82 http://www.ismobile.com ...............................................
On 2008-Jun-14 07:17:56 +0200, Goran Lowkrantz <goran.lowkrantz@ismobile.com> wrote:>drwxr-xr-x 2 root wheel 2251799813685760 Jun 14 04:06 .This is 0x8000000000200># od -c /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/APR/PerlIO | more >0000000 s 313 O \0 \f \0 004 001 . \0 \0 \0 1 313 O \0 >0000020 364 001 004 002 . . \0 \0 t 313 O \0 024 \0 \b \t >0000040 P e r l I O . s o \0 217 300 u 313 O \0 >0000060 324 001 \b \t P e r l I O . b s \0 217 300 >0000100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 >* >0001000 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0...>This does not look like a directory, it looks like a shared library, >PerlIO.so, that somehow got the directory bit set.Actually, no. It looks like a valid directory that somehow managed to get the high bit in its length set (random bit flip). The od output makes it look like it contains (or used to contain) PerlIO.so and PerlIO.bs.>Second, how do I remove the directory bit so I can delete the file?I'd try a fsck - that may detect the inconsistency and fix it to the point where rm works. If not, then you'll need to use fsdb(8) - just be careful with the latter - you can do major damage with it. Your second issue is how you got a random bit-flip - you might like to check your hardware. -- Peter Jeremy Please excuse any delays as the result of my ISP's inability to implement an MTA that is either RFC2821-compliant or matches their claimed behaviour. -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 195 bytes Desc: not available Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20080614/45b8e699/attachment.pgp