litxio / ptghci

High-powered REPL for Haskell, inspired by IPython
Other
336 stars 6 forks source link

segfault #5

Closed makslevental closed 5 years ago

makslevental commented 5 years ago

followed instructions on ubuntu 18.10. ran ptghci. got

(venv) maksim@maksim-G3-3579:~/dev_projects/ptghci$ ptghci 
**Engine stopping**
Segmentation fault (core dumped)
RichardWarfield commented 5 years ago

Could you try setting verbosity: Trace and logFile: "ptghci.log" in ptghci.yaml, and let me know what gets written to the log file?

chrisgrounds commented 5 years ago

I get a mix of errors:

~/ptghci(master) » ptghci                                                                                                                                                    
**Engine stopping**
[1]    21665 segmentation fault (core dumped)  ptghci
------------------------------------------------------------
~/ptghci(master) » ptghci                                                                                                                                                    
Traceback (most recent call last):
  File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'ptghci'

And also the engine-stopped one:

**Engine stopping**
Leaving 
Exiting...

log file:

Sending response: LoadMessagesResponse {success = True, messages = [LoadGhciVersion {loadVersion = "8.6.4"},LoadConfig {loadFile = "/home/chrisbacon/.ghci"},Loading {loadModule = "Language.Haskell.Ghcid.Escape", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/Ghcid/Escape.hs"},Loading {loadModule = "Language.Haskell.Ghcid.Types", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/Ghcid/Types.hs"},Loading {loadModule = "Language.Haskell.Ghcid.Parser", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/Ghcid/Parser.hs"},Loading {loadModule = "Language.Haskell.Ghcid.Util", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/Ghcid/Util.hs"},Loading {loadModule = "Language.Haskell.PtGhci", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci.hs"},Loading {loadModule = "Language.Haskell.PtGhci.Prelude", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/Prelude.hs"},Loading {loadModule = "Language.Haskell.PtGhci.Orphans", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/Orphans.hs"},Loading {loadModule = "Language.Haskell.PtGhci.Ghci", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/Ghci.hs"},Loading {loadModule = "Language.Haskell.PtGhci.Exception", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/Exception.hs"},Loading {loadModule = "Language.Haskell.PtGhci.Config", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/Config.hs"},Loading {loadModule = "Language.Haskell.PtGhci.Env", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/Env.hs"},Loading {loadModule = "Language.Haskell.PtGhci.Log", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/Log.hs"},Loading {loadModule = "Language.Haskell.PtGhci.PtgRequest", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/PtgRequest.hs"},Loading {loadModule = "Language.Haskell.PtGhci.PtgResponse", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/PtgResponse.hs"},Loading {loadModule = "Language.Haskell.PtGhci.WebBrowser", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/WebBrowser.hs"},Loading {loadModule = "Language.Haskell.PtGhci.Doc", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/Doc.hs"},Loading {loadModule = "Language.Haskell.PtGhci.Engine", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/Engine.hs"},Loading {loadModule = "Paths_ptghci", loadFile = "/home/chrisbacon/ptghci/.stack-work/dist/x86_64-linux/Cabal-2.4.0.1/build/autogen/Paths_ptghci.hs"},Loading {loadModule = "Language.Haskell.PtGhci.StartPy", loadFile = "/home/chrisbacon/ptghci/src/Language/Haskell/PtGhci/StartPy.hs"},Loading {loadModule = "Main", loadFile = "/home/chrisbacon/ptghci/app/Main.hs"},LoadConfig {loadFile = "/tmp/haskell-stack-ghci/dd583f09/ghci-script"}]}
ZMQError { errno = 88, source = "send", message = "Socket operation on non-socket" }
RichardWarfield commented 5 years ago

I've managed to reproduce this behavior under certain circumstances. There seems to be an issue where the socket file descriptor held by zeromq4-haskell goes bad for some reason. I've opened an upstream issue here.

One thing I've noticed is that, oddly enough, the issue never occurs in a profiling build (stack install --profile). You might try that as a temporary band-aid. I'd be interested to hear if it works for others.

chrisgrounds commented 5 years ago

stack install --profile worked for me! Cheers @RichardWarfield

ShrykeWindgrace commented 5 years ago

@RichardWarfield worked for me, too! Thanks!

RichardWarfield commented 5 years ago

Closing this as it seems to be an issue with zeromq and the workaround seems to be working.