First time user - can't clone
skip at pobox.com
skip at pobox.com
Sun Nov 18 20:24:53 UTC 2007
>> I was able to clone it from a couple different Linux machines, one at
>> work (so it's unlikely to be a network config issue) and one out on
>> the net. It does indeed seem to be a Solaris-related problem.
Danek> I assume you're on some form of Solaris 10? If you do think it's
Danek> an OS problem, the relevant bits of a truss leading up to the
Danek> failure would be more useful (though possibly also not
Danek> definitive).
Okay, here's what I did. Starting afresh I executed the clone command with
the -U flag:
hg clone -U http://montanaro.dyndns.org:8000/ lockfile
Then in the lockfile directory I ran "truss python -v hg ..." so I could
tell when the imports ended and where the cleanup began:
truss python -v `which hg` update -C tip > ~/tmp/hg.out 2>&1
Here's the truss output between those two marker points:
write(2, "\n", 1) = 1
llseek(4, 0, SEEK_CUR) = 0
close(4) = 0
llseek(3, 0, SEEK_CUR) = 0
close(3) = 0
stat64("/opt/app/g++lib6/python-2.4/lib/python2.4/site-packages/mercurial/stat", 0x08043C10) Err#2 ENOENT
open64("/opt/app/g++lib6/python-2.4/lib/python2.4/site-packages/mercurial/stat.so", O_RDONLY) Err#2 ENOENT
open64("/opt/app/g++lib6/python-2.4/lib/python2.4/site-packages/mercurial/statmodule.so", O_RDONLY) Err#2 ENOENT
open64("/opt/app/g++lib6/python-2.4/lib/python2.4/site-packages/mercurial/stat.py", O_RDONLY) Err#2 ENOENT
open64("/opt/app/g++lib6/python-2.4/lib/python2.4/site-packages/mercurial/stat.pyc", O_RDONLY) Err#2 ENOENT
lstat64("/home/tuba/skipm/nobackup/tmp/lockfile/.", 0x08044DC0) = 0
open64("/home/tuba/skipm/nobackup/tmp/lockfile/.", O_RDONLY) = 3
fcntl(3, F_SETFD, 0x00000001) = 0
fstat64(3, 0x080445E0) = 0
getdents64(3, 0xD0B54000, 8192) = 72
getdents64(3, 0xD0B54000, 8192) = 0
fstatat64(3, "", 0x08260C08, 0x00001000) Err#2 ENOENT
close(3) = 0
unlink("/home/tuba/skipm/nobackup/tmp/lockfile/.hg/wlock") = 0
abort: No such file or directory: /home/tuba/skipm/nobackup/tmp/lockfile/./
write(2, " a b o r t : N o s u".., 76) = 76
sigaction(SIGINT, 0x080476B0, 0x08047700) = 0
sigaction(SIGHUP, 0x080476B0, 0x08047700) = 0
sigaction(SIGTERM, 0x080476B0, 0x08047700) = 0
I'd never seen the fstatat function before. For those similarly in the
dark, here's a snippet from the Solaris 10 fstat man page:
int fstatat(int fildes, const char *path, struct stat *buf,
int flag);
...
The fstatat() function obtains file attributes similar to
the stat(), lstat(), and fstat() functions. If the path
argument is a relative path, it is resolved relative to the
fildes argument rather than the current working directory.
If path is absolute, the fildes argument is unused. If the
fildes argument has the special value AT_FDCWD, relative
paths are resolved from the current working directory. If
the flag argument is AT_SYMLNK_NOFOLLOW, the function
behaves like lstat() and does not automatically follow
The flag argument 0x1000 is AT_SYMLNK_NOFOLLOW.
Seems odd to me that the path argument would be an empty string.
Thanks for all the help,
--
Skip Montanaro - skip at pobox.com - http://www.webfast.com/~skip/
More information about the Mercurial
mailing list