我终于知道这里发生了什么。
我有一个yesod应用程序,可以在我的主开发机上编译并正常运行(Ubuntu 16.04)。今天,我在另一台运行Ubuntu 18.04的计算机上克隆了仓库。它编译正常,但是当我尝试在开发模式下运行时:
stack exec yesod -- devel
它会编译,但在localhost:3000上显示“未构建应用程序”页面。当我按Enter进行重新编译时,出现如下错误:
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.
如您所见,它表示构建成功,并等待更改。localhost:3000仍显示“应用程序未构建”页面。
我尝试过:
任何人都可以提供有关此错误含义和下一步尝试的任何线索吗?
系统:
感谢您的帮助!
Update
:基于我尝试过的第一个评论stack exec -- yesod devel
以及
yesod devel
这三个调用都导致在18.04计算机上具有相同的行为和错误,并且所有三个调用在16.04计算机上均按预期工作。因此,我认为这与yesod的开发模式的调用方式无关。
最后,当我用调用时,已编译的应用程序可以正常工作
stack exec my-app -- settings.yml
所以这似乎是关于yesod开发的。
我有一个yesod应用程序,可以在我的主开发机上编译并正常运行(Ubuntu 16.04)。今天,我在另一台运行Ubuntu 18.04的计算机上克隆了仓库。它编译正常,但是当我尝试在...中运行]] >>
我终于知道这里发生了什么。
我在开发过程中使用的是sqlite数据库。在几个月前尝试对其他问题进行故障排除时,我已将sqlite poolsize设置为1,但未将其重新设置。
这导致一些数据库插入在服务器启动之前阻止了某些事情。这仅在建立新开发数据库期间以开发模式显示。
将settings.yml中的sqlite池大小设置为10个固定的东西。
我终于知道这里发生了什么。