Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

При нажатии Quit программа не выходит #59

Open
strowk opened this issue Mar 6, 2017 · 6 comments
Open

При нажатии Quit программа не выходит #59

strowk opened this issue Mar 6, 2017 · 6 comments

Comments

@strowk
Copy link

strowk commented Mar 6, 2017

При нажатии Quit программа не выходит (не исчезает из трея, не исчезает в процессах). То есть её можно открыть и увидеть там уже расшифрованные последние открытые записи. При этом ей невозможно нормально пользоваться - любое нажатие в окне игнорируется.
Проблема не возникает сразу, а только через некоторое время, если открытой программой не пользоваться. Если открыть, ввести пароль и тут же открыть, то всё отрабатывает штатно, включая git синхронизацию.
Логов нигде не нашёл, что надо выслать?

@strowk
Copy link
Author

strowk commented Mar 6, 2017

WA - убивать процесс, но это как-то не круто. Плюс, вероятно так синхронизация не происходит и можно потерять данные.

@xintrea
Copy link
Owner

xintrea commented Mar 9, 2017

Не понял последовательность действий.

Проблема не возникает сразу, а только через некоторое время, если открытой программой не пользоваться. Если открыть, ввести пароль и тут же открыть, то всё отрабатывает штатно, включая git синхронизацию.

Значит, вы запускаете программу и некоторое время ей не пользуетесь. Она просто висит в трее. Что потом вы делете? У вас несколько раз написано "открыть", и я не пойму что вы открываете.

Логов нигде не нашёл, что надо выслать?

Такой проблемы ранее не было. Поэтому лучше сделать скринкаст и выслать его, чтоб я своими глазами увидел что у вас происходит. Логи активируются в Инструменты - Настройки - Разное - Выводить отладочные сообщения в консоль. Перезапускаете MyTetra, доходите до проблеммного момента, копируете лог и высылаете.

Так же нужна информация по:

  • Операционная система
  • Десктоп окружение (в случае Linux)
  • Откуда взяли дистрибутив программы (уже есть несколько сторонних кривых сборок под конкретные дистрибутивы Linux с какими-то кастомными сборками Qt, почему они такие - понятия не имею).

@strowk
Copy link
Author

strowk commented Mar 19, 2017

Значит, вы запускаете программу и некоторое время ей не пользуетесь. Она просто висит в трее. Что потом вы делете? У вас несколько раз написано "открыть", и я не пойму что вы открываете.

Я там слегка ошибся, надо

Если открыть, ввести пароль и тут же закрыть, то всё отрабатывает штатно, включая git синхронизацию.

Да, непонятно сформулировал. В некоторых местах под открыть имелось ввиду запустить программу, а в других развернуть из трея.
Реально воспроизводилась эта проблема дважды в один и тот же день, с тех пор пока ещё не видел, если будет - соберу информацию - логи, скринкаст и пришлю.
Ось windows 7 x64 на той машине, где это происходило. Дистрибутив брал тут http://webhamster.ru/site/page/index/articles/projectcode/105 - MyTetra v.1.42 для Windows
У меня настроена синхронизация по доке http://webhamster.ru/site/page/index/articles/projectcode/170 и включено шифрование.

Сценарий такой - утром запустил программу, ввёл пароль, что-то поредактировал, свернул в трей. Через некоторое время (несколько часов) решил отойти и перед этим снять доступ, для этого жму правой кнопкой в значок в трее, нажимаю Quit - нет реакции, значок на месте. Жму по нему левой - появляется окно программы, не реагирующее ни на какие нажатия совершенно, повторные запросы в трей - меню - Quit тоже ни к чему не приводят. Нагрузка в процессах нулевая, после пары минут вырубил процесс и ушёл. Вернулся, запустил программу, поработал, попробовал закрыть (трей - меню - Quit) - закрылось корректно, открыл, ввёл пароль, снова что-то редактировал. Ближе к вечеру (ещё несколько часов) жму в трей - меню - Quit, снова зависло. Вырубил процесс. Потом опять запустил, ввёл пароль, и сразу попробовал через трей - меню - Quit, сработало нормально. То есть сразу после запуска вырубание не зависает, только после некоторого времени висения в трее.

@xintrea
Copy link
Owner

xintrea commented Apr 14, 2017

Попробуйте понаблюдать, не зависит ли такое поведение от двух вещей.

  1. На программу влияет антивирус. У вас установлен антивирус? Я так бодался с Касперским. Пока не прописал ему в исключения MyTetra, он периодически не давал выполняться процессу программы, и выглядело это именно так, как вы описываете.

  2. Не производилась ли в этот момент процедура фоновой синхронизации базы MyTetra? Понимаю, что отследить это не так то просто, но в команды синхронизации можно прописать команды записывания в лог-файл даты/времени старта синхронизации и окончания синхронизации. Если у вас зависал сам процесс синхронизации (стартанул, но не закончился), в логе будет видна строка времени старта, но не будет строки со временем завершения.

В MyTetra предусмотрена обработка параллельного потока, в котором запускается синхронизация, все это сделано средствами Qt. Но у меня была пара ситуаций, когда событийная модель Qt начинала глючить при использовании параллельного потока. Например, если отредактировать заголовок записи в середине автоматической синхронизации (кнопка синхронизации в этот момент становится неактивной, и это индикатор, что идет синхронизация), то пока синхронизация не закончится, не произойдет обновления списка записей на экране, и будет видно прежнее название записи. При этом другие события работают нормально - редактор работает, меню работает. Чем так не угодило обновление списка - пока загадка.

@strowk
Copy link
Author

strowk commented Apr 18, 2017

На программу влияет антивирус. У вас установлен антивирус? Я так бодался с Касперским. Пока не прописал ему в исключения MyTetra, он периодически не давал выполняться процессу программы, и выглядело это именно так, как вы описываете.
Да, установлен именно он. Он вообще никак про программу не высказывается и в его логах я нашёл только упоминания о блокировке сетевых активностей на внутренние адреса

Не производилась ли в этот момент процедура фоновой синхронизации базы MyTetra? Понимаю, что отследить это не так то просто, но в команды синхронизации можно прописать команды записывания в лог-файл даты/времени старта синхронизации и окончания синхронизации. Если у вас зависал сам процесс синхронизации (стартанул, но не закончился), в логе будет видна строка времени старта, но не будет строки со временем завершения.
Очень подозреваю, что производилась, я пока что включил это эксперементальное логгирование в настройках, может что-то выловит. Воспроизводится пару раз в неделю примерно.

@xintrea
Copy link
Owner

xintrea commented Jan 10, 2019

В общем, если идет фоновая синхронизация (это легко обнаружить по тому, что кнопка синхронизации становится в этот момоент неактивной), программа действительно не может закрыться. Видимо из-за того, что ее держит дочерний процесс, и Qt это как-то отслеживает. Пока решения нет, но баг не критический.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants