Nim应用程序拒绝在heroku上运行

时间:2015-09-27 03:10:48

标签: heroku nim

我正在使用nim buildpack在heroku上运行一个简单的jester服务器。但是,asyncnet库有时会拒绝使用heroku提供的端口(每次都不同)。如果nim不喜欢端口会发生什么:

Traceback (most recent call last)
macros.nim(293)          blog
jester.nim(326)          serve
asyncdispatch.nim(282)   asyncCheck
asyncdispatch.nim(224)   callback=
asyncdispatch.nim(286)   :anonymous
Error: unhandled exception: value ot of range: 58622 [Exception]

Original stack trace in serve:
Traceback (most recent call last)
macros.nim(293)          blog
jester.nim(326)          serve
asyncdispatch.nim(1212)  serve
asyncdispatch.nim(1199)  cb
asyncnet.nim(433)        bindAddr
asynchttpserver.nim(250) serveIter

Continuing...

(我确定58622是heroku尝试提供程序的端口。)当我使用端口58622在本地运行时,服务器工作正常。为什么会这样?

1 个答案:

答案 0 :(得分:3)

你似乎偶然发现了Nim套接字代码中的一个错误。好消息是它已经在Github的编译器的devel版本中得到修复,在0.11.2中被破坏here。我的猜测是,在Heroku上你使用的是Nim 0.11.2,这是最新版本,在你的本地计算机上你正在使用没有这个bug的devel版本。

在任何情况下,解决方案都应该是更新heroku使用的Nim版本。