[Haskell-cafe] getSymbolicLinkStatus completely broken on some 6.8.2 systems

Jeremy Shaw jeremy.shaw at linspireinc.com
Tue Feb 12 23:38:22 EST 2008


Hello,

I get funny results when I call getSymbolicLinkStatus in ghc 6.8.2 on
Ubuntu 7.10. This happens on several systems and has been confirmed by
other people. Though, some people on almost the exact same system
claimed to not see it at all. Here is an interactive example with
ghci, note how the result changes from run to run. (Although not shown
below, the values do sometimes repeat, so it is not completely
random):

Prelude> System.Posix.Files.getSymbolicLinkStatus "/etc/motd" >>= print .  System.Posix.Files.fileID
13165085651657739420
Prelude> System.Posix.Files.getSymbolicLinkStatus "/etc/motd" >>= print .  System.Posix.Files.fileID
13165312309966851228
Prelude> System.Posix.Files.getSymbolicLinkStatus "/etc/motd" >>= print .  System.Posix.Files.fileID
623410571888290073
Prelude> System.Posix.Files.getSymbolicLinkStatus "/etc/motd" >>= print .  System.Posix.Files.fileID
12892261005034

If I *compile* the following (with or without optimization):

module Main where

import System.Posix.Files

main =
    do getSymbolicLinkStatus "/etc/motd" >>= print . fileID
       getSymbolicLinkStatus "/etc/motd" >>= print . fileID
       getSymbolicLinkStatus "/etc/motd" >>= print . fileID
       getSymbolicLinkStatus "/etc/motd" >>= print . fileID

Then I get all 0:

/tmp # ./test
0
0
0
0

I have tested the same code under GHC 6.6 and 6.4 and it works fine.

Additionally, getFileStatus, seems to work fine
everytime. (Unfortunately, I really need getSymbolicLinkStatus).

If anyone has a work-around or fix that I can use in the next 15
hours, that would be extremely useful ;)

Thanks in advance!
j.


More information about the Haskell-Cafe mailing list