[OpenAFS] Help needed for receovery of data of inode fileserver
(Solaris 10 x86)
Hartmut Reuter
reuter@rzg.mpg.de
Thu, 03 Apr 2008 22:33:59 +0200
Jeffrey Altman wrote:
> John Tang Boyland wrote:
>
>> OK I compiled the salvager with debugging and without optimization.
>>
>> filip# /opt/SUNWspro/bin/dbx salvager.debug
>> For information about new features see `help changes'
>> To remove this message, put `dbxenv suppress_startup_message 7.5' in
>> your .dbxrc
>> Reading salvager.debug
>> Reading ld.so.1
>> Reading libresolv.so.2
>> Reading libsocket.so.1
>> Reading libnsl.so.1
>> Reading libintl.so.1
>> Reading libdl.so.1
>> Reading libc.so.1
>> (dbx) run /vicepa -debug -parallel 1
>> Running: salvager.debug /vicepa -debug -parallel 1 (process id 3491)
>>
>> [after three hours, I pressed return]
>>
>> Thu Apr 3 14:14:20 2008: Assertion failed! file vol-salvage.c, line
>> 3175.
>> signal ABRT (Abort) in __lwp_kill at 0xfee21157
>> 0xfee21157: __lwp_kill+0x0007: jae __lwp_kill+0x15 [
>> 0xfee21165, .+0xe ]
>> Current function is AssertionFailed
>> 48 abort();
>> (dbx) where
>> [1] __lwp_kill(0x1, 0x6), at 0xfee21157 [2] _thr_kill(0x1, 0x6),
>> at 0xfee1e8c9 [3] raise(0x6), at 0xfedcd163 [4] abort(0x804694a,
>> 0x47f52c8c, 0x68540000, 0x70412075, 0x33202072, 0x3a343120), at
>> 0xfedb0ba9 =>[5] AssertionFailed(file = 0x808b724 "vol-salvage.c",
>> line = 3175), line 48 in "assert.c"
>> [6] DistilVnodeEssence(rwVId = 536870912U, class = 1, ino =
>> 21977313U, maxu = 0x8046bc4), line 3175 in "vol-salvage.c"
>> [7] SalvageVolume(rwIsp = 0x9ab0130, alinkH = 0x9ac0de8), line 3346
>> in "vol-salvage.c"
>> [8] DoSalvageVolumeGroup(isp = 0x9ab0130, nVols = 1), line 2104 in
>> "vol-salvage.c"
>> [9] SalvageFileSys1(partP = 0x80bacd8, singleVolumeNumber = 0), line
>> 1357 in "vol-salvage.c"
>> [10] SalvageFileSys(partP = 0x80bacd8, singleVolumeNumber = 0), line
>> 1192 in "vol-salvage.c"
>> [11] handleit(as = 0x80a9340), line 687 in "vol-salvage.c"
>> [12] cmd_Dispatch(argc = 6, argv = 0x80aaba8), line 902 in "cmd.c"
>> [13] main(argc = 5, argv = 0x8047650), line 845 in "vol-salvage.c"
>> (dbx) up
>> Current function is DistilVnodeEssence
>> 3175 assert(class == vLarge);
>> (dbx) list 3170,3180
>> 3170 vep->type = vnode->type;
>> 3171 vep->author = vnode->author;
>> 3172 vep->owner = vnode->owner;
>> 3173 vep->group = vnode->group;
>> 3174 if (vnode->type == vDirectory) {
>> 3175 assert(class == vLarge);
>> 3176 vip->inodes[vnodeIndex] = VNDISK_GET_INO(vnode);
>> 3177 }
>> 3178 }
>> 3179 }
>> 3180 STREAM_CLOSE(file);
>
>
> So what is the value of 'class' if not vLarge?
>
As you can see from that line above it's vSmall:
>> [6] DistilVnodeEssence(rwVId = 536870912U, class = 1, ino =
>> 21977313U, maxu = 0x8046bc4), line 3175 in "vol-salvage.c"
So there might be really some thing wrong with the SmallVnodeFile, but
to do an AssertionFailed is not the best way to repair it!
Hartmut
-----------------------------------------------------------------
Hartmut Reuter e-mail reuter@rzg.mpg.de
phone +49-89-3299-1328
fax +49-89-3299-1301
RZG (Rechenzentrum Garching) web http://www.rzg.mpg.de/~hwr
Computing Center of the Max-Planck-Gesellschaft (MPG) and the
Institut fuer Plasmaphysik (IPP)
-----------------------------------------------------------------