• дыбр Haskell СЯУ, что при определенных пока не поддающихся упрощению обстоятельствах warp перестаёт закрывать сокеты, оставляя их в close-wait до полного исчерпания. пока не понятно, как нужно составить, отправить и рубануть запрос, чтобы сервер вёл себя так.

Replies (4)

  • @agr, Ололо, скомпилированная программа на хаскеле всегда работает. Так заканчиваются детские мечты
  • @agr, Помнится, Никлас рассказывал вот про этот баг — github.com но он уже закрыт...
  • @qrilka, Ещё такой был (тоже закрыт):

    github.com
  • @agr, да, я смотрел на трекер в поисках похожих ошибок.
    кажется, тут другой баг.. и я ещё не добрался до его истоков.

    для начала сделаю кастомный warp с выводом в STDOUT инфы для отладки:
    — сокеты,
    — файловые дескрипторы.

    затем подберу комбинацию настроек NGINX, стоящего перед warp, и /etc/sysctl.conf.

    после чего задам клиентов, закрывающих соединение через 10, 50, 100, ..., 1000 микросекунд. и ограничу FD.

    и отправлю через них череду тестовых запросов через NGINX в warp для воспроизведения ситуации.