Robert Mecklenburg
2003-05-19 03:07:19 UTC
I'm getting a strange error when I run ctags:
5 osaka:cimsoft$ /bin/ctags -e --recurse
ctags: cannot open temporary file : No such file or directory
[Exit 1]
If I run this under strace I get:
36 2364446 [main] ctags 7320 path_conv::check: root_dir(C:\), this->path(C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp), set_has_acls(8)
47 2364493 [main] ctags 7320 dtable::build_fhandler: fd -1, fh 0x615F0F50
32 2364525 [main] ctags 7320 stat_worker: (/mnt/c/DOCUME~1/liddins/LOCALS~1/Temp, 0x22FA20, 0, 0x22F680), file_attributes -1
42 2364567 [main] ctags 7320 fhandler_base::open: (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000) query_open 0
71 2364638 [main] ctags 7320 seterrno_from_win_error: /netrel/src/cygwin-1.3.22-1/winsup/cygwin/fhandler.cc:472 windows error 3
37 2364675 [main] ctags 7320 geterrno_from_win_error: windows error 3 == errno 2
42 2364717 [main] ctags 7320 fhandler_base::open: 0 = fhandler_base::open (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000)
35 2364752 [main] ctags 7320 fhandler_disk_file::open: 0 = fhandler_disk_file::open (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000)
33 2364785 [main] ctags 7320 fhandler_base::open: (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000) query_open 1
65 2364850 [main] ctags 7320 seterrno_from_win_error: /netrel/src/cygwin-1.3.22-1/winsup/cygwin/fhandler.cc:472 windows error 3
35 2364885 [main] ctags 7320 geterrno_from_win_error: windows error 3 == errno 2
32 2364917 [main] ctags 7320 fhandler_base::open: 0 = fhandler_base::open (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000)
33 2364950 [main] ctags 7320 fhandler_disk_file::open: 0 = fhandler_disk_file::open (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000)
33 2364983 [main] ctags 7320 fhandler_disk_file::fstat_by_name: already determined that pc does not exist
34 2365017 [main] ctags 7320 stat_worker: -1 = (/mnt/c/DOCUME~1/liddins/LOCALS~1/Temp, 0x22FA20)
52 2365069 [main] ctags 7320 writev: writev (2, 0x22E120, 1)
34 2365103 [main] ctags 7320 fhandler_base::write: binary write
ctags: 43 2365146 [main] ctags 7320 fhandler_base::write: 7 = write (0x22E1B0, 7)
32 2365178 [main] ctags 7320 writev: 7 = write (2, 0x22E120, 1), errno 2
37 2365215 [main] ctags 7320 writev: writev (2, 0x22E140, 1)
32 2365247 [main] ctags 7320 fhandler_base::write: binary write
cannot open temporary file 40 2365287 [main] ctags 7320 fhandler_base::write: 26 = write (0x22E1D0, 26)
31 2365318 [main] ctags 7320 writev: 26 = write (2, 0x22E140, 1), errno 2
51 2365369 [main] ctags 7320 writev: writev (2, 0x22E120, 1)
33 2365402 [main] ctags 7320 fhandler_base::write: binary write
: No such file or directory 39 2365441 [main] ctags 7320 fhandler_base::write: 28 = write (0x22E1B0, 28)
32 2365473 [main] ctags 7320 writev: 28 = write (2, 0x22E120, 1), errno 2
45 2365518 [main] ctags 7320 writev: writev (2, 0x22FA50, 1)
33 2365551 [main] ctags 7320 fhandler_base::write: binary write
39 2365590 [main] ctags 7320 fhandler_base::write: 1 = write (0x610CB3CF, 1)
32 2365622 [main] ctags 7320 writev: 1 = write (2, 0x22FA50, 1), errno 2
47 2365669 [main] ctags 7320 do_exit: do_exit (1)
I have no idea where the \mnt\c\DOCUME~1\liddins\LOCALS~1\Temp came
from. "liddins" is not a name which occurs anywhere on my machine,
our local subnet or the ctags source. In fact, a google on liddins
returns nothing (kind of cool, that).
After poking around some more I've found that setting the TMPDIR
environment variable to $TMP solves the problem. Scanning the source
I see that TMPDIR is used as a configuration option to specify a
default temporary directory. A strings on the ctags binary yeilds:
12 osaka:cimsoft$ strings /bin/ctags.exe | grep liddins
/mnt/c/DOCUME~1/liddins/LOCALS~1/Temp
My conclusion: Maybe the most recent release of ctags has a
compiled-in default directory of .../liddins/... and that this
directory is used if the TMPDIR environment variable is otherwise
undefined.
Comments?
Thanks,
5 osaka:cimsoft$ /bin/ctags -e --recurse
ctags: cannot open temporary file : No such file or directory
[Exit 1]
If I run this under strace I get:
36 2364446 [main] ctags 7320 path_conv::check: root_dir(C:\), this->path(C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp), set_has_acls(8)
47 2364493 [main] ctags 7320 dtable::build_fhandler: fd -1, fh 0x615F0F50
32 2364525 [main] ctags 7320 stat_worker: (/mnt/c/DOCUME~1/liddins/LOCALS~1/Temp, 0x22FA20, 0, 0x22F680), file_attributes -1
42 2364567 [main] ctags 7320 fhandler_base::open: (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000) query_open 0
71 2364638 [main] ctags 7320 seterrno_from_win_error: /netrel/src/cygwin-1.3.22-1/winsup/cygwin/fhandler.cc:472 windows error 3
37 2364675 [main] ctags 7320 geterrno_from_win_error: windows error 3 == errno 2
42 2364717 [main] ctags 7320 fhandler_base::open: 0 = fhandler_base::open (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000)
35 2364752 [main] ctags 7320 fhandler_disk_file::open: 0 = fhandler_disk_file::open (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000)
33 2364785 [main] ctags 7320 fhandler_base::open: (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000) query_open 1
65 2364850 [main] ctags 7320 seterrno_from_win_error: /netrel/src/cygwin-1.3.22-1/winsup/cygwin/fhandler.cc:472 windows error 3
35 2364885 [main] ctags 7320 geterrno_from_win_error: windows error 3 == errno 2
32 2364917 [main] ctags 7320 fhandler_base::open: 0 = fhandler_base::open (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000)
33 2364950 [main] ctags 7320 fhandler_disk_file::open: 0 = fhandler_disk_file::open (C:\usr\cygwin\mnt\c\DOCUME~1\liddins\LOCALS~1\Temp, 0x110000)
33 2364983 [main] ctags 7320 fhandler_disk_file::fstat_by_name: already determined that pc does not exist
34 2365017 [main] ctags 7320 stat_worker: -1 = (/mnt/c/DOCUME~1/liddins/LOCALS~1/Temp, 0x22FA20)
52 2365069 [main] ctags 7320 writev: writev (2, 0x22E120, 1)
34 2365103 [main] ctags 7320 fhandler_base::write: binary write
ctags: 43 2365146 [main] ctags 7320 fhandler_base::write: 7 = write (0x22E1B0, 7)
32 2365178 [main] ctags 7320 writev: 7 = write (2, 0x22E120, 1), errno 2
37 2365215 [main] ctags 7320 writev: writev (2, 0x22E140, 1)
32 2365247 [main] ctags 7320 fhandler_base::write: binary write
cannot open temporary file 40 2365287 [main] ctags 7320 fhandler_base::write: 26 = write (0x22E1D0, 26)
31 2365318 [main] ctags 7320 writev: 26 = write (2, 0x22E140, 1), errno 2
51 2365369 [main] ctags 7320 writev: writev (2, 0x22E120, 1)
33 2365402 [main] ctags 7320 fhandler_base::write: binary write
: No such file or directory 39 2365441 [main] ctags 7320 fhandler_base::write: 28 = write (0x22E1B0, 28)
32 2365473 [main] ctags 7320 writev: 28 = write (2, 0x22E120, 1), errno 2
45 2365518 [main] ctags 7320 writev: writev (2, 0x22FA50, 1)
33 2365551 [main] ctags 7320 fhandler_base::write: binary write
39 2365590 [main] ctags 7320 fhandler_base::write: 1 = write (0x610CB3CF, 1)
32 2365622 [main] ctags 7320 writev: 1 = write (2, 0x22FA50, 1), errno 2
47 2365669 [main] ctags 7320 do_exit: do_exit (1)
I have no idea where the \mnt\c\DOCUME~1\liddins\LOCALS~1\Temp came
from. "liddins" is not a name which occurs anywhere on my machine,
our local subnet or the ctags source. In fact, a google on liddins
returns nothing (kind of cool, that).
After poking around some more I've found that setting the TMPDIR
environment variable to $TMP solves the problem. Scanning the source
I see that TMPDIR is used as a configuration option to specify a
default temporary directory. A strings on the ctags binary yeilds:
12 osaka:cimsoft$ strings /bin/ctags.exe | grep liddins
/mnt/c/DOCUME~1/liddins/LOCALS~1/Temp
My conclusion: Maybe the most recent release of ctags has a
compiled-in default directory of .../liddins/... and that this
directory is used if the TMPDIR environment variable is otherwise
undefined.
Comments?
Thanks,