"Invalid argument" error when moving sockets to backup dir
Jordan Russell
jr-list-2008 at quo.to
Thu May 22 19:57:56 GMT 2008
Local end (receiving): 3.0.2, 3.0.3pre2
Remote end (sending): 2.6.9
Under 3.0.x, rsync sometimes prints an "Invalid argument" error when
moving sockets to the backup directory (--backup-dir):
rsync: mknod "/backup/machine/../machine-before-4/var/run/audit_events"
failed: Invalid argument (22)
The problem appears to be that, at least with sockets, keep_backup() is
calling do_mknod() with garbage in the third parameter (dev).
When I add some debug output to do_mknod():
printf("mknod pathname=%s, mode=%d, dev=%llu\n", pathname, mode, dev);
int mknodres = mknod(pathname, mode, dev);
printf("mknod result: %d, errno=%d\n", mknodres, errno);
return mknodres;
3.0.2 and 3.0.3pre2 show:
mknod pathname=../machine-before-4/var/run/audit_events, mode=49645,
dev=89016461384865329
mknod result: -1, errno=22
rsync: mknod "/backup/machine/../machine-before-4/var/run/audit_events"
failed: Invalid argument (22)
while 2.6.9 shows:
mknod pathname=../machine-before-4/var/run/audit_events, mode=49645, dev=0
mknod result: -1, errno=2
mknod pathname=../machine-before-4/var/run/audit_events, mode=49645, dev=0
mknod result: 0, errno=2
and no error messages.
--
Jordan Russell
More information about the rsync
mailing list