работает месяц, и внезапно перестает работать, отправка в канал, из которого эти горутины-воркеры читают невозможна, поэтому срабатывает <-time.After в select'е.
pprof
pprof разве покажет если они именно залочились?
Есть вариант, что они просто завершились
да вот нет, я в defer воркеров написал log.Fatal и нет..
да, покажет мьютексы, на которых оно прилипло
тут недавно @schors показывал нам ловкий фокус с sync.WaitGroup в defer
А он тоже возможно ждет
Я до сих пор ору вспоминая
что за фокус, можете ссылку скинуть?
Любая паника в горутине ждет завершения всех defer. У меня был в начале горутины запуск ещё горутин и defer wg.Wait(). Поскольку дочерние горутины ничего не знали про то, что им надо завершиться, то всё зависало на wg.Wait(). При любой панике
а куда именно смотреть? у меня в топе функция которая просто ходит по массиву и проверяет элементы, там нет мьютексов вообще
я говорил про web pprof
а я в каком?
Обсуждают сегодня