[OpenAFS] Help needed for receovery of data of inode fileserver (Solaris 10 x86)

John Tang Boyland boyland@cs.uwm.edu
Thu, 03 Apr 2008 14:46:22 -0500


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

The log says:

@(#) OpenAFS 1.4.7pre2 built  2008-04-03 
04/03/2008 11:21:46 STARTING AFS SALVAGER 2.4 (/usr/openafs-1.4.7pre2/bin/salvag
er.debug /vicepa -debug -parallel 1)
04/03/2008 11:21:46 SALVAGING FILE SYSTEM PARTITION /vicepa (device=c1t1d0s6)
04/03/2008 11:21:56 Scanning inodes on device /dev/rdsk/c1t1d0s6...
04/03/2008 11:24:06 242 nVolumesInInodeFile 6776 
04/03/2008 14:14:20 SALVAGING VOLUME 536870912.
04/03/2008 14:14:20 root.afs (536870912) updated 12/16/2005 09:53
04/03/2008 14:14:20 totalInodes 165

and then it breaks off

John.