Bug 13299 - xfwm4 зависает при установленном GTK+ 2.12
: xfwm4 зависает при установленном GTK+ 2.12
Status: CLOSED NOTABUG
: Sisyphus
(All bugs in Sisyphus/xfwm4)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2007-11-02 09:44 by
Modified: 2007-11-11 18:15 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2007-11-02 09:44:46
X.org "зависает" при попытке сделать одно из этих действий:
1) в icewm переключиться между окнами по Alt-Tab;
2) в Xfce переключиться между окнами с помощью таскбара (Alt-Tab работает);
3) в Xfce переключиться между рабочими столамии с помощью таскбара (Ctrl-Fx
работает);
4) открыть pdf-файл в evince (xpdf работает).

После зависания вполне может работать клавиатурный ввод в том окне, которое
было
активным. Однако на мышь ни одно окно более не реагирует (и форма курсора мыши
не меняется), оконный менеджер ни на какие горячие клавиши не отзывается
(проверялось на xfwm и icewm), а переключиться в консоль чаще всего не удаётся.

Видео Intel 945GM. В логе X11 появляется строка:
(EE) intel(0): I830 Vblank Pipe Setup Failed 0

$ rpm -qa 'xorg-x11*'
xorg-x11-extensions-glx-1.4-alt6
xorg-x11-sdk-1.4-alt6
xorg-x11-dri-intel-7.0.1-alt3
xorg-x11-drv-mouse-1.2.3-alt1
xorg-x11-proto-devel-7.3.0-alt7
xorg-x11-rgb-1.0.1-alt1
xorg-x11-xephyr-1.4-alt6
xorg-x11-drv-vga-4.1.0-alt4
xorg-x11-drv-vesa-1.3.0-alt3
xorg-x11-drv-evdev-1.2.0-alt1
xorg-x11-server-1.4-alt6
xorg-x11-drv-synaptics-0.14.6-alt4
xorg-x11-server-common-1.4-alt6
xorg-x11-drv-keyboard-1.2.2-alt1
xorg-x11-drv-intel-2.1.1-alt3
------- Comment #1 From 2007-11-02 10:23:44 -------
а если заменить драйвер на i810? хотя у меня 3 машины на 945G и ничего 
подобного не замечал
------- Comment #2 From 2007-11-02 10:31:26 -------
Заменял. Виснет точно так же.
------- Comment #3 From 2007-11-02 10:38:02 -------
а при отключенном dri?
------- Comment #4 From 2007-11-04 22:40:58 -------
Я пробовал
Option "DRI" "no"
Option "NoAccel" "yes"
в такой комбинации, висло всё равно.

Откатился пока на старый X.org (от начала сентября), работает.
------- Comment #5 From 2007-11-05 00:20:50 -------
На самом деле виснет, даже если откатиться на июньский X.org.
Из этого я делаю вывод, что бага где-то в другом месте, и, следовательно, для
ксорга она INVALID.
Извините за беспокойство.
------- Comment #6 From 2007-11-05 13:25:45 -------
Если это на этой машинке у тебя ещё кучка проблем вылезла (кажется, raorn@
предлагал память проверить) -- действительно попробуй стрельнуть/поменять
память
или хотя бы прогнать ночью memtest86.
------- Comment #7 From 2007-11-06 19:05:43 -------
О, эврика.
Поставил с нуля Desktop Lite, завёл X-ы -- всё работает как часы.
Обновил libgtk+2 и libpango до сизифных.
После этого X.org стал виснуть в вышеуказанных ситуациях, иногда до степени
неубиваемости (так что требуется Ctrl-Alt-SysRq-B).

Откатил libgtk+2 (на 2.10) и libpango -- работает опять.

X.org всё это время бранчевый, с которым Desktop Lite собирается. Как мы помним,
сизифный X.org тоже вешался.

Я считаю, что это в любом случае бага X.org. Не должен он позволять себя вешать
независимо от кривизны клиентской библиотеки. Впрочем, ktirf может что-нибудь
подсказать о том, что изменилось в GTK+ 2.12 :-).
------- Comment #8 From 2007-11-06 19:10:47 -------
сходите еще повесьте багу на ядро - не должно оно позволять вешать машину не 
зависимо от кривизны загруженныхмодулей/железа 
------- Comment #9 From 2007-11-06 20:49:44 -------
Валер, отмазка -- INVALID.  Железо бывает кривым совсем по-другому, чем
клиентские библиотеки.  А история с тем, что в Xorg ломают нафиг XRENDER и
взрывается всякое Cairo -- не нова.

Лучше им передать эту информацию, раз уж ты собираешь xorg в сизиф из git, а не
релизами.  Иначе смысл тестировать на коллегах, а багрепорты закрывать?

(а если некогда/влом/неудобно -- давай сидеть на релизах тогда и не
выпендриваться)
------- Comment #10 From 2007-11-06 20:50:43 -------
(In reply to comment #4)
> Option "NoAccel" "yes"
А RenderAccel?  Попробуй погуглить xorg cairo hang, кажется, это не новая история.
------- Comment #11 From 2007-11-06 21:13:39 -------
> Лучше им передать эту информацию, раз уж ты собираешь xorg в сизиф из git, а 
не
> релизами.

о каком git'e речь? Мишь, не уподобляйся Костику, заглядывай в src.rpm, прежде 
чем сказать что то подобное на людях

>  Иначе смысл тестировать на коллегах, а багрепорты закрывать?
> 
> (а если некогда/влом/неудобно -- давай сидеть на релизах тогда и не 
выпендриваться)

см. выше. я не видел сломанных иксами gtk+2 и иже с ним и если уж вешать баги 
то на виновника сего, но никак не на то что оно убивает
------- Comment #12 From 2007-11-06 21:18:06 -------
продолжаем разговор. это проявляется массово на разных конфигурациях или это 
единичный случай? я не использую ни icewm, ни xfce, как это воспроизвести?
------- Comment #13 From 2007-11-06 21:21:38 -------
Я читаю cybertalk@ и относительно пакетов xorg-x11-* и libX* зачастую вижу там
упоминания коммитов, из которых они собраны.

Понимаешь, оно хорошо -- тестировать до релиза, но если нет возможности
доносить
фидбэк до апстрима (например, его сваливается слишком много, разнообразного, на
русском, а там хотят сжато и воспроизводимо) -- то может быть лучше и не
тестировать на своих пользователях.

Спроси ldv@ насчёт опыта по такому взаимодействию?

PS: я бы вряд ли конкретно xorg собирал из git, а скорее руководствуясь
правилом
"X.Y.1 или позже".  Потому что им -- не доверяю.  А вот monit можно вслепую
собирать, как показывает практика...

PPS: где-то между 2006 и 2007 ловил фризы иксов, которые упёрлись в
cairo/xrender.  Не помню, на чём именно (сам на wmaker, киоски на icewm,
коллеги
на kde).
------- Comment #14 From 2007-11-06 22:47:47 -------
(In reply to comment #13)
> Я читаю cybertalk@ и относительно пакетов xorg-x11-* и libX* зачастую вижу
> там упоминания коммитов, из которых они собраны.
а каким образом это стыкуется с тем что с libgtk+2-2.10.14 все работает как 
часы, а с libgtk+2-2.12.1 все вешается?
------- Comment #15 From 2007-11-06 23:03:53 -------
из переписки:

> 2 sr: не припомнишь грабель, описанных в #13299?
Нет, но по исходникам - виноват DRI вкупе с драйвером, драйвер
на ошибке DRI не должен лажаться
И по исходникам 'Option "DRI" "no"' должно помочь

И, если я правильно понимаю политику партии, то лажа возникает в
i830_dri.c:I830DRITransitionTo2d() на вызове
I830DRISetVBlankInterrupt(pScrn, FALSE)
Он не обрабатывает ошибку
Да собственно, ошибка I830DRISetVBlankInterrupt() нигде не обрабатывается
Можно вот это попробовать, но фиг знает,

--- i830_dri.c- 2007-11-06 22:12:04 +0200
+++ i830_dri.c  2007-11-06 22:15:23 +0200
@@ -1588,10 +1588,13 @@
                       
    I830DRISetPfMask(pScreen, 0);

-   sPriv->pf_enabled = 0;
-
    pI830->want_vblank_interrupts = FALSE;
-   I830DRISetVBlankInterrupt(pScrn, FALSE);
+   if( !I830DRISetVBlankInterrupt(pScrn, FALSE))
+   {
+      pI830->want_vblank_interrupts = TRUE;
+      if( !I830DRISetVBlankInterrupt(pScrn, TRUE))
+         xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[drm] Ну, блин! Ну,
не знаю, какая-то задница случилась.\n");
+   }
 }

 #if DRI_SUPPORTS_CLIP_NOTIFY
------- Comment #16 From 2007-11-06 23:05:17 -------
(In reply to comment #14)
> а каким образом это стыкуется с тем что с libgtk+2-2.10.14 все работает как 
> часы, а с libgtk+2-2.12.1 все вешается?
Подозреваю, что 2.10 не дёргало что-то, что дёргает 2.12.  В той истории,
которую припоминал -- было то же самое, это когда gtk на рендеринг через cairo
перетаскивали.  Кажется, тогда вышло, что раньше проблема тоже была, но на неё
просто не наступали.
------- Comment #17 From 2007-11-07 18:28:22 -------
Попробовал на двух машинах в офисе: десктоп на i945G и ноутбук ThinkPad на
i945GM. Не воспроизводится.

memtest гонял (без ошибок). DRI отключал (сообщение об ошибке исчезает).

Воспроизвести можно попробовать с помощью OpenOffice. Убить живой Writer с
документом, запустить его снова и попробовать восстановить документ. У меня
виснет.
------- Comment #18 From 2007-11-08 14:49:37 -------
виснет что?
------- Comment #19 From 2007-11-08 15:03:24 -------
Иксы.

Кстати, научился воспроизводить всё это на офисной машине с i945G (но только в
Xfce). Делается так: 0) ставим Desktop Lite + gtk 2.12, 1) запускаем Firefox и 2
копии xterm'а, 2) переключаемся в Firefox с помощью Alt-Tab, 3) переключаемся
обратно в какой-нибудь xterm с помощью taskbar'а. После этого всё перестаёт
реагировать на мышь и клавиатуру, экран не обновляется.
------- Comment #20 From 2007-11-08 15:18:17 -------
Desktop Lite + updates работает?
Desktop Lite полностью обновленный до сизифа работает?
------- Comment #21 From 2007-11-11 18:08:36 -------
Причина нашлась (по крайней мере причина интересовавшей меня части бага).
Виноват xfwm4, в апстриме это исправили, у нас #13388.
Валерий, ещё раз извините за шум.

P.S. Первый раз вторично закрываю собственную багу как INVALID :-\.