Brendan
Brendan

Reputation: 66

Yesod devel InternalError - "devel.hs: signal: 15"

I have a yesod app that compiles and runs fine on my main dev machine (Ubuntu 16.04). Today I cloned the repo on another machine running Ubuntu 18.04. It compiles fine, however when I try to run in devel mode:

stack exec yesod -- devel

it compiles but shows the 'Application isn't built' page at localhost:3000. When I press enter to recompile I get an error like so:

devel.hs: runFakeHandler issue: InternalError "devel.hs: signal: 15"
CallStack (from HasCallStack):
  error, called at src/Yesod/Core/Unsafe.hs:24:14 in yesod-core-1.6.14-8UP8zoy9zgT7ImCVVtHxpr:Yesod.Core.Unsafe
Success! Waiting for next file change.
Type help for available commands. Press enter to force a rebuild.
Starting devel application
Devel application launched: http://localhost:3000
Made application.

As you can see, it then says the build was successful, and waits for changes. localhost:3000 still shows the 'application isn't built' page.

I have tried:

Can anyone give me any clues as to what this error means and what to try next?

System:

Thanks for any help!

Update: Based on the first comment I have tried

stack exec -- yesod devel

as well as

yesod devel

All three invocations result in the same behaviour and error described above on the 18.04 machine, and all three work as expected on the 16.04 machine. Therefore I don't think it's about how yesod's dev mode is being called.

Finally, the compiled app works correctly when I call it with

stack exec my-app -- settings.yml

so this seems to be specifically about yesod devel.

Upvotes: 1

Views: 169

Answers (1)

Brendan
Brendan

Reputation: 66

I finally figured out what was going on here.

I was using an sqlite database during development. While trying to troubleshoot something else months ago, I had set the sqlite poolsize to 1, and had not set it back.

This was causing some database inserts to block things before the server started. This only showed up in devel mode during setup of a new development database.

Setting the sqlite poolsize in settings.yml to 10 fixed things.

Upvotes: 1

Related Questions