gpt4 book ai didi

在 hunchentoot 中调试请求处理程序

转载 作者:行者123 更新时间:2023-12-02 01:57:59 27 4
gpt4 key购买 nike

在我的 webapp 启动后的某个时候,我开始收到 Can't handle a new request, too many request threads already来自 hunchentoot 的警告,以及浏览器中相应的 http-service-unavailable 响应。问题是这永远不会返回到正常的请求处理,即好像某些请求处理程序“挂起”而从未返回,因此当调用足够多的这些处理程序时,最大线程数将被命中并保持这种状态。如何获取当前线程的列表并检查其中一个线程的当前调用堆栈,以便我可以检查问题出在哪里?这甚至有意义吗?我没有收到其他警告。有关如何开始调查的任何建议?

最佳答案

我在 SBCL(在 Windows 上)看到了相同的行为。问题似乎是客户端正在发送 Keep-Alive header ,hunchentoot 通过在处理请求后保持工作线程运行来兑现。它处于空闲状态,等待进一步的输入,但不幸的是,套接字似乎永远不会超时,线程也永远不会被终止,所以我很快就遇到了一个无法运行的服务器。这似乎是 Windows 特定的问题,因为相同的代码在 (Ubuntu) Linux 下运行良好。

@Paralife 你可以暂停一个线程并检查它的调用堆栈

(bt:interrupt-thread thread #'break)

您可以使用 (bt:all-threads) 获取您想要的线程。

关于在 hunchentoot 中调试请求处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18806509/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com