Yes, this looks familiar, I have hit directories like this using
the gtags/htags programs. I do not think we are going to find this
by trying to find a test case. It is going to take a good hard read of
the code.
Something is writing to a block it should not be, Once a filesystem is in
this state, looking at the disk around the corruption might give us some clues.
This will take someone familiar with xfs_db I think.
Steve
>
> I'm begining to think this has more to do with our corruption problem
> than anything else.
>
> This is what I got from the latest panic.
>
>
>
>
>
> 0x10 entry inumber 17202865 namelen 1 name "." tag 0x10
> 0x20 entry inumber 836488 namelen 2 name ".." tag 0x20
> 0x30 entry inumber 21699385 namelen 3 name "arc" tag 0x30
> 0x40 entry inumber 25916672 namelen 3 name "pci" tag 0x40
> 0x50 unused freetag 0xffff length 0x1cb tag 0x51
> 0x21b entry inumber 32768 namelen 0 name "" tag 0xc500
> 0x22b entry inumber 23065554927484928 namelen 0 name "" tag 0x0
> 0x23b entry inumber -3314508588250947072 namelen 0 name "" tag 0x52
> 0x24b entry inumber 32768 namelen 0 name "" tag 0xe700
> 0x25b entry inumber 23349228927451136 namelen 0 name "" tag 0x0
> 0x26b entry inumber 1008947054024794112 namelen 1 name "" tag 0x53
> 0x27b entry inumber 4563435520 namelen 0 name "" tag 0x1300
> 0x28b entry inumber 23546041508823041 namelen 0 name "" tag 0x0
> 0x29b entry inumber 1585407806328263680 namelen 1 name "" tag 0x54
> 0x2ab entry inumber 4697653248 namelen 0 name "" tag 0x1900
> 0x2bb entry inumber 23731858973917185 namelen 0 name "" tag 0x0
> 0x2cb entry inumber 2161868558631730688 namelen 1 name "" tag 0x54
> 0x2db entry inumber 4815093760 namelen 0 name "" tag 0x2000
> 0x2eb entry inumber 23931970090172417 namelen 0 name "" tag 0x0
> 0x2fb entry inumber 2594214122859344896 namelen 1 name "" tag 0x55
> 0x30b entry inumber 4915757056 namelen 0 name "" tag 0x2700
> 0x31b entry inumber 24133180718055425 namelen 0 name "" tag 0x0
> 0x32b entry inumber 3026559687086959616 namelen 1 name "" tag 0x56
> 0x33b entry inumber 5016420352 namelen 0 name "" tag 0x2c00
> 0x34b entry inumber 24339888904077313 namelen 0 name "" tag 0x0
> 0x35b entry inumber 3314790063238719488 namelen 1 name "" tag 0x56
> 0x36b entry inumber 5083529216 namelen 0 name "" tag 0x3000
> 0x37b entry inumber 24526805880799233 namelen 0 name "" tag 0x0
> 0x38b entry inumber 3963308409580114176 namelen 1 name "" tag 0x57
> 0x39b entry inumber 5234524160 namelen 0 name "" tag 0x3a00
> 0x3ab entry inumber 24734613578448897 namelen 0 name "" tag 0x0
> 0x3bb entry inumber 4395653973807731456 namelen 1 name "" tag 0x58
> 0x3cb entry inumber 5351964672 namelen 0 name "" tag 0x4000
> 0x3db entry inumber 24968809555165185 namelen 0 name "" tag 0x0
> 0x3eb entry inumber 4755941943997426944 namelen 1 name "" tag 0x59
> 0x3fb entry inumber 5419073536 namelen 0 name "" tag 0x4400
> 0x40b entry inumber 25185413345837057 namelen 0 name "" tag 0x0
> 0x41b entry inumber 5044172320149187840 namelen 1 name "" tag 0x59
> 0x42b entry inumber 32768 namelen 0 name "" tag 0x6f00
> 0x43b entry inumber 26502628275912705 namelen 0 name "" tag 0x0
> 0x44b entry inumber -6917388290146421504 namelen 2 name "" tag 0x60
> 0x45b entry inumber 32768 namelen 0 name "" tag 0xf500
> 0x46b entry inumber 27349252229300226 namelen 0 name "" tag 0x0
> 0x47b entry inumber 4323596379770420480 namelen 3 name "" tag 0x0
> 0x48b entry inumber 41472 namelen 0 name "" tag 0x0
> 0x49b entry inumber 27541666764161024 namelen 0 name "" tag 0x0
> 0x4ab entry inumber 140737494775552 namelen 0 name "" tag 0x63
> 0x4bb entry inumber 1627422720 namelen 0 name "" tag 0x0
> 0x4cb entry inumber 28032048950149120 namelen 0 name "" tag 0x0
> 0x4db entry inumber -5836524379577186560 namelen 0 name "" tag 0x0
> 0x4eb entry inumber 41472 namelen 0 name "" tag 0x0
> 0x4fb entry inumber 28475152136142848 namelen 0 name "" tag 0x0
> 0x50b entry inumber 178120883699712 namelen 0 name "" tag 0x65
> 0x51b entry inumber 33280 namelen 0 name "" tag 0x4e00
> 0x52b entry inumber 0 namelen 0 name "" tag 0x0
> 0x53b entry inumber 142936518276096 namelen 0 name "" tag 0x65
> 0x54b entry inumber 1224769536 namelen 0 name "" tag 0x4d00
> 0x55b entry inumber 28770920764014592 namelen 0 name "" tag 0x0
> 0x56b entry inumber 140737495061760 namelen 0 name "" tag 0x66
> 0x57b entry inumber 1677754368 namelen 0 name "" tag 0x0
> 0x58b entry inumber 29078784019791872 namelen 0 name "" tag 0x0
> 0x59b entry inumber 140737495135232 namelen 0 name "" tag 0x68
> 0x5ab entry inumber 2298511360 namelen 0 name "" tag 0x0
> 0x5bb entry inumber 29470210159280128 namelen 0 name "" tag 0x0
> 0x5cb entry inumber -7854137012638919680 namelen 0 name "" tag 0x68
> 0x5db entry inumber 32768 namelen 0 name "" tag 0xe200
> 0x5eb entry inumber 30024364019679232 namelen 0 name "" tag 0x0
> 0x5fb entry inumber -720435202883916288 namelen 0 name "" tag 0x6b
> 0x60b entry inumber 4194336768 namelen 0 name "" tag 0xfc00
> 0x61b entry inumber 30247564880117760 namelen 0 name "" tag 0x0
> 0x62b entry inumber 1297177430178215680 namelen 1 name "" tag 0x6d
> 0x63b entry inumber 32768 namelen 0 name "" tag 0x5000
> 0x64b entry inumber 30987536205611009 namelen 0 name "" tag 0x0
> 0x65b entry inumber 6125036230719463680 namelen 1 name "" tag 0x6e
> 0x66b entry inumber 5955944448 namelen 0 name "" tag 0x0
> 0x67b entry inumber 31161259042799616 namelen 0 name "" tag 0x0
> 0x68b entry inumber 140737495617280 namelen 0 name "" tag 0x6f
> 0x69b entry inumber 6744473600 namelen 0 name "" tag 0x0
> 0x6ab entry inumber 31298697996271616 namelen 0 name "" tag 0x0
> 0x6bb entry inumber 142936518904320 namelen 0 name "" tag 0x6f
> 0x6cb entry inumber 32768 namelen 0 name "" tag 0x5300
> 0x6db entry inumber 0 namelen 0 name "" tag 0x0
> 0x6eb entry inumber 178120883699712 namelen 0 name "" tag 0x73
> 0x6fb entry inumber 33280 namelen 0 name "" tag 0x4c00
> 0x70b entry inumber 32423498391486464 namelen 0 name "" tag 0x0
> 0x71b entry inumber 5620633072454290432 namelen 0 name "" tag 0x73
> 0x72b entry inumber 1325432832 namelen 0 name "" tag 0x5000
> 0x73b entry inumber 32545544182169600 namelen 0 name "" tag 0x0
> 0x74b entry inumber 5908863448606030336 namelen 0 name "" tag 0x73
> 0x75b entry inumber 1409318912 namelen 0 name "" tag 0x5500
> 0x76b entry inumber 32664291437969408 namelen 0 name "" tag 0x0
> 0x77b entry inumber 6341209012833625344 namelen 0 name "" tag 0x74
> 0x78b entry inumber 1509982208 namelen 0 name "" tag 0x5b00
> 0x79b entry inumber 32779740158885888 namelen 0 name "" tag 0x0
> 0x7ab entry inumber 7133842547250859776 namelen 0 name "" tag 0x74
> 0x7bb entry inumber 1677754368 namelen 0 name "" tag 0x6500
> 0x7cb entry inumber 32901785949569024 namelen 0 name "" tag 0x0
> 0x7db entry inumber 7422072923402600704 namelen 0 name "" tag 0x75
> 0x7eb entry inumber 1828749312 namelen 0 name "" tag 0x6e00
> 0x7fb entry inumber 33031528321646592 namelen 0 name "" tag 0x0
> 0x80b entry inumber 8070591269743982336 namelen 0 name "" tag 0x75
> 0x81b entry inumber 2013298688 namelen 0 name "" tag 0x7900
> 0x82b entry inumber 33160171182096384 namelen 0 name "" tag 0x0
> 0x83b entry inumber -9151173705320764416 namelen 0 name "" tag 0x76
> 0x84b entry inumber 32768 namelen 0 name "" tag 0x9f00
> 0x85b entry inumber 33325097926262784 namelen 0 name "" tag 0x0
> 0x86b entry inumber -6629157913993230336 namelen 0 name "" tag 0x0
> 0x87b entry inumber 41472 namelen 0 name "" tag 0x0
> 0x88b entry inumber 33477930042523648 namelen 0 name "" tag 0x0
> 0x89b entry inumber 3242732469202913280 namelen 0 name "" tag 0x77
> 0x8ab entry inumber 889225216 namelen 0 name "" tag 0x0
> 0x8bb entry inumber 33563691949490176 namelen 0 name "" tag 0x0
> 0x8cb entry inumber 140737496172288 namelen 0 name "" tag 0x7b
> 0x8db entry inumber 2432729088 namelen 0 name "" tag 0x0
> 0x8eb entry inumber 35816591274803200 namelen 0 name "" tag 0x0
> 0x8fb entry inumber 178120883699712 namelen 0 name "" tag 0x7f
> 0x90b entry inumber 33280 namelen 0 name "" tag 0x0
> 0x91b entry inumber 35884760995725312 namelen 0 name "" tag 0x0
> 0x92b entry inumber 178120883699712 namelen 0 name "" tag 0x0
> 0x93b entry inumber 41472 namelen 0 name "" tag 0x0
> 0x94b entry inumber 35983717042225152 namelen 0 name "" tag 0x0
> 0x95b entry inumber -8862943329168394752 namelen 0 name "" tag 0x80
> 0x96b entry inumber 32768 namelen 0 name "" tag 0x8f00
> 0x97b entry inumber 0 namelen 0 name "" tag 0x0
> 0x98b entry inumber 142936520043264 namelen 0 name "" tag 0x80
> 0x99b entry inumber 32768 namelen 0 name "" tag 0x3500
> 0x9ab entry inumber 36366347088691200 namelen 0 name "" tag 0x0
> 0x9bb entry inumber 4683884349962169344 namelen 0 name "" tag 0x81
> 0x9cb entry inumber 32768 namelen 0 name "" tag 0x5100
> 0x9db entry inumber 36920500949090304 namelen 0 name "" tag 0x0
> 0x9eb entry inumber -6701215508030233088 namelen 0 name "" tag 0x85
> 0x9fb entry inumber 32768 namelen 0 name "" tag 0xc700
> 0xa0b entry inumber 37621989367611392 namelen 0 name "" tag 0x0
> 0xa1b entry inumber -2810105429982034432 namelen 0 name "" tag 0x86
> 0xa2b entry inumber 5217746944 namelen 0 name "" tag 0x0
> 0xa3b entry inumber 38026609646632960 namelen 0 name "" tag 0x0
> 0xa4b entry inumber 140737497218304 namelen 0 name "" tag 0x8b
> 0xa5b entry inumber 6274711552 namelen 0 name "" tag 0x0
> 0xa6b entry inumber 39316336786014208 namelen 0 name "" tag 0x0
> 0xa7b entry inumber 5332402696304179200 namelen 0 name "" tag 0x8b
> 0xa8b entry inumber 1258323968 namelen 0 name "" tag 0x4e00
> 0xa9b entry inumber 39481263530180608 namelen 0 name "" tag 0x0
> 0xaab entry inumber 6557381794949003776 namelen 0 name "" tag 0x8c
> 0xabb entry inumber 1677754368 namelen 0 name "" tag 0x7400
> 0xacb entry inumber 39694568785969152 namelen 0 name "" tag 0x0
> 0xadb entry inumber -9007058517243385600 namelen 0 name "" tag 0x8d
> 0xaeb entry inumber 2231402496 namelen 0 name "" tag 0x8600
> 0xafb entry inumber 39935361832452096 namelen 0 name "" tag 0x0
> 0xb0b entry inumber -7133561072257126400 namelen 0 name "" tag 0x0
> 0xb1b entry inumber 41472 namelen 0 name "" tag 0x0
> 0xb2b entry inumber 40349877716123648 namelen 0 name "" tag 0x0
> 0xb3b entry inumber 6629439388987263232 namelen 0 name "" tag 0x91
> 0xb4b entry inumber 1711308800 namelen 0 name "" tag 0x6700
> 0xb5b entry inumber 41092048064872448 namelen 0 name "" tag 0x0
> 0xb6b entry inumber 7854418487632080128 namelen 0 name "" tag 0x92
> 0xb7b entry inumber 1845526528 namelen 0 name "" tag 0x6f00
> 0xb8b entry inumber 41296557227638784 namelen 0 name "" tag 0x0
> 0xb9b entry inumber 8142648863783841280 namelen 0 name "" tag 0x93
> 0xbab entry inumber 1912635392 namelen 0 name "" tag 0x7300
> 0xbbb entry inumber 41501066390405120 namelen 0 name "" tag 0x0
> 0xbcb entry inumber 8430879239935598080 namelen 0 name "" tag 0x93
> 0xbdb entry inumber 1979744256 namelen 0 name "" tag 0x7700
> 0xbeb entry inumber 41685784343871488 namelen 0 name "" tag 0x0
> 0xbfb entry inumber 140737498069248 namelen 0 name "" tag 0x96
> 0xc0b entry inumber 2399174656 namelen 0 name "" tag 0x0
> 0xc1b entry inumber 45197624482988032 namelen 0 name "" tag 0x0
> 0xc2b entry inumber 140737498886144 namelen 0 name "" tag 0xa0
> 0xc3b entry inumber 7281344512 namelen 0 name "" tag 0x0
> 0xc4b entry inumber 45337262459715584 namelen 0 name "" tag 0x0
> 0xc5b entry inumber 3747069656762941440 namelen 0 name "" tag 0x0
> 0xc6b entry inumber 13194139542528 namelen 0 name "" tag 0x3500
> 0xc7b entry inumber 0 namelen 0 name "" tag 0x0
> 0xc8b entry inumber 39582418599936 namelen 0 name "" tag 0xa1
> 0xc9b entry inumber 905978880 namelen 0 name "" tag 0x3600
> 0xcab entry inumber 0 namelen 0 name "" tag 0x0
> 0xcbb entry inumber 3963207254515211520 namelen 0 name "" tag 0x0
> 0xccb entry inumber 922764288 namelen 0 name "" tag 0x0
> 0xcdb entry inumber 45447213622496256 namelen 0 name "" tag 0x0
> 0xceb entry inumber 4179516376070852096 namelen 0 name "" tag 0x0
> 0xcfb entry inumber 989873152 namelen 0 name "" tag 0x3c00
> 0xd0b entry inumber 1536 namelen 0 name "" tag 0x0
> 0xd1b entry inumber 4395588003104292864 namelen 0 name "" tag 0xa1
> 0xd2b entry inumber 973094912 namelen 0 name "" tag 0x0
> 0xd3b entry inumber 45507686762030592 namelen 0 name "" tag 0x0
> 0xd4b entry inumber 4755977128374290176 namelen 0 name "" tag 0x0
> 0xd5b entry inumber 1124090880 namelen 0 name "" tag 0x4400
> 0xd6b entry inumber 1536 namelen 0 name "" tag 0x0
> 0xd7b entry inumber 4972048755407716352 namelen 0 name "" tag 0xa1
> 0xd8b entry inumber 1107312640 namelen 0 name "" tag 0x0
> 0xd9b entry inumber 7936 namelen 0 name "" tag 0x0
> 0xdab entry inumber 8319400251626094592 namelen 116 name "ubs.c/data/clink/io
/cattelan/x2.3-99-xfs/linux/fs/xfs/xfsrtstubs.cgcc2_compiled.int:t(0,1)=r(0,1);
0020000000000;" tag 0x3130
> 0xe2b entry inumber 3978709506094217015 namelen 55 name "7;char:t(0,2)=r(0,2)
;0;255;long int:t(0,3)=r(0,1);002" tag 0x3030
> 0xe73 entry inumber 3978702878842499120 namelen 55 name "7777777;unsigned int
:t(0,4)=r(0,1);0000000000000;00377" tag 0x3737
> 0xebb entry inumber 8439859425705721915 namelen 110 name "signed int:t(0,5)=r
(0,1);0000000000000;0037777777777;long long int:t(0,6)=r(0,1);01000000000000000
000000;0777" tag 0x3737
> 0xf3b entry inumber 3978709506094217015 namelen 55 name ";long long unsigned
int:t(0,7)=r(0,1);0000000000000;01" tag 0x3737
> 0xf83 entry inumber 3978709506094217015 namelen 55 name "77(..n9
> cyiis
>
>
> At Mon, 1 May 2000 16:20:08 -0500 (CDT),
> Glen Overby <overby@xxxxxxx> wrote:
> >
> >
> > Jim Mostek wrote:
> > >
> > > Glen Overby knows the dir2 format the best after
> > > Doug Doucette.
> > >
> > > Glen, Doug, any suggestions on what to look for
> > > when hitting the last assert below:
> > >
> > > /*
> > > * Loop over the data/unused entries.
> > > */
> > > while (p < endp) {
> > > dup = (xfs_dir2_data_unused_t *)p;
> > > /*
> > > * If it's unused, look for the space in the bestfree tab
le.
> > > * If we find it, account for that, else make sure it
> > > * doesn't need to be there.
> > > */
> > > if (INT_GET(dup->freetag, ARCH_UNKNOWN) == XFS_DIR2_DATA_
FREE_TAG) {
> > > ASSERT(lastfree == 0);
> > > ASSERT(INT_GET(*XFS_DIR2_DATA_UNUSED_TAG_P_ARCH(d
up, ARCH_UNK
> > > NOWN), ARCH_UNKNOWN) ==
> > > (char *)dup - (char *)d);
> >
> > Its a block format directory. Its a small directory that has a
> > single-level b+tree and the directory entries in one directory block.
> >
> > The XFS_DIR2_DATA_UNUSED_TAG_P_ARCH and INT_GET aren't in Irix; I
> > assume this is mac's big-endian / little-endian code.
> >
> > So the ASSERT is comparing the tag values of an unused directory entry
> > and its offset into the data block. It's checking if the unused
> > directory entry's 'tag' field is correct. Bug could be a bad tag
> > value or a bad assert.
> >
> > To know I'd need to know what those two macros do. Tell me where your
> > ism is; the last time I looked for it, I couldn't find it.
> >
> > If you've got a dump, get the values of: dup, d and *dup (it's an
> > xfs_dir2_data_unused_t). While you're at it, dump *d
> > (xfs_dir2_data_hdr_t) so we can see the bestfree entries. After that
> > we'll look at the remove-name code that sets the tag value.
> >
> > Glen
|