pthreads, mutexes and WINE

Ivan8209

Оно заколебало, подскажите ссылки, как более или менее
эффективно отлаживать такую ерунду:

wine: Error detected by libpthread: Unlocking unlocked mutex.
Detected by file "/usr/src/lib/libpthread/pthread_mutex.c", line 363, function "pthread_mutex_unlock".
See pthread(3) for information.

То есть, ну получу я core dump, а дальше?
Читать мегабайты исходников?
Ставить отладочные точки?
У меня и своих забот хватает.
Может, кто уже сталкивался с подобными вещами или "эмуляторы и
прочие садо-мазо атрибуты" вышли из обращения?
То есть, оно не очень критично, оно так повисает не всегда,
в половине случаев, и выпадает по SIGINT, правда, оставляя в
памяти какого-то демона, интенсивно пожирающего время.
Демон имеет особенность иногда не умирать по SIGTERM, это,
конечно же, лечится скриптом. Пока что. Поддержка WINE молчит,
а хочется "чего-нибудь такого". Например, чтобы оно выпадало с
на порядок (хотя бы двоичный) меньшей частотой.
---
"Про эмуляторы и прочие садомазо-атрибуты мы помним."

Marinavo_0507

Ты правда хочешь отлаживать, или ждёшь совета забить на бесплатную поделку и пойти купить настоящую винду с настоящей техподдержкой?

Ivan8209

Ты не помнишь, как это Зощенко писал? Примерно так:
"Я хочу, чтобы Советское правительство поступило со мной
как угодно, но только как-нибудь да поступило."
Я готов написать ещё один (седьмой за неделю в FOSS) PR,
ставить опыты с патчами, если таковые есть, и т. д.
В общем --- как обычно.
---
A44: Ламеры в гамаке пусть в тапках трахаются --- это их проблемы.
Я в своём гамаке хочу полноценно трахаться на лыжах.
P.S. Седьмой уже написал, у них GNATS как-то криво работает ---
я даже поиск сумел незапустить.

Marinavo_0507

ну я бы для начала постарался понять, это проблема в wine или в той хрени, которую ты в нём запускаешь
это должно быть ясно из бектрейса

Ivan8209

Ушёл читать ман(тр)ы.
Надеюсь, системную libpthread не надо пересобирать?
"Та хрень" однопоточная, есть соображения, из которых ошибка
может возникать в ней?
---
...Я работаю антинаучным аферистом...

Ivan8209

Сделал "export PTHREAD_DIAGASSERT=a", пошла серия без падений.
Законы Мерфи в действии.
---
"Ты, я и термодинамика."

Ivan8209

А ничерта оно не абортится --- виснет и прибивается потом через SIGKILL.
Это что, баг в pthreads?
---
A44: Ламеры в гамаке пусть в тапках трахаются --- это их проблемы.
Я в своём гамаке хочу полноценно трахаться на лыжах.

sergey_m

Это баг в приложении, неужели не понятно сообщение, которое выдаёт libpthread?

Ivan8209

Сообщение-то понятно, вопрос в следующем:

PTHREAD(3) NetBSD Library Functions Manual PTHREAD(3)

...

ENVIRONMENT
...
PTHREAD_DIAGASSERT Possible values are any combinations of:
...
a Abort on errors, creating a core
dump for further debugging.

Должно ли приложение быть загнано в коре пфредами, если
переменная окружения выставлена вот так?
Сейчас --- не валится, несмотря на ошибку.
---
A44: Ламеры в гамаке пусть в тапках трахаются --- это их проблемы.
Я в своём гамаке хочу полноценно трахаться на лыжах.

sergey_m

А у тебя core не образуется?

Ivan8209

В том-то и дело, что нет:

$ find . -name \*.core
$

---
A44: Ламеры в гамаке пусть в тапках трахаются --- это их проблемы.
Я в своём гамаке хочу полноценно трахаться на лыжах.

sergey_m

А wine не sugid?

Ivan8209


$ ls -l `which wine`
-r-xr-xr-x 1 root wheel 7816 Mar 19 17:56 /usr/pkg/bin/wine

А это что-то меняет?
Я сам: "uid=1000(user) gid=0(wheel) groups=0(wheel5(operator)"
---
A44: Ламеры в гамаке пусть в тапках трахаются --- это их проблемы.
Я в своём гамаке хочу полноценно трахаться на лыжах.

Ivan8209

С чего я должен доверять гуглу, который даёт неверный результат?
WINE сейчас 0.9.32, и даже когда был 0.9.30, он работал.
Правда, так же через раз-другой, с периодами просветления.
---
"Возмущаясь, люди мало заботятся о правде, она мешает их, часто священному, гневу."

Marinavo_0507

*** This bug has been marked as a duplicate of 2366 ***
А вот там - настоящая жесть.
Оставить комментарий
Имя или ник:
Комментарий: