[OpenAFS] Salvageserver 1.6.1-3+deb7u1 core dump
Harald Barth
haba@kth.se
Tue, 17 Jun 2014 11:03:00 +0200 (CEST)
> This change went into 1.6.6, so 1.6.7 would do as well.
Thanks. Built myself a 1.6.9 from the source deb from unstable.
But unfortunately, the volume in question breaks the 1.6.9 salvageserver as well :(
Gdb tells me:
(gdb) up
#1 0x00007f82c1a436f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) up
#2 0x00007f82c2424bb8 in osi_Panic (
msg=msg@entry=0x7f82c245c1d0 "assertion failed: %s, file: %s, line: %d\n")
at ./../rx/rx_user.c:251
251 afs_abort();
(gdb) up
#3 0x00007f82c2424bd5 in osi_AssertFailU (
expr=expr@entry=0x7f82c2450c13 "Delete(&dh, \"..\") == 0",
file=file@entry=0x7f82c245088f "../vol/vol-salvage.c",
line=line@entry=4127) at ./../rx/rx_user.c:261
261 osi_Panic("assertion failed: %s, file: %s, line: %d\n", expr,
(gdb) up
#4 0x00007f82c23f97b7 in SalvageVolume (
salvinfo=salvinfo@entry=0x7fffcf109530, rwIsp=rwIsp@entry=0x7f82c2dba290,
alinkH=0x7f82c2db7e80) at ../vol/vol-salvage.c:4127
4127 osi_Assert(Delete(&dh, "..") == 0);
(gdb) list
4122 SetSalvageDirHandle(&dh, vid, salvinfo->fileSysDevice,
4123 salvinfo->vnodeInfo[class].inodes[v],
4124 &salvinfo->VolumeChanged);
4125 pa.Vnode = LFVnode;
4126 pa.Unique = LFUnique;
4127 osi_Assert(Delete(&dh, "..") == 0);
4128 osi_Assert(Create(&dh, "..", &pa) == 0);
4129
4130 /* The original parent's link count was decremented above.
4131 * Here we increment the new parent's link count.
(gdb) p dh
$1 = {dirh_volume = 536904480, dirh_device = 0, dirh_inode = 173619825082415,
dirh_handle = 0x7f82c2db8980, dirh_cacheCheck = 44,
volumeChanged = 0x7fffcf109570}
(gdb) p &dh
$2 = (DirHandle *) 0x7fffcf108c00
(gdb) p pa
$3 = {Volume = 4294967295, Vnode = 1, Unique = 1}
Should we not just make a ".." in this situation?
And now lunch.
Harald.