Skip to content

PermissionDenied exception related to MoveFileEx on Windows #1904

Open
@SiriusStarr

Description

@SiriusStarr

(Opening an issue here rather than keeping it on Slack.)

Windows builds of a project using Dhall (in Haskell) have been failing seemingly at random on Github's CI. Sometimes the tests succeed normally, sometimes they fail (always in this way). I've been unable to reproduce the problem on an actual Windows computer, where the whole test suite passes fine.

uncaught exception: IOException of type PermissionDenied
C:\Users\runneradmin\AppData\Local\dhall-haskell\ato5C23.write: renameFile:renamePath:MoveFileEx "\\\\?\\C:\\Users\\runneradmin\\AppData\\Local\\dhall-haskell\\ato5C23.write" Just "\\\\?\\C:\\Users\\runneradmin\\AppData\\Local\\dhall-haskell\\122026a29e0113646fb623fba2a6657b31b99127b689d510ef6761df7dd49da8a5bb": permission denied (Access is denied.)

The hex values change, e.g. this was another error thrown on a different build:

uncaught exception: IOException of type PermissionDenied
C:\Users\runneradmin\AppData\Local\dhall-haskell\atoCD11.write: renameFile:renamePath:MoveFileEx "\\\\?\\C:\\Users\\runneradmin\\AppData\\Local\\dhall-haskell\\atoCD11.write" Just "\\\\?\\C:\\Users\\runneradmin\\AppData\\Local\\dhall-haskell\\12205b43b1207f0c5f69e80a94bf78d52a2b2189b2658a70652cb805001ced08b5ae": permission denied (Access is denied.)

The test in question that is failing is simply importing a Dhall expression from a file (using Dhall.inputFile) and comparing it to an expected Haskell value (i.e. no file manipulation is occurring beyond whatever Dhall.inputFile is doing). It is always the very first import on a test run that fails, with all others seeming to succeed fine.

Turning off hspec's parallel spec evaluation just for this first spec seems to fix the error, even though parallel spec evaluation can be on for any number of other specs that also include Dhall.inputFile. So this may be a non-issue, but it still seems peculiar, since it seems to be Windows-specific.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions