Yesod devel InternalError-“ devel.hs:signal:15”

问题描述 投票:0回答:1

我有一个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仍显示“应用程序未构建”页面。

我尝试过:

  • 删除并重新安装最新的堆栈,yesod-bin等。>
  • 删除〜/ .stack和.stack-work并重新编译所有内容
  • 检查是否存在诸如postgres-dev,sqlite3,zlib1g-dev等的库
  • 任何人都可以提供有关此错误含义和下一步尝试的任何线索吗?

系统:

  • Ubuntu 18.04运行内核4.15.0-72-通用x64
  • 堆栈2.1.3
  • yesod-bin 1.6.0.3
  • ghc 8.6.4
  • 感谢您的帮助!

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个固定的东西。

haskell yesod haskell-stack
1个回答
0
投票

我终于知道这里发生了什么。

© www.soinside.com 2019 - 2024. All rights reserved.