LINUX.ORG.RU

После запуска Firefox/Chrome X-сервер зависает.

 , ,


0

2

Добрый день.

Столкнулся с проблемой - на сервере собран X-сервер с поддержкой opengl(видеокарта - встроенная интеловская), сервер, как понятно, без монитора. Стартую X-сервер, пробую запускать glxinfo, glxgears - всё ок, glxinfo выводит нужную инфу, glxgears по-видимому крутит шестерёнками, потому что говорит о количестве FPS, но после того как я запускаю какой-либо браузер на этом экране - Firefox или Chromium/Chrome, то X-сервер больше ни на какие пинки не отвечает. По-видимому сам браузер даже не запускается, а просто висит и ждёт чего-то, потому что не выводит даже никакие warning, которые я привык видеть. Очень хотелось бы услышать варианты причин такого поведения, и очень бы был благодарен.

xorg.conf - https://bpaste.net/show/122df4445171

make.conf - https://bpaste.net/show/a2c2087f62ce

lspci - https://bpaste.net/show/06ba3023726a

В логах X-сервера ничего значительного.

В общем получилось сделать так, чтобы всё запускалось(запустив иксы просто через команду X, а не через startx, как я раньше делал), но почему так происходит - я так и не пойму. Возможно из-за какого-нибудь twm(хотя, при чём тут он?), который запускается дефолтным xinitrc?

gIiIjony
() автор топика

Подцепись через x11vnc и посмотри. Может, он тебе какой-то диалог при старте показывает и ждёт, пока ты кликнешь.

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

Попробую, спасибо, но не уверен. После того как Chromium и прочие стартовали через startx - ни одна программа не могла запуститься на этом X-дисплее. Если X-сервер запускать просто командой X, то после этого на этом дисплее можно было запускать что угодно.

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

Тогда это баг X сервера. Имеет смысл попробовать подключиться отладчиком, вдруг там что-то тривиальное.

i-rinat ★★★★★
()

Проблема только с браузерами, а куча других приложений работает? Если да, то проверяй настройки сети и DNS.

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

Ну, видимо да. С сетью и dns всё ок, через обычную команду «X» ведь всё работает. Плюс на этом сервере много виртуалок. Если что-то с сетью случилось бы - я бы заметил. Тут проблема в чём-то другом.

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

Обычно с сетью все ок. Проблемы бывают со стартом приложений, когда они начинают обращаться к localhost. Симптомы такие - запускаешь, ждешь кучу времени, а потом через несколько минут они могут появиться. То есть в процессах просто висят, но не отображаются. У тебя браузеры висят в процессах после запуска. По симптому очень похоже.

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

А что значит «блокировать X-сервер».

После запуска Firefox/Chrome X-сервер зависает. (комментарий)

После того как Chromium и прочие стартовали через startx - ни одна программа не могла запуститься на этом X-дисплее.

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

Хм, тогда надо попросить автора рассказать, как он запускает все. От какого пользователя, на каком дисплее, что пишут приложения, которые не запускаются, висят ли они в процессах или просто вываливаются с ошибкой. Как-то так.

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

После завершения браузера по sigterm ни одна программа больше не может взаимодействовать с X-сервером. То есть она запускается, но дальше работа не идёт, просто зависает на одном месте, даже подглядев с помощью strace в процесс Firefox я не увидел каких-то движений.

gIiIjony
() автор топика
Ответ на: комментарий от Zubok

Если всё так, то почему всё работает как надо просто через запуск посредством команды 'X'?

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

Смотреть firefox при помощи strace очень сложно. Надо смотреть самые простые программы, которые не запускаются после «блокирования» X-сервера. Вот они что пишут?

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

Запускаю от Рута через startx/X, не совсем понял на каком дисплее :0 . Они просто висят. Сначала, когда я запускал через startx, любое приложение могло работать с дисплеем, glxinfo говорил всякую инфу, и т.п., но когда запускал браузер - и X-сервер, и браузер - просто зависали. По Ctrl+c я завершал зависший браузер(никаких логов браузер не выплёвывал, как когда он обычно пишет о проблемах всяких граф. библиотек), и когда пытался запустить какую-либо программу на этом дисплее заново - ничего не происходило, всё что я запускал просто зависало. Как-то так.

gIiIjony
() автор топика
Ответ на: комментарий от Zubok

Плюс ещё зависший X-сервер в терминальной сессии по ctrl+c не хочет завершаться.

gIiIjony
() автор топика
Ответ на: комментарий от Zubok
getpeername(3, {sa_family=AF_LOCAL, sun_path=@"/tmp/.X11-unix/X0"}, [20]) = 0
uname({sys="Linux", node="кхм", ...}) = 0
access("/root/.Xauthority", R_OK)       = 0
open("/root/.Xauthority", O_RDONLY)     = 4
fstat(4, {st_mode=S_IFREG|0600, st_size=184, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7faee2954000
read(4, "\1\0\0\26ns342533.ip-94-23-0.eu\0\00210\0\22"..., 4096) = 184
read(4, "", 4096)                       = 0
close(4)                                = 0
munmap(0x7faee2954000, 4096)            = 0
getsockname(3, {sa_family=AF_LOCAL, NULL}, [2]) = 0
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"l\0\v\0\0\0\22\0\20\0\0\0", 12}, {"", 0}, {"MIT-MAGIC-COOKIE-1", 18}, {"\0\0", 2}, {"/\374\2661\372\216\22\345 \17\25\300\277\301\333Q", 16}, {"", 0}], 6) = 48
recvfrom(3, 0x60b330, 8, 0, 0, 0)       = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, 4294967295

И висииит. :)

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

Если X-сервер живой (/tmp/.X11-unix/X0 на месте? В процессах сервер присутствует?), то похоже, что проблемы с авторизацией на сервере или сразу после нее. То есть он нашел /root/.Xauthority, прочел cookie из него, отправил его не сервер, а вот ответа получить не может из /tmp/.X11-unix/X0. Похоже так.

uname({sys=«Linux», node=«кхм», ...}) = 0

лол

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

Да, файлик на месте, и процесс присутствует. Ок, спасибо большое за ответы, буду ковырять, ну а работа пусть пока что идёт на простом 'X'. :)

лол

Ну мало ли. :)

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

Не работает всё-равно.

На всякий случай: попробуй подождать как можно дольше, если не жмет время. Вдруг через какое-то время (скажем, полчаса) приложение объявится?

Zubok ★★★★★
()
Ответ на: комментарий от i-rinat

Не проще подцепиться к приложению с помощью gdb и посмотреть, где оно ждёт?

А это все от квалификации зависит. Кому-то сильно не проще :) Но мне кажется, что strace уже достаточно. Висит тут:

poll([{fd=3, events=POLLIN}], 1, 4294967295

fd=3 у нас это, судя по обрывкам лога strace, /tmp/.X11-unix/X0. Повис сразу после отсылки туда cookie на ожидании ответа от X-сервера.

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

Но вот X-сервер подебажить можно, да, на предмет, чего он не отвечает

UPD. Пока действительно выглядит так, что будто в какой-то момент сервер умирает, но не закрывается и не вылетает, а перестает на все реагировать.

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

Запускаю от Рута через startx/X, не совсем понял на каком дисплее :0 . Они просто висят.

Еще вопрос. А если завести пользователя и запускаться от него, а не от root, через startx, то по-прежнему после браузера виснет?

Zubok ★★★★★
()
Ответ на: комментарий от i-rinat

Его надо собирать ещё :)

Сейчас соберу - попробую.

gIiIjony
() автор топика
Ответ на: комментарий от Zubok

Чуть позже проверю, сервак сейчас занят, и отпишу. :)

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