madf: (Default)
[personal profile] madf
Є у мене одна софтинка, написана для GTS, якою я пишаюсь. CMake, Boost, ключі і конфігураційний файл, плагіни, дуже ідіоматично написана, близько до мого ідеалу. . І у ній знайшлась дуже тупа бага. В залежності від типу зборки вона або взагалі не падала, або падала з таким повідомленням:
nfa: /usr/include/boost/thread/pthread/mutex.hpp:50: void boost::mutex::lock(): Assertion `!pthread_mutex_lock(&m)' failed.

або з таким:
nfa: pthread_mutex_lock.c:312: __pthread_mutex_lock_full: Assertion `(-(e)) != 3 || !robust' failed.

При чому падала тільки у production, локально усе було нормально. А проблема виявилась у неправильному порядку слідування членів класу плагіну. thread ініціалізувався і запускався раніше ніж ініціалізувався mutex. І у production він встигав спробувати цей mutex захопити.
Дивно інше: як так вийшло що я не проганяв перед релізом софтинку через valgrind?

PS: ні, я у GTS не повернувся. Просто виконую деякі їх побажання за домовленістю.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

madf: (Default)
madf

April 2018

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 23rd, 2025 09:52 pm
Powered by Dreamwidth Studios