FreeNX - не работает X Render Extension (Проблемы с запуском приложений, исользующих X Render Extension)

Модераторы: dimbor, Модераторы разделов

Ответить
Schmendrick
Сообщения: 5
ОС: Debian GNU/Linux

FreeNX - не работает X Render Extension

Сообщение Schmendrick »

Коротко:
Не работает X Render Extension из windows-клиента FreeNX.

Теперь подробнее:

Система: Debian Lenny 5.0.3

Версия FreeNX: RX@Etersoft
stable/Debian/5.0/
freenx-server_0.7.4-eter18.12debian_i386.deb
nx_3.3.0-eter18debian_i386.deb
nxclient_3.3.0.6-eter6debian_i386.deb
nxsadmin_0.2.1-eter4debian_i386.deb

Анамнез:
Некоторое время назад был установлен тестовый сервер FreeNX указанной выше конфигурации. WINE заработал под ним сразу и без проблем как на Windows, так и на Linux клиентах (сперва использовались сборки windows-клиента от Etersoft, затем - с этого форума, из "курощения").
Через некоторое время WINE перестал запускаться с windows-клиентов, и при этом начал выдавать такое сообщение об ошибке:
Wine has detected that you probably have a buggy version
of libXrender.so . Because of this client side font rendering
will be disabled. Please upgrade this library.
err:font:X11DRV_SelectFont Etersoft notes: Broken wine
build or ttf fonts missed in system. Check libXrender-devel package presence during build

При этом wine в FreeNX-клиенте запущенном из Linux работает нормально.

В результате долгих ковыряний по документации X-протокола и сайту NoMachine, а также экспериментов с различными опциями сервера и клиентов FreeNX удалось вяснить следующее:

  • Из-под windows-клиента Render Extension не работает: xclock не запускается вообще, а WINE работает только при установленном ключе реестра ClientSideWithRender=N.
  • Сервер FreeNX игнорирует установку опции "Disable Render Extension" в конфигурации клиента, независимо от платформы
  • При установленной в файле node.conf опции AGENT_EXTRA_OPTIONS_X=" -norender" сервер FreeNX отключает поддержку Render Extension, в результате чего программы, использующие Render начинают работать в режиме совместимости (чёрные стрелки в xclock, тормозная прокрутка окон в wine и т.п.).


Диагноз:
несовместимость (версии?) расширения X Render Extension в windows-клиенте FreeNX с сервером FreeNX.

Симптоматика:
проблемы со шрифтами, медленная прокрутка окон, повышенная нагрузка на сеть и процессоры как клиента, так и сервера.

Тест: в терминале, запущенном под freenNX-сессией запустить xclock (из набора xutils).
Если Render работает - появится окно часиков с двумя полупрозрачными стрелками.
Если Render отключен (режим совместимости) - стрелки будут непрозрачные.
Если Render глючит - xclock не запустится.



Лечение:
???
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: FreeNX - не работает X Render Extension

Сообщение dimbor »

Сначала логи сессии в студию: errors+session на сервере и errors+session+errors+winlog на клиенте.
При непоцеплении рендера там должно быть написано много интересного.

Воспроизвести не удалось, но:
1) У меня только альты. Дебиана нет и вряд ли появится.
2)
Schmendrick писал(а):
25.01.2010 20:07
Тест: в терминале, запущенном под freenNX-сессией запустить xclock (из набора xutils).
Если Render работает - появится окно часиков с двумя полупрозрачными стрелками.
Если Render отключен (режим совместимости) - стрелки будут непрозрачные.
Если Render глючит - xclock не запустится.

Везде второй пункт, хотя локально cat Xorg.0.log | grep RENDER
(II) Initializing built-in extension RENDER

может xclock не той системы...
Как еще можно проверить?
Спасибо сказали:
Schmendrick
Сообщения: 5
ОС: Debian GNU/Linux

Re: FreeNX - не работает X Render Extension

Сообщение Schmendrick »

Как еще можно проверить?

утилитой rendercheck (gendercheck ;) )

Результаты запуска rendercheck у меня:
Локальная машина (Debian 5.0.3):

Код:

Render extension version 0.10 Window format: r8g8b8 Found server-supported format: a8 Found server-supported format: a8r8g8b8 Found server-supported format: x8r8g8b8 Found server-supported format: r8g8b8 Found server-supported format: b8g8r8 Found server-supported format: r5g5b5 Found server-supported format: b5g5r5 Found server-supported format: x1r5g5b5 Found server-supported format: x1b5g5r5 Found server-supported format: r5g6b5 Found server-supported format: b5g6r5 Found server-supported format: x8b8g8r8 Beginning testing of filling of 1x1R pictures Beginning testing of filling of 10x10 pictures Beginning dest coords test Beginning src coords test Beginning mask coords test Beginning transformed src coords test Beginning transformed src coords test 2 Beginning transformed mask coords test Beginning transformed mask coords test 2 Beginning Clear blend test on a8

Всё нормально ошибок нет. (Результатов всех тестов не дождался - шибко долго )))

Удаленный сервер FreeNX, клиент FreeNX под Debian:

Код:

Render extension version 0.10 Window format: r8g8b8 Found server-supported format: a8 Found server-supported format: a8r8g8b8 Found server-supported format: r8g8b8 Found server-supported format: r5g5b5 Found server-supported format: r5g6b5 Beginning testing of filling of 1x1R pictures Beginning testing of filling of 10x10 pictures Beginning dest coords test Beginning src coords test Beginning mask coords test Beginning transformed src coords test Beginning transformed src coords test 2 src coords test error of 32.0000 at (0, 0) -- R G B A got: 0.00 0.00 0.00 1.00 expected: 1.00 0.00 0.00 1.00

...
и после кучи ошибочных результатов rendercheck и терминальное соединение "вылетают"


Удаленный сервер FreeNX, клиент FreeNX под WindowsXP:

Код:

Render extension version 0.8

rendercheck вылетает, без всяких тестов. Терминальное соединение продолжает работать.

Версии библиотек libXrender и libXrender-nx на сервере и клиенте у меня совпадают:
/usr/lib/libXrender-nx.so.1 -> libXrender-nx.so.1.2.2
/usr/lib/libXrender-nx.so.1.2.2
/usr/lib/libXrender.so.1 -> libXrender.so.1.3.0
/usr/lib/libXrender.so.1.3.0


В приложенном архиве файлы логов терминальных сессий с запуском rendercheck с сервера, с клиентов WinXP и Debian.
Никаких ошибок, связанных с Render в логах мною обнаружено не было.

Таким образом, поведение rendercheck приводит к следующим выводам:
  • В FreeNX криво реализована передача данных Render Extension
  • В Windows-клиенте FreeNX используется устаревший X-сервер со старым Render Extension (0.8)
Вложения
logdata.tar.gz
(4.89 КБ) 6 скачиваний
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: FreeNX - не работает X Render Extension

Сообщение dimbor »

Schmendrick писал(а):
26.01.2010 13:47
Таким образом, поведение rendercheck приводит к следующим выводам:
  • В FreeNX криво реализована передача данных Render Extension
  • В Windows-клиенте FreeNX используется устаревший X-сервер со старым Render Extension (0.8)


Гендерность Рендерность прочекана.

Раз сделаны такие категоричные заявления, могу сказать следущее. Первый раз сдержался, теперь не могу не поправить терминологически. ;) Первый пункт невозможен, т.к. продукт freenx-server не работает с x-протоколом в принципе, его функции - менеджмент сессий и только. Пенять надо на на работу реализации протокола nx от nomachine (пакет nx на сервере - nxagent, nxwin на клиенте).
Далее. Не существует продукта "Windows-клиент FreeNX", имеется NXClient for Windows от nomachine. Входящий в его состав OSS x-сервер nxwin (также by nomachine) поправлен по заявкам сообщества. Отсюда родились здешняя его сборка и "от Этерсофт", что та же фигура, только в профиль. А это сказано к тому, что на оригинальном клиенте это дело видимо не тестировалось. Вот что неплохо бы сравнить.

То-что x-сервер старый, дык это не секрет - два года уже известно. Меж тем плачем, колемся, но продолжаем жрать кактус. Я как-то пробовал, и не хватило интеллекта самостоятельно поднять его версию. Пока кроме номашин на это никто не способен, думается.

По чеку: Ситуация неоднозначна. У меня тоже сессии слетают с вин-клиента, любые. Да только слетают они через 20-30 мин. работы, когда вывод чека достигает ~5MB. Слетают из-за краха x-сервера. Какой его части (nxagent/nxwin) - надо думать, как локализовывать. Походу где-то буфер переполняется. Эх, не было печали...

"Координатные" ошибки присутствуют, но там с начальными координатами окон у nx муть конкретная. В рутлесе все переписано почти с нуля. Десктоп исправления не требовал. Но он тоже падает.
Но чтоб вообще не запускалось, такого нет - квадратик честно мигает.
Размер кэшей в настройках сессии попробуйте увеличить существенно, а?

Народ, присоединяейтесь к тестированию. Отловим ошибку - исправим скопом. И похрен, что рендер старый.
Спасибо сказали:
Schmendrick
Сообщения: 5
ОС: Debian GNU/Linux

Re: FreeNX - не работает X Render Extension

Сообщение Schmendrick »

Увеличение кэшей никак не отразилось на выводах rendercheck'а. Равно как и переключение между режимами "десктоп/рутлесс".

Сдается мне, что для решения этой *гхм* "гендерной" проблемы придется самостоятельно пересобирать пакет nx под Debian...

2 Dimbor:
А какая у вас в Альте версия libXrender.so установлена? И откуда / какой версии вы берете пакеты nx?
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: FreeNX - не работает X Render Extension

Сообщение dimbor »

Schmendrick писал(а):
26.01.2010 17:52
2 Dimbor:
А какая у вас в Альте версия libXrender.so установлена? И откуда / какой версии вы берете пакеты nx и Ко?

libXrender.so.1.3.0 (0.10 ??) from Xorg 7.3.0
но оно скорее всего при запуске под nx-ом не используется - только локально.

Везде стоит самосбор на базе nx-3.3.0-alt12 от RX@Etersoft. Сейчас там alt17, посмотрю, что могло измениться.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: FreeNX - не работает X Render Extension

Сообщение dimbor »

Собрал-поставил alt18 (как я пол, то же самое, что и Ваш eter18). Кивадратик пучится в рутлесе уже минут 20, с ошибками естественно. Пока не падает. Процессор жрет 100 - nxwin/nxssh 50/50.
Но что примечательно, локально rendercheck упал через ~5 часов работы, x-сервер остался жив.
Чуть попозжа nx-3.4.0 поставлю, проверю, но улучшения ожидать не приходится - там эти циферки в пользу бедных. Какие еще идеи?
Если будете пересобирать под дебиан, имеет смысл сразу с 3.4.0 заморачиваться (src.rpm из unstable/sources). Там кста везде какой-то патч под дебиан мимо меня приблудился.

ЗЫ. Может быть получится обновить версию рендера на клиентской стороне (nx-X11-compat). Единственно, нужны железобетонные аргументы, что сей подвиг нужен народу.
ЗЗЫ. x-сервер заодно с сессией валится там же, а именно на
Beginning Clear linear gradient test on a8
Спасибо сказали:
Schmendrick
Сообщения: 5
ОС: Debian GNU/Linux

Re: FreeNX - не работает X Render Extension

Сообщение Schmendrick »

*Ушел пересобирать пакеты, результатов ждите через 1-2 недели (работы много)*
Спасибо сказали:
Schmendrick
Сообщения: 5
ОС: Debian GNU/Linux

Re: FreeNX - не работает X Render Extension

Сообщение Schmendrick »

Проблема (так сказать) решена!

Как оказалось, проблема с Render Extension проявляет себя только когда freenx запускается на виндовом экране с 8-битной цветностью. Очевидно, при этом отваливаются механизмы альфа-блендинга ну и...
(Дело в том, что я всё это дело тестил из дома, на машине, подключенной через виндовый RDP, естественно с 8-битным цветом.)

Воистину, "на каждого мудреца довольно простоты"! :D


p.s.
это, однако, не отменяет проблемы падения freenx-клиента при выполнении rendercheck.
p.p.s.
цвета стрелок в xclock можно поменять с помощью editres ;)
Спасибо сказали:
Ответить