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