darcs

Issue 2240 getSymbolicLinkStatus: inappropriate type (Not a directory)

Title getSymbolicLinkStatus: inappropriate type (Not a directory)
Priority Status given-up
Milestone Resolved in
Superseder Nosy List maltem
Assigned To
Topics

Created on 2012-09-16.20:18:39 by maltem, last changed 2017-07-31.00:48:23 by gh.

Files
File name Uploaded Type Edit Remove
debug.log maltem, 2012-09-17.09:05:20 text/x-log
files maltem, 2012-09-17.09:07:55 application/octet-stream
Messages
msg16095 (view) Author: maltem Date: 2012-09-16.20:18:36
$ darcs --version
2.8.0 (release)
$ darcs get http://darcs.net/
darcs: darcs.hs-0: getSymbolicLinkStatus: inappropriate type (Not a
directory)

I thought that I might have a corrupted cache, but deleting it didn't
help. Needless to say, the repository appears very incomplete, both the
working and the _darcs directory. Same problem with any other official
repository of the darcs source code.

The local filesystem is ext4, should this make any difference.

I'm afraid I cannot currently try with 2.8.2 due to my ghc being 7.6.1
(or is this just a matter of adjusting the version bounds?), and I
cannot try HEAD for obvious reasons.
msg16096 (view) Author: owst Date: 2012-09-16.20:47:18
Hmm! I'm not sure why this is happening. Presumably, this some flavour
of Linux?

`darcs get http://darcs.net/ --debug-verbose` may spit out something
else that suggests problems.

Some thoughts for investigation:
- Is the device full? 
- Is there a file/directory existing called darcs.net? (can you try
again in a clean directory)
- Have you tried adding --no-cache, or did you try deleting your
~/.darcs/cache folder?
msg16097 (view) Author: maltem Date: 2012-09-17.09:05:20
Here's the output of darcs get http://darcs.net/ --debug-verbose
--no-cache. (Nothing enlightening for me in there, but maybe for you.) I
had also wiped out ~/.darcs/cache/. The device is not full at all, and
an existing darcs.net does not affect the outcome (darcs will move on to
darcs.net_0).

This is on Arch Linux, but with the darcs binary from darcs.net.
Attachments
msg16098 (view) Author: maltem Date: 2012-09-17.09:07:55
Also, here's the list of files that do get created before the failure.
Attachments
msg16099 (view) Author: owst Date: 2012-09-17.09:20:08
Thanks for the output files. Did the log you send come from a get after
blowing away the cache? Otherwise, it's very short!

I'll have a better look later, I didn't spot anything obvious though.
msg16125 (view) Author: maltem Date: 2012-09-27.14:06:24
To finally deliver a reply: I'm sure now that this is totally unrelated
to the cache. Furthermore I found that darcs 2.5.2 (binary from the
website) has no such problems.

The log is so short because darcs fails so early, I think.

Now, for the error messageā€¦ according to the documentation of
getSymbolicLinkStatus, it seems to come from lstat(), the man page of
which says about error codes:

  ENOENT   A component of path does not exist, or path is an empty string.
  ENOTDIR  A component of the path prefix of path is not a directory.

I'm very confused why this should not be reproduceable; even funnier,
another repository which exhibits this problem is
http://code.haskell.org/haskeline, but for that one it doesn't even
happen consistently for me. For example, once I got:

  $ darcs get http://code.haskell.org/haskeline --no-cache
  Directory '/home/maltem/haskeline' already exists, creating repository
as '/home/maltem/haskeline_1'
  Copying patches, to get lazy repository hit ctrl-C...
  Finished getting.                                           
  darcs:
/home/maltem/haskeline_1/_darcs/patches/0000000637-47d49aea2dfc48e229437778e73aa5a1b50c8520e27a8614742ba14011acd018-new_33e8e3f27abfe01c9b7b908dae3bcedd:
getSymbolicLinkStatus: does not exist (No such file or directory)

(The file does indeed not exist.) On other attempts, the same command
does not print the error, or prints the same error with a different path.

I noticed that the darcs binaries are 32-bit, so I should really try
with a custom build. At the moment I'm just too lazy to downgrade ghc.
msg16126 (view) Author: maltem Date: 2012-09-27.18:07:14
By the way, in the darcs.net repository got by 2.5.2:

    $ darcs --version
    2.8.0 (release)

    $ darcs test
    Running test on current repository state.
    darcs: darcs: removeLink: inappropriate type (Is a directory)

    $ darcs check
    The repository is consistent!
    Extra items in index!
      darcs
      darcs/darcs.hs

    Hash mismatch(es)!
    darcs/darcs.hs
        index:
3df87919ef5ed4899e843f869709a1cd8ccf1f0ae7082a43219f26487f4cf1bc
      working:
    darcs
        index:
3638217cbaafe09b5089956fd139a99d0b3c2474272513bdf6f1f5315b64c952
      working:

    Bad index.

    $ ~/dist/darcs --version
    2.5.2 (release)

    $ ~/dist/darcs check
    The repository is consistent!
msg16127 (view) Author: owst Date: 2012-09-27.18:16:37
>   $ darcs get http://code.haskell.org/haskeline --no-cache
>   Directory '/home/maltem/haskeline' already exists, creating repository
> as '/home/maltem/haskeline_1'
>   Copying patches, to get lazy repository hit ctrl-C...
>   Finished getting.                                           
>   darcs:
>
/home/maltem/haskeline_1/_darcs/patches/0000000637-47d49aea2dfc48e229437778e73aa5a1b50c8520e27a8614742ba14011acd018-new_33e8e3f27abfe01c9b7b908dae3bcedd:
> getSymbolicLinkStatus: does not exist (No such file or directory)
> 
> (The file does indeed not exist.) On other attempts, the same command
> does not print the error, or prints the same error with a different path.

This particular error (where there is a filename of the pattern
.*-new_.* and the error is getSymbolicLinkStatus: does not exist) is a
bug in our downloader, and is in fact a red herring. (it's
http://bugs.darcs.net/issue2061)

I'm still not sure what to try to make progress on this issue. Does the
error you originally reported (not the downloader error) happen on any
other remote repos?
msg16128 (view) Author: maltem Date: 2012-09-28.11:40:34
> I'm still not sure what to try to make progress on this issue. Does the
> error you originally reported (not the downloader error) happen on any
> other remote repos?

None that crossed my fingers. So, what about the "bad index" thing?
msg16129 (view) Author: owst Date: 2012-09-28.13:03:58
> So, what about the "bad index" thing?

I'm not sure, but I imagine because the download of files failed, that
there's some sort of mangled internal state vs. working dir contents
going on, causing the index error. I'm not convinced it tells us much
unfortunately, but I'll keep it in mind.
History
Date User Action Args
2012-09-16 20:18:39maltemcreate
2012-09-16 20:47:19owstsetmessages: + msg16096
2012-09-17 09:05:23maltemsetfiles: + debug.log
messages: + msg16097
2012-09-17 09:07:57maltemsetfiles: + files
messages: + msg16098
2012-09-17 09:20:11owstsetmessages: + msg16099
2012-09-27 14:06:26maltemsetmessages: + msg16125
2012-09-27 18:07:17maltemsetmessages: + msg16126
2012-09-27 18:16:38owstsetmessages: + msg16127
2012-09-28 11:40:36maltemsetmessages: + msg16128
2012-09-28 13:03:59owstsetmessages: + msg16129
2017-07-31 00:48:23ghsetstatus: unknown -> given-up