В какой-то момент после запуска моего webapp я начинаю получать предупреждения Can't handle a new request, too many request threads already
от hunchentoot с соответствующим ответом на HTTP-сервис, недоступным в браузере. Проблема заключается в том, что это никогда не возвращается к нормальной обработке запросов, то есть, если какой-либо обработчик запросов «зависает», даже не возвращаясь, когда при вызове достаточного количества этих обработчиков максимальное количество потоков попадает и остается таким. Как я могу получить список текущих потоков и проверить текущий стек вызовов одного из них, чтобы я мог проверить, где проблема? Это даже имеет смысл? Я не получаю никаких других предупреждений. Любые советы о том, как начать расследование?Отладка обработчиков запросов в hunchentoot
3
A
ответ
2
Я наблюдаю то же поведение с SBCL (в Windows). Кажется, что проблема заключается в том, что клиент отправляет заголовок Keep-Alive, который выполняет хенчэнт-почет, сохраняя рабочий поток после обработки запроса. Он сидит в режиме ожидания, ожидая дальнейшего ввода, но, к сожалению, кажется, что сокет никогда не истекает, и нить никогда не прекращается, поэтому я очень быстро попал на неработоспособный сервер. Это похоже на проблему с Windows, потому что тот же код отлично работает под Linux (Ubuntu).
@Paralife вы можете приостановить поток и проверить его стек вызовов с
(BT: прерывание-нить нить перерыв # ')
Вы можете получить нить, Вы хотите использовать (Bt: все-ниточный).
Смежные вопросы
- 1. Несколько обработчиков запросов обратного вызова?
- 2. Синхронизация асинхронных обработчиков запросов в среде Silverlight
- 3. Отладка запросов PDO, как?
- 4. Отладка запросов LINQ
- 5. Отладка таинственных запросов PHP
- 6. Отладка запросов веб-службы
- 7. Требуется отладка SQL запросов
- 8. Отладка GQL запросов
- 9. Удаление элементов по умолчанию из сервера Hunchentoot
- 10. Изменение текущего пакета hunchentoot
- 11. Список переадресаций Hunchentoot
- 12. Как начать Hunchentoot?
- 13. CQRS - Несколько обработчиков команд/запросов внутри eachother
- 14. GAE Webapp: стоимость импорта кучи запросов обработчиков
- 15. Оптимизация и отладка запросов MySQL
- 16. Отладка SQL-запросов в SQuirrel-sql
- 17. Отладка не-браузеров HTTP-запросов в PHP
- 18. Отладка SQL-запросов в команде консоли Symfony2
- 19. Hunchentoot/сл-кто композиция страницы
- 20. Отправка Hunchentoot по HTTP-методу
- 21. Как обрабатывать несколько файлов в hunchentoot?
- 22. Не могу получить сообщение в LISP hunchentoot
- 23. Как вы используете несколько обработчиков запросов в node.js?
- 24. отладка контроллера рельсов, создающего слишком много запросов
- 25. Отладка статических запросов файлов от IIS6
- 26. Отладка SQL-запросов с помощью Spring JDBC
- 27. Отладка поисковых запросов Solr на Sunspot
- 28. Тесты обработчиков Netty SSL-обработчиков
- 29. Отладка веб-запросов на устройстве Android
- 30. Не удалось найти обработчиков для запросов logger.packages.urllib3.connectionpool
hunchentoot использует бордо-нитки. '(bt: all-threads)' будет перечислять текущие потоки. – martin
@severin Как просмотреть или отслеживать определенный поток, чтобы увидеть дерево вызовов во время его работы? – Paralife