Opened 8 years ago

Last modified 8 years ago

#369 closed баг

При потере соединения SSH не работает "Информация о пользователе" — at Version 9

Reported by: alx Owned by: dimag
Priority: major Milestone: 1 очередь
Component: ПО MC04-Dispatcher. Пульт диспетчера/техника Keywords: SSH, interface
Cc: san

Description (last modified by alx)

Как мне стало известно из устной беседы, программой выбрана стратегия всегда держать открытым соединение SSH, которое используется для отображения и редактирования информации о пользователях. Тем не менее, как показала проверка, при закрытии соединения SSH со стороны сервера пульт не устанавливает его заново. Как результат, функции отображения и редактирования информации о пользователе не работают до конца работы программы.

Проверялось в r379.

Сценарий проверки:

  1. Запускаем программу.
  2. Входим в сеть.
  3. Убиваем процесс sshd, обслуживающий установленное программой соединение.
  4. В программе наводим курсор мыши на пользователя, нажимаем "Дополнительные возможности".
  5. В появившемся контекстном меню выбираем "Информация о пользователе".

Change History (9)

comment:1 by san, 8 years ago

Milestone: Текущее1 очередь

comment:2 by dimag, 8 years ago

Keywords: SSH interface added
Resolution: fixed
Status: newclosed

r391
Неверно обрабатывались ошибки загрузки и разбора загруженного XML-файла, сохранения загруженного XML-файла.

comment:3 by alx, 8 years ago

Resolution: fixed
Status: closedreopened

В r391 баг по-прежнему присутствует. Более того, стало хуже: если при отсутствии соединения SSH запросить информацию о пользователе, окно программы просто перестает работать (ничего не перерисовывается). Блокируется GUI поток?

comment:4 by dimag, 8 years ago

Да, я обращаюсь к SSH в главном потоке программы.
Но под Windows все работает нормально.

in reply to:  4 comment:5 by alx, 8 years ago

Replying to dimag:

Да, я обращаюсь к SSH в главном потоке программы.

Не стали реализовывать #183 - и вот закономерный результат...

Но под Windows все работает нормально.

В каком-то частном случае. А в общем - не обязано. Вот Вы пишете "обращаюсь". Что это значит? Насколько я понимаю, программа отправляет в сеть некий запрос и ожидает какой-то ответ. Так? А что будет, если этот ответ по каким-то причинам не придет? Ожидание затянется на довольно длительный период, и в течение этого времени интерфейс программы будет "мертвый"...

Вывод - надо задумывать правильно (это я опять к тикету #183). :)

Last edited 8 years ago by alx (previous) (diff)

comment:6 by dimag, 8 years ago

Resolution: fixed
Status: reopenedclosed

r397
Установил врямя ожидания ответа от SSH сервера равного 1 секунде, то есть теперь главный потом зависнет не более чем на 1 секунду. Пользователь может подождать 1 секунду.

comment:7 by alx, 8 years ago

Resolution: fixed
Status: closedreopened

В r397 воспроизвел проблему. Интерфейс "заморозился" совсем не на 1 секунду, а навсегда (пока не убил процесс). Таким образом, заявленная проблема не устранена.

comment:8 by dimag, 8 years ago

Опишите что вы делаете что генерации ошибочной ситуации.

comment:9 by alx, 8 years ago

Description: modified (diff)

В описание тикета добавил сценарий, воспроизводящий баг.

Note: See TracTickets for help on using tickets.