Shinichi Maruyama
2004-Feb-10 04:41 UTC
rsync 2.6.1cvs dumps core when preserve_hard_links and backup
I tried rsync 2.6.1cvs on my FreeBSD 4.X boxes. It dumps core when preserve_hard_links and backup. And SUPPORT_HARD_LINKS is true. rsync -avH --delete --backup --backup-dir=/some/backup/dir \ srchost::dir/ dir/ The core says... ------------------------------------------------------------------------ Program terminated with signal 11, Segmentation fault. #0 0x80536c0 in keep_backup (fname=0x808f060 "rsync.core") at backup.c:266 266 if (!kept && preserve_hard_links && file->link_u.links (gdb) where #0 0x80536c0 in keep_backup (fname=0x808f060 "rsync.core") at backup.c:266 #1 0x80537c9 in make_backup (fname=0x808f060 "rsync.core") at backup.c:297 #2 0x804c003 in delete_files (flist=0x8096100) at receiver.c:112 #3 0x805028c in do_recv (f_in=3, f_out=3, flist=0x8096100, local_name=0x0) at main.c:434 #4 0x805093c in client_run (f_in=3, f_out=3, pid=-1, argc=1, argv=0x8095004) at main.c:666 (gdb) p *file $1 = {modtime = 1076386251, length = 577536, mode = 33152, u = {rdev = 0, sum = 0x0, link = 0x0}, link_u = {idev = 0x80d1734, links = 0x80d1734}, basename = 0x80d1744 "rsync.core", dirname = 0x0, basedir = 0x0, uid = 0, gid = 0, flags = 0 '\000'} ------------------------------------------------------------------------ In file backup.c. 266 if (!kept && preserve_hard_links && file->link_u.links 267 && hlink_list[file->F_HLINDEX] != file) { 268 if (verbose > 1) 269 rprintf(FINFO, "%s is a hard link\n", f_name(file)); 270 } file->link_u.links (and also file->F_HLINDEX) has some values, but no meanings because it's only an union with file->link_u.idev. It may be if (!kept && preserve_hard_links && file->u.link) { or some ? -- Yes, I'm in panic. Shinichi Maruyama (marya@st.jip.co.jp)
jw schultz
2004-Feb-10 05:32 UTC
rsync 2.6.1cvs dumps core when preserve_hard_links and backup
On Tue, Feb 10, 2004 at 01:40:48PM +0900, Shinichi Maruyama wrote:> I tried rsync 2.6.1cvs on my FreeBSD 4.X boxes. > It dumps core when preserve_hard_links and backup. > And SUPPORT_HARD_LINKS is true. > > rsync -avH --delete --backup --backup-dir=/some/backup/dir \ > srchost::dir/ dir/ > > The core says... > > ------------------------------------------------------------------------ > Program terminated with signal 11, Segmentation fault. > > #0 0x80536c0 in keep_backup (fname=0x808f060 "rsync.core") at backup.c:266 > 266 if (!kept && preserve_hard_links && file->link_u.links > > (gdb) where > #0 0x80536c0 in keep_backup (fname=0x808f060 "rsync.core") at backup.c:266 > #1 0x80537c9 in make_backup (fname=0x808f060 "rsync.core") at backup.c:297 > #2 0x804c003 in delete_files (flist=0x8096100) at receiver.c:112 > #3 0x805028c in do_recv (f_in=3, f_out=3, flist=0x8096100, local_name=0x0) > at main.c:434 > #4 0x805093c in client_run (f_in=3, f_out=3, pid=-1, argc=1, argv=0x8095004) > at main.c:666 > > (gdb) p *file > $1 = {modtime = 1076386251, length = 577536, mode = 33152, u = {rdev = 0, sum = 0x0, > link = 0x0}, link_u = {idev = 0x80d1734, links = 0x80d1734}, > basename = 0x80d1744 "rsync.core", dirname = 0x0, basedir = 0x0, uid = 0, gid = 0, > flags = 0 '\000'} > ------------------------------------------------------------------------ > > In file backup.c. > > 266 if (!kept && preserve_hard_links && file->link_u.links > 267 && hlink_list[file->F_HLINDEX] != file) { > 268 if (verbose > 1) > 269 rprintf(FINFO, "%s is a hard link\n", f_name(file)); > 270 } > > file->link_u.links (and also file->F_HLINDEX) has some values, > but no meanings because it's only an union with file->link_u.idev. > It may be > > if (!kept && preserve_hard_links && file->u.link) { > > or some ?Yep, that is the receiver and it doesn't have access to that data since Wayne changed hardlink handling to cope with new links to existing files. Thoughts Wayne? -- ________________________________________________________________ J.W. Schultz Pegasystems Technologies email address: jw@pegasys.ws Remember Cernan and Schmitt
jw schultz
2004-Feb-10 23:26 UTC
rsync 2.6.1cvs dumps core when preserve_hard_links and backup
On Tue, Feb 10, 2004 at 01:40:48PM +0900, Shinichi Maruyama wrote:> I tried rsync 2.6.1cvs on my FreeBSD 4.X boxes. > It dumps core when preserve_hard_links and backup. > And SUPPORT_HARD_LINKS is true. > > rsync -avH --delete --backup --backup-dir=/some/backup/dir \ > srchost::dir/ dir/ > > The core says... > > ------------------------------------------------------------------------ > Program terminated with signal 11, Segmentation fault. > > #0 0x80536c0 in keep_backup (fname=0x808f060 "rsync.core") at backup.c:266 > 266 if (!kept && preserve_hard_links && file->link_u.links > > (gdb) where > #0 0x80536c0 in keep_backup (fname=0x808f060 "rsync.core") at backup.c:266 > #1 0x80537c9 in make_backup (fname=0x808f060 "rsync.core") at backup.c:297 > #2 0x804c003 in delete_files (flist=0x8096100) at receiver.c:112 > #3 0x805028c in do_recv (f_in=3, f_out=3, flist=0x8096100, local_name=0x0) > at main.c:434 > #4 0x805093c in client_run (f_in=3, f_out=3, pid=-1, argc=1, argv=0x8095004) > at main.c:666 > > (gdb) p *file > $1 = {modtime = 1076386251, length = 577536, mode = 33152, u = {rdev = 0, sum = 0x0, > link = 0x0}, link_u = {idev = 0x80d1734, links = 0x80d1734}, > basename = 0x80d1744 "rsync.core", dirname = 0x0, basedir = 0x0, uid = 0, gid = 0, > flags = 0 '\000'} > ------------------------------------------------------------------------ > > In file backup.c. > > 266 if (!kept && preserve_hard_links && file->link_u.links > 267 && hlink_list[file->F_HLINDEX] != file) { > 268 if (verbose > 1) > 269 rprintf(FINFO, "%s is a hard link\n", f_name(file)); > 270 } > > file->link_u.links (and also file->F_HLINDEX) has some values, > but no meanings because it's only an union with file->link_u.idev. > It may be > > if (!kept && preserve_hard_links && file->u.link) { > > or some ?CVS has a simplified test now that should avoid the segfault. It is just for a verbose message. -- ________________________________________________________________ J.W. Schultz Pegasystems Technologies email address: jw@pegasys.ws Remember Cernan and Schmitt
Wayne Davison
2004-Feb-10 23:57 UTC
rsync 2.6.1cvs dumps core when preserve_hard_links and backup
On Tue, Feb 10, 2004 at 01:40:48PM +0900, Shinichi Maruyama wrote:> I tried rsync 2.6.1cvs on my FreeBSD 4.X boxes. > It dumps core when preserve_hard_links and backup.I couldn't get it to dump core.> file->link_u.links (and also file->F_HLINDEX) has some values, > but no meanings because it's only an union with file->link_u.idev.By the time the transfer starts, all the link_u.idev structs should have been transformed into link_u.links structs (which all happens before the generator and receiver fork into separate processes). If you can send me a test case that triggers this failure, I'd appreciate it. ..wayne..