You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the case of EMFILE, the process has it its file descriptor limit. Odds are extremely high that EMFILE will happen again in this kind of tight loop. Also, the condition can last long enough that the actor's behavior call doesn't return promptly, which can occupy an entire Pony runtime scheduler thread ... and, worst case, occupy all available scheduler threads. Credit to @JONBRWN for discovering this scenario with a 30 worker Wallaroo cluster and a Linux ulimit -n value of 1024.
The text was updated successfully, but these errors were encountered:
Today's
master
branch's commit 1ea9650 for https://github.com/WallarooLabs/wallaroo/blob/master/lib/wallaroo/core/data_channel/data_channel_listener.pony#L174-L187 shows that if@pony_os_accept()
call fails, then there's an immediate retry. For some error conditions, this is fine, but for other conditions, such asEMFILE
, this is bad.In the case of
EMFILE
, the process has it its file descriptor limit. Odds are extremely high thatEMFILE
will happen again in this kind of tight loop. Also, the condition can last long enough that the actor's behavior call doesn't return promptly, which can occupy an entire Pony runtime scheduler thread ... and, worst case, occupy all available scheduler threads. Credit to @JONBRWN for discovering this scenario with a 30 worker Wallaroo cluster and a Linuxulimit -n
value of1024
.The text was updated successfully, but these errors were encountered: