In the process of moving our main file server to new hardware, I found a problem in restoring the multivolume L1 dump on the new system (that looks suspiciously like the "[ 1165648 ] segfault restoring level 1 backup" issue I found in the tracker -- but more on that later). The new system is running the latest "dump", but the old system (where the backups were made) only has version 0.4b31 installed. So I thought I should try it again using dumps made with the latest version. Alas, the latest won't compile on this vintage-2002 system; a transcript is attached. :-(
Here are the particulars of the software on the old system, which is SuSE GNU/Linux release 8.1:
dump-0.4b31-23
e2fsprogs-1.28-18
k_athlon-2.4.21-198
glibc-2.2.5-184
gcc-3.2-36
I suspect the problem is obvious to a seasoned C hacker . . . but that's not me; I keep getting lost in /usr/include/.
TIA,
-- Bob Rogers
Transcript of build error
Logged In: YES
user_id=5513
Originator: NO
Does it work better if you modify compat/include/bsdcompat.h in the dump source directory, and add:
#include <stdio.h>
just before the line:
#include <ext2fs/ext2fs.h>
?
ext2fs/ext2fs.h from e2fsprogs-devel-1.28-18
Logged In: YES
user_id=603349
Originator: YES
Thanks; it's getting further now (see below), only to fail in a different place. I've attached /usr/include/ext2fs/ext2fs.h from this system, just to be sure that you're looking at the right version.
-- Bob
. . .
gcc -c -D_BSD_SOURCE -D_USE_BSD_SIGNAL -g -O2 -pipe -I.. -I../compat/include -I../restore -DRDUMP -DRRESTORE -DLINUX_FORK_BUG -DHAVE_LZO -D_PATH_DUMPDATES=\"/usr/local/etc/dumpdates\" -D_DUMP_VERSION=\"0.4b41\" -DDIRDEBUG xattr.c -o xattr.o
In file included from ../compat/include/bsdcompat.h:15,
from xattr.c:44:
/usr/include/ext2fs/ext2fs.h: In function `ext2fs_group_of_blk':
/usr/include/ext2fs/ext2fs.h:1027: dereferencing pointer to incomplete type
/usr/include/ext2fs/ext2fs.h:1028: dereferencing pointer to incomplete type
/usr/include/ext2fs/ext2fs.h: In function `ext2fs_group_of_ino':
/usr/include/ext2fs/ext2fs.h:1036: dereferencing pointer to incomplete type
/usr/include/ext2fs/ext2fs.h: At top level:
/usr/include/ext2fs/ext2fs.h:1041: conflicting types for `ext2fs_inode_data_blocks'
/usr/include/ext2fs/ext2fs.h:885: previous declaration of `ext2fs_inode_data_blocks'
/usr/include/ext2fs/ext2fs.h: In function `ext2fs_inode_data_blocks':
/usr/include/ext2fs/ext2fs.h:1042: dereferencing pointer to incomplete type
/usr/include/ext2fs/ext2fs.h:1043: dereferencing pointer to incomplete type
make[1]: *** [xattr.o] Error 1
make[1]: Leaving directory `/usr/local/src/rogers/dump-0.4b41/restore'
make: *** [all] Error 1
rogers@alexandria>
File Added: ext2fs.h
Logged In: YES
user_id=5513
Originator: NO
Ok, try now adding the following lines:
#ifdef HAVE_EXT2FS_EXT2_FS_H
#include <ext2fs/ext2_fs.h>
#else
#include <linux/ext2_fs.h>
#endif
in restore/xattr.c, just before those lines:
#include <bsdcompat.h>
#else /* __linux__ */
#ifdef sunos
#include <sys/fcntl.h>
#include <bsdcompat.h>
#else
#include <ufs/ufs/dinode.h>
#endif
#endif /* __linux__ */
Stelian.
Logged In: YES
user_id=603349
Originator: YES
Terrific; that worked. I will use the new binaries to make a full dump tonight, and continue testing on the other issue Monday morning (by which time I will have a level 3 dump to layer over the full dump).
I configured with --enable-debug; please let me know if there is anything I should do to capture additional information as the dumps are created.
Thanks again,
Bob
i've deployed the fix in commit e141574ec707b14e419adc70fca984284f5883b8