Opened 8 years ago
Closed 8 years ago
#369 closed баг (fixed)
При потере соединения SSH не работает "Информация о пользователе"
Reported by: | alx | Owned by: | dimag |
---|---|---|---|
Priority: | major | Milestone: | 1 очередь |
Component: | ПО MC04-Dispatcher. Пульт диспетчера/техника | Keywords: | SSH, interface |
Cc: | san |
Description (last modified by )
Как мне стало известно из устной беседы, программой выбрана стратегия всегда держать открытым соединение SSH, которое используется для отображения и редактирования информации о пользователях. Тем не менее, как показала проверка, при закрытии соединения SSH со стороны сервера пульт не устанавливает его заново. Как результат, функции отображения и редактирования информации о пользователе не работают до конца работы программы.
Проверялось в r379.
Сценарий проверки:
- Запускаем программу.
- Входим в сеть.
- Убиваем процесс sshd, обслуживающий установленное программой соединение.
- В программе наводим курсор мыши на пользователя, нажимаем "Дополнительные возможности".
- В появившемся контекстном меню выбираем "Информация о пользователе".
Change History (19)
comment:1 by , 8 years ago
Milestone: | Текущее → 1 очередь |
---|
comment:2 by , 8 years ago
Keywords: | SSH interface added |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:3 by , 8 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
В r391 баг по-прежнему присутствует. Более того, стало хуже: если при отсутствии соединения SSH запросить информацию о пользователе, окно программы просто перестает работать (ничего не перерисовывается). Блокируется GUI поток?
follow-up: 5 comment:4 by , 8 years ago
Да, я обращаюсь к SSH в главном потоке программы.
Но под Windows все работает нормально.
comment:5 by , 8 years ago
Replying to dimag:
Да, я обращаюсь к SSH в главном потоке программы.
Не стали реализовывать #183 - и вот закономерный результат...
Но под Windows все работает нормально.
В каком-то частном случае. А в общем - не обязано. Вот Вы пишете "обращаюсь". Что это значит? Насколько я понимаю, программа отправляет в сеть некий запрос и ожидает какой-то ответ. Так? А что будет, если этот ответ по каким-то причинам не придет? Ожидание затянется на довольно длительный период, и в течение этого времени интерфейс программы будет "мертвый"...
Вывод - надо задумывать правильно (это я опять к тикету #183). :)
comment:6 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
r397
Установил врямя ожидания ответа от SSH сервера равного 1 секунде, то есть теперь главный потом зависнет не более чем на 1 секунду. Пользователь может подождать 1 секунду.
comment:7 by , 8 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
В r397 воспроизвел проблему. Интерфейс "заморозился" совсем не на 1 секунду, а навсегда (пока не убил процесс). Таким образом, заявленная проблема не устранена.
comment:9 by , 8 years ago
Description: | modified (diff) |
---|
В описание тикета добавил сценарий, воспроизводящий баг.
comment:10 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
r407
Вынес работу по протоколу SSH в отдельный поток
comment:11 by , 8 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
В r407 проблема не устранена. Информация о пользователе после разрыва соединения SSH как не работала, так и не работает. При выборе пункта "Информация о пользователе" ничего не происходит.
follow-up: 13 comment:12 by , 8 years ago
Я тестировал в r407 под Windows и Kubuntu и у меня соединение по SSH успешно восстанавливалось после принудительного отключения SSH-соединения.
Можете написать лог программы начиная с момента нажатия на кнопку "Получение информации о пользователе".
comment:13 by , 8 years ago
Replying to dimag:
Я тестировал в r407 под Windows и Kubuntu и у меня соединение по SSH успешно восстанавливалось после принудительного отключения SSH-соединения.
Соединение не восстановилось (уже наверное пол-часа как порвано).
Можете написать лог программы начиная с момента нажатия на кнопку "Получение информации о пользователе".
Никакого вывода в консоль, debug.log и main.log при нажатии "Информация о пользователе" нет.
follow-up: 15 comment:14 by , 8 years ago
В r496 я полностью изменил работу с SSH. Как все работает в FreeBSD у вас, Алексей?
comment:15 by , 8 years ago
comment:16 by , 8 years ago
Проверил. Работает плохо. А именно, если соединение разрывается со стороны сервера, информацию о пользователе программа больше не показывает. Вместо этого программа показывает сообщение "Нет связи с SSH сервером" (что не соответствует действительности - связь с сервером есть). В консоль при этом выдается вот что:
[2016/10/24 10:18:32.171090, 2] ssh_connect: libssh 0.7.3 (c) 2003-2014 Aris Adamantiadis, Andreas Schneider, and libssh contributors. Distributed under the LGPL, please refer to COPYING file for information about your rights, using threading threads_noop [2016/10/24 10:18:32.171171, 2] ssh_socket_connect: Nonblocking connection socket: 25 [2016/10/24 10:18:32.171181, 2] ssh_connect: Socket connecting, now waiting for the callbacks to work [2016/10/24 10:18:32.171398, 1] socket_callback_connected: Socket connection callback: 1 (0) [2016/10/24 10:18:32.178451, 1] ssh_client_connection_callback: SSH server banner: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1 [2016/10/24 10:18:32.178474, 1] ssh_analyze_banner: Analyzing banner: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1 [2016/10/24 10:18:32.178483, 1] ssh_analyze_banner: We are talking to an OpenSSH client version: 7.2 (70200) [2016/10/24 10:18:32.228063, 2] ssh_packet_dh_reply: Received SSH_KEXDH_REPLY [2016/10/24 10:18:32.233126, 2] ssh_client_curve25519_reply: SSH_MSG_NEWKEYS sent [2016/10/24 10:18:32.233137, 2] ssh_packet_newkeys: Received SSH_MSG_NEWKEYS [2016/10/24 10:18:32.233432, 2] ssh_packet_newkeys: Signature verified and valid Error %s
comment:17 by , 8 years ago
Александр, я только что вспомнил одну вещь. Когда-то говорилось, что заказчик против вывода сообщений об ошибках в виде всплывающих окон. Смотри, например, #239. А сообщение об отсутствии связи с SSH сервером почему-то выдается именно во всплывающем окне. Нормально ли это? Может надо создать по этому поводу новый тикет?
comment:18 by , 8 years ago
Заказчик не может придумать каким способом отобразить ошибки, которые по смыслу не подходят в аварийный баннер, поэтому согласился на всплывающие окна.
comment:19 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Проверял в r501 под Windows и Ubuntu, закрывал процессы sshd на сервере созданные после первого подключения к серверу со стороны программы, всё работало нормально
r391
Неверно обрабатывались ошибки загрузки и разбора загруженного XML-файла, сохранения загруженного XML-файла.