Skip to content

Compiled software can not read UTF-8 characters using readFile when run via Upstart

Honestly I dont know if this is a problem with Upstart or ghc.

I'm Using Ubuntu 14

Create a software that reads from a file containing UTF-8 characters. Compile the program. Running the program from the terminal works but not if you run it via Upstart. It will crash with the following error: "hGetContents: invalid argument (invalid byte sequence)"

Minimal Example: Main.hs:

module Main where

main :: IO ()
main = readFile "ex.txt" >>= putStr

ex.txt:

å

Place ex.txt and the compiled program "Comp" in the same directory "/the/path/"

/etc/init/bug-test.conf:

start on runlevel [2345]
stop on runlevel [^2345]

chdir /the/path/

exec ./Comp

If you run ./Comp from the terminal it works. But if you run "sudo service bug-test start" and then check "/var/log/upstart/bug-test.log" you will see that it has crashed.

Trac metadata
Trac field Value
Version 7.10.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information