Старый друг - лучше новых двух (тут трется воскресший freenx-server)

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

Djelf
Сообщения: 605
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

Хм, прибил все залипшие nx* хвосты. Ошибка ушла, но сессия не поднялась.
Ну можно и старый nxwin использовать, но хотелось бы все таки попытаться поднять новый, но что в нем могло поломаться я даже представить себе не могу. Предположений пока никаких нет.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1492
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Ну теперь я это хотя бы увидел. Смею надеяться, починю. Мы же знаем: Своевременная диагностика - залог качественного оказания ритуальных услуг!
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1492
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Сравни-ка session логи на старом и новом сервере при восстановлении. Да и у nxwin тоже интересно. Он же не просто так падает, а прямиком в stackdump, извращенец этакий. А на сервере причина очередного суспенда: Display failure.
Спасибо сказали:

Djelf
Сообщения: 605
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

Серверные логи хрен сравнишь построчно, но ничего подозрительного не вижу.
У меня на W10x64 nxwin не создает stackdump. Видимо придется дебажную версию собирать.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1492
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Смутно помню, вроде местоположение дампа зависит от текущего каталога в момент запуска клиента. У opennx так было.
Добавлено (15:37):
логи я имею в виду именно session из C-*
Добавлено (16:07):
Да и могут быть там интересны строчки между Session: Session resumed at и Session: Suspending session
Именно в таком порядке.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1492
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Признаю свое временное поражение в борьбе с созданной тобой неведомой хренью. Перепробована куча вариантов. Клиентские логи вылизал чище, чем кот - яйца. Попутно:
1) Отловил и задавил вставляние сервером 'NX>105' в произвольное место.
2) Шлю наконец одним пакетом данные 700-710.
3) Задушил таки левые мессаги stderr сервера.
4) Перекрыл также кран в клиент на семейство статусов 'NX>100? *'. Судя по коду опенэныкса и поведению nxclient, они им до звезды.

Все без толку, однако - валится твой nxwin грязными тормашками вверх при восстановлении. Ты хоть потом в комит ткни, где еще не брякается.
Спасибо сказали:

Djelf
Сообщения: 605
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

Да и хрен с ним!
Старый работает без нареканий, что на библиотеке от cygwin3, что на cygwin2.
И cpu на glxgears все равно около 0%, ускорять его уже некуда. И новый VcXsrv через nxssh работает примерно с такой же скоростью.
Не брякается, вернее не всегда брякается на nx_3.5.1-eter12, но там и юбунта 12.04 с древним w@e.
И у меня не брякается! У меня nxwin остается висеть. Кинь крэшдамп, может получится найти где оно падает.
А то, я повторяюсь, мне нефехоа не понятно, как клиент может безукоризненно работать с новой сессией и падать с восстановленной и в чем кроется отличие.
Трассировать слишком много чего можно, но с чем сравнивать?

С другой стороны не понятно что делать, если в nx-libs nxcomp/nxproxy загубят (чуток в nxcomp уже загубили), тогда возможно пересобирать придется, а где взять cygwin2?

Оставлю тут, для истории, что в nx-libs-3.5.99.23 было поломано.
Spoiler
Loop.c
void SetupDisplaySocket(int &addr_family, sockaddr *&addr,
...
- snprintf(unixSocketDir, DEFAULT_STRING_LENGTH, "/tmp/.X11-unix");
+ snprintf(unixSocketDir, DEFAULT_STRING_LENGTH - 1, "%s/.X11-unix", control -> TempPath);
P.S. Странно сделали этот 3й cygwin.
В cygwin32 32х битная версия dll`ки cygwin3, и 64х битная cygwin2, а в cygwin64 все наоборот. оО
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1492
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Да там все коротко:

Код: Выделить всё

Exception: STATUS_ACCESS_VIOLATION at eip=004034EF
eax=00000003 ebx=8029EF58 ecx=00000002 edx=80329300 esi=00000002 edi=00000000
ebp=00000003 esp=0028C760 program=C:\PROGRA~2\OpenNXCE\bin\nxwin.exe, pid 3272,thread main
cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame     Function  Args
Ни разу не рокетмэн, чтобы за пол-секунды поцепиться к нему дебагером.

ЗЫ: комиты новые в гите, как обычно. Теоретически скорость должна.
Добавлено (17:50):
Такое у меня подозрение, nxwin с nxssh где-то блудит при перекидывании каналов. В него прилетает какой-то мусор, и он удивляется.
Добавлено (17:50):
Возможно все стало слишком быстро
Спасибо сказали:

Djelf
Сообщения: 605
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

А как тебе такая штука?
https://gyazo.com/7373374b565b2773cf10b8ceceb9fe82
Предполагаю (вернее будет сказано, что гадаю по чашке с кофе): Видимо создался первый Х-сервер, потом как то определяется, что он не годен (почему?), был создан второй Х-сервер, но первый, тот остался висеть и видимо протух убивает nxssh так что кажется что сигнал разорван с той стороны.
Ой, ой, давай пока завяжем с этой хренью? Когда припечет, тогда и вернемся. Согласен?
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1492
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Оф кос. Ковыряюсь дальше.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1492
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Как заметка: Было известно, можно завесить сеанс с одного клиента и восстановить со второго. Но раньше агент не позволял мигрировать между клиентскими системами. Теперь позволяет. Правда в одну сторону. Запущенное с вин клиента, поднимается с линуксового. Наоборот - тоже, только там не видно нифига.
Можно потом на пенсии исследование провести о возможном изменении параметров в screeninfo на лету.
Спасибо сказали:

Djelf
Сообщения: 605
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

dimbor писал:
27.03.2020 22:30
Как заметка: Было известно, можно завесить сеанс с одного клиента и восстановить со второго.
Читал в старом сервере подобную заметку.
Вроде как-то по другому звучало, что то вроде такого было: "на винде на восстановление сессии не надейтесь".
Но как мы можем сейчас наблюдать - оно работает.
Как нибудь потом, действительно можно и стоит поработать над телепортом сессий, но будет ли стоить оно затраченных усилий?
Спасибо сказали: