Bug 8228

Summary: X server eats 100% CPU after acpid restart
Product: Sisyphus Reporter: Sergey Vlasov <vsu>
Component: xorg-x11-serverAssignee: Valery Inozemtsev <shrek>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: eostapets, mike, sr, thresh
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
acpi.patch
none
acpi.patch none

Description Sergey Vlasov 2005-10-15 17:31:29 MSD
xorg-x11-server-6.8.99.900-alt7

После перезапуска acpid (который в конфигурации по умолчанию выполняется
периодически при ротации логов - в /etc/logrotate.d/acpid вызывается
/sbin/service acpid condrestart) X-сервер начинает пожирать всё доступное
процессорное время.  После переключения на другую консоль и обратно в X ситуация
приходит в норму до следующего перезапуска acpid.
Comment 1 Valery Inozemtsev 2005-10-15 19:05:10 MSD
тут проблема не в иксах. при /sbin/service acpid condrestart\reload\condreload 
заново создается /var/run/acpid.socket и иксы его теряют 
Comment 2 Sergey Vlasov 2005-10-15 19:29:39 MSD
Проблема именно в том, что X не обрабатывает подобную ситуацию (вероятнее всего,
там просто нет обработки случая, когда read()/recv() возвращает 0).

Как минимум, в этом случае следует закрыть свой конец соединения и выругаться в
лог, что обработка событий ACPI отключена.  В идеальном случае следовало бы с
некоторым периодом пытаться заново подключиться к сокету (только не пытаться
цепляться к /proc/acpi/event напрямую, а то опять acpid не будет нормально
перезапускаться).
Comment 3 Valery Inozemtsev 2005-10-16 11:50:21 MSD
Created attachment 1185 [details]
acpi.patch

я думаю этого будет более чем достаточно
Comment 4 Valery Inozemtsev 2005-10-16 15:24:04 MSD
Created attachment 1191 [details]
acpi.patch

вот так будет правильнее
Comment 5 Valery Inozemtsev 2005-10-16 15:24:59 MSD
будет исправлено в следующей сборке