Metacity замерзает на 30 секунд из-за какого-то futex [закрыт]

При входе на мою рабочую станцию ​​Ubuntu 12.04 выполнение относительно простых операций, таких как автоматическое заполнение вкладок в терминале, переключение рабочих областей, перемещение окон и т. Д., Может привести к зависанию Metacity на 30 секунд.

Следуя шагам здесь для диагностики проблемы, я сначала сравнил состояние до и во время замораживания с ps axo pid,wchan:32,cmd > [not-]frozen.txt, затем diff обнаружил:

$ diff frozen.txt not_frozen.txt
142c142
<  7135 futex_wait_queue_me              metacity
---
>  7135 poll_schedule_timeout            metacity

Глядя в Большая глубина в Metacity со следом показывает, что он был связан в этом «futex» ровно 30 секунд ((sudo strace -p 11773 3>&1 1>&2- 2>&3-) | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), [115]; fflush(); }' > metacity-trace.txt):

2014-07-03 15:49:50 clone(child_stack=0xac1982a4, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0xac198ba8, {entry_number:6, base_addr:0xac198b40, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0,useable:1}, child_tidptr=0xac198ba8) = 8659
2014-07-03 15:49:50 futex(0x9a55228, FUTEX_UNLOCK_PI_PRIVATE, 161978120) = 0
2014-07-03 15:49:50 futex(0x9a7970c, FUTEX_WAIT_REQUEUE_PI_PRIVATE, 1, NULL, 0x9a55228) = 0
2014-07-03 15:49:50 futex(0x9a55228, FUTEX_UNLOCK_PI_PRIVATE, 161978120) = 0
2014-07-03 15:50:20 futex(0x9a7970c, FUTEX_WAIT_REQUEUE_PI_PRIVATE, 3, NULL, 0x9a55228) = 0
2014-07-03 15:50:20 futex(0x9a55228, FUTEX_UNLOCK_PI_PRIVATE, 122875892) = 0
2014-07-03 15:50:20 send(15, "W", 1, MSG_NOSIGNAL)          = -1 ENOTSOCK (Socket operation on non-socket)

Это было в Unity 2D, если я использую Gnome Classic, то же самое происходит при попытке переключения рабочих столов (но это не так чувствительно к автозаполнению в терминале).

2014-07-03 16:07:31 clone(child_stack=0xb21fe2a4, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0xb21feba8, {entry_number:6, base_addr:0xb21feb40, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0xb21feba8) = 12693
2014-07-03 16:07:31 futex(0x98424e8, FUTEX_UNLOCK_PI_PRIVATE, 160065584) = 0
2014-07-03 16:07:31 futex(0x98a6834, FUTEX_WAIT_REQUEUE_PI_PRIVATE, 1, NULL, 0x98424e8) = -1 EAGAIN (Resource temporarily unavailable)
2014-07-03 16:07:31 futex(0x98424e8, FUTEX_UNLOCK_PI_PRIVATE, 160065584) = 0
2014-07-03 16:08:01 futex(0x98a6834, FUTEX_WAIT_REQUEUE_PI_PRIVATE, 3, NULL, 0x98424e8) = 0
2014-07-03 16:08:01 futex(0x98424e8, FUTEX_UNLOCK_PI_PRIVATE, 13762548) = 0
2014-07-03 16:08:01 send(14, "W", 1, MSG_NOSIGNAL)          = -1 ENOTSOCK (Socket operation on non-socket)

2
задан 13 April 2017 в 15:24

0 ответов

Другие вопросы по тегам:

Похожие вопросы: