Closed akhoroshev closed 3 months ago
Вообще есть еще одна претензия к DoPush
https://github.com/userver-framework/userver/blob/develop/core/include/userver/concurrent/queue.hpp#L401 и https://github.com/userver-framework/userver/blob/develop/core/include/userver/concurrent/queue.hpp#L405
не стоило делать одной транзакцией? Если два треда провалятся в DoPush одновременно в итоге может более totalcapacity элементов оказаться в очереди
не стоило делать одной транзакцией? Если два треда провалятся в DoPush одновременно в итоге может более totalcapacity элементов оказаться в очереди
"Это не баг, это фича", длина очереди может незначительно превышать лимит под нагрузкой, как и описано в доке
Воспроизведение:
Чтобы лучше воспроизводилось надо "пропатчиить" это место (суть патча добавить sleep чтобы разломать инварианты)
По итогу сниппет кода виснет намертво с таким stdout: