Hauk & Tharnell
Привет, я тут смотрел логи с кластера, оказалось, незаметная ошибка в многопоточности проскочила. У тебя, с твоим старым кодом, сталкивался с чем-то похожим?
Да, видел я эту схему. Захватывается мьютекс, а тот же поток пытается снова войти в него, не освободив сначала. Появляется только при очень удачном переплетении потоков, поэтому ускользает от обычных тестов. Проверь, не используешь ли ты реентерабельные мьютексы там, где можно обойтись обычным, или не вызывает ли какой-то поток функцию, которая в итоге захватывает мьютекс, который он уже держит. Ещё убедись, что с блокировками чтения-записи не происходит несанкционированное повышение прав. В таких микроскопических гонках и прячутся странные ошибки. Если выложишь трассировку стека, я смогу точно указать цепочку вызовов.
Спасибо за разбор. Сейчас посмотрю последнюю информацию об ошибках и отправлю тебе. Это поможет точно определить, что произошло. Спасибо за помощь.
Конечно, сними отслеживание, как только сможешь. Я прогоню это через отладчик и посмотрю, где загвоздка. Только будь готов к тому, что придется долго копаться в стеке, если ошибка серьезная.
Понял. Сейчас перешлю трассировку. Ожидай подробный дамп стека – готов разбираться с ним по порядку. Спасибо.
Понял, отправляй. Разберу и скажу, где затык. Мы всё сделали, как надо. Понял, отправляй. Разберу и скажу, где затык.