LINUX.ORG.RU

Снова зависания, снова грёбаный FUTEX! На этот раз он превращает dragon player в зомби.

 , ,


0

1

Поюзал я тут kde-шный dragonplayer (на кубунте 14.04), вроде неплохая штука, полный минимализм и все такое. Но обнаружил, что если он не может открыть какой-либо файл, то после закрытия gui, его процесс виснет в памяти в качестве зомби (хотя gui и закрывается). Удалять неохота, так что я залез в зависший процесс с помощью strace. И что же я обнаружел. FUTEX, старый друг! И ровно те же проблемы, что раньше были с лисой! Эту хрень в ядре вообще когда-нибудь пофиксят? Это, конечно, был риторический вопрос (я не тупой и ответ на него, конечно же - «нет, никогда, ты что, тупой?»).

В общем, вывод из консоли:

dragon downloads/youtube/dark
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 14: reading configurations from ~/.fonts.conf is deprecated. please move it to /home/maksim/.config/fontconfig/fonts.conf manually
QPainter::begin: Paint device returned engine == 0, type: 2

Вроде все ок, все по нулям. Но! Процесс висит:

ps aux | grep dragon
maksim    6423  0.4  0.8 1277864 68896 pts/5   Sl   11:24   0:00 dragon downloads/youtube/dark
maksim    6427  0.0  0.2 405772 23676 ?        S    11:24   0:00 kdeinit4: kio_file [kdeinit] file local:/tmp/ksocket-maksim/klauncherhX1467.slave-socket local:/tmp/ksocket-maksim/dragonplayerCj6423.sl

Дальше - больше:

sudo strace -p 6423
[sudo] password for maksim: 
Process 6423 attached
futex(0x7faa10062940, FUTEX_WAIT_PRIVATE, 2, NULL

Вот, как-то так... У кого-нибудь что-то подобное было? Хоть кто-то смог победить этот FUTEX? Нет, я понимаю, что гейзенбаг и все такое, но, может кто-нибудь что-нибудь сделать с этим все-таки смог?

Тянет в рот каку

Полный минимализм - это mplayer/mpv, там всё и работает искаропки.

kot_otbelivatel ()

Похоже проблемы (дэдлок?) в какой-то сторонней библиотеке.

crowbar ()

FUTEX

ставь freebsd, там этой гадости нет

anonymous ()

Но обнаружил, что если он не может открыть какой-либо файл, то после закрытия gui, его процесс виснет в памяти в качестве зомби (хотя gui и закрывается).

Смотри кто родитель этого процесса. В долго висящих зомбаках всегда виноват родительский процесс, который не сделал wait.

Удалять неохота, так что я залез в зависший процесс с помощью strace. И что же я обнаружел. FUTEX, старый друг! И ровно те же проблемы, что раньше были с лисой! Эту хрень в ядре вообще когда-нибудь пофиксят? Это, конечно, был риторический вопрос (я не тупой и ответ на него, конечно же - «нет, никогда, ты что, тупой?»).

При чём тут ядро?

Deleted ()
Ответ на: комментарий от anonymous

ставь freebsd, там этой гадости нет

Во freebsd есть другая реализация блокировок.

Deleted ()
Ответ на: комментарий от Deleted

Когда в прошлый раз разбирался, нагуглил, что сия ошибка вылезает вроде бы как из-за ядра. Т.е. ядро как-то не так взаимодействует с футексом. И вылезает эта дрянь раз за разом. Ее фиксят, потом она опять вылезает. Потом ее опять фиксят.

ПС: за подсказку спасибо. Гляну, может, правда, что с родителем не то.

gill_beits ★★★ ()
Ответ на: комментарий от gill_beits

Т.е. ядро как-то не так взаимодействует с футексом.

Звучит как «процессор плохо взаимодействует с инструкцией».

Гораздо больше шансов наткнуться на deadlock из-за бага в программе, чем на баг в примитивах синхронизации.

i-rinat ★★★★★ ()
Последнее исправление: i-rinat (всего исправлений: 1)

QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.

Ну это сразу в lkml. Пускай выпиливают свой futex к чертям!

зомби

Это не зомби.

d_a ★★★★★ ()

Поюзал я тут kde-шный dragonplayer

Странно, в моих кедах его нет. Гентушники видимо его выпилили. Нет, таки переименовали.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от d_a

Гм... В kde-шном системном мониторе он отображается как зомби.

gill_beits ★★★ ()
Ответ на: комментарий от gill_beits

Используй ps или htop. Вообще, в зомби уже нечего стрейсить, он вышел, так что сама идея абсурдна и только сбивает людей в этом треде с толку. Почитай Understanding Linux Kernel, главы про процессы, раз уж имеешь космическую наглость (или глупость) катить бочку на ядро. А твой плеер просто глючное говно, о чём он, кстати, честно сам тебе напечатал два раза.

d_a ★★★★★ ()

В общем, всем спасибо. Некогда мне сейчас с этой дрянью возиться. Удалил его и хрен с ним.

gill_beits ★★★ ()
Ответ на: комментарий от gill_beits

По делу, я так понимаю, ничего не будет?

Вот эта фраза была по делу:

Вообще, в зомби уже нечего стрейсить, он вышел, так что сама идея абсурдна и только сбивает людей в этом треде с толку.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.