Ticket #52 (closed ошибка: неисправимо)

Opened 3 years ago

Last modified 17 months ago

В определенный момент просто зависает и начинает есть память

Reported by: dmitriid.livejournal.com Owned by: dmitriid.livejournal.com
Priority: низкий Milestone: 1.0rc3
Component: all Version: 1.0
Keywords: apple Cc:

Description

В определенный момент (при переходе между сообщениями, при синхронизации и т.п.) может прост озависнуть иначать жутко жрать память и до 70% процессора.

Возможно это MacOS-specific, прикладываю sample процесса, выполненного штатными средствами операционки

Attachments

Sample of avalon.txt Download (203.7 KB) - added by dmitriid.livejournal.com 3 years ago.

Change History

Changed 3 years ago by dmitriid.livejournal.com

comment:1 follow-up: ↓ 2 Changed 3 years ago by dmitriid.livejournal.com

ЗЫ.

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

comment:2 in reply to: ↑ 1 Changed 3 years ago by antonbatenev.ya.ru

Replying to dmitriid.livejournal.com:

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

Приложение однопоточное, по этому локов там возникнуть не должно. Хранилище, как я понимаю, SQLite? Повторяется ли такое же поведение на хранилище MySQL и/или с включенным/отключенным сжатием сообщений?

Можно еще попробовать подождать некоторое время - если это проблема при работе с БД, то должна отвалиться по таймауту. Можно попробовать на самой базе выполнить (если база большая):

ANALYSE;
VACUUM;

comment:3 Changed 3 years ago by dmitriid.livejournal.com

Надо будет попробовать. Послднее время такое поведение стало проявляться реже. В общем, мистика :)

comment:4 Changed 3 years ago by dmitriid.livejournal.com

Гонял под дебаггером. Вот примерный стек зависшего метода:

...системные вызовы...
QDialog::exec()
FormMain::menu_service_synchronize_triggered

а именно в строчке после комментария коммит данных в строке

if (form->exec() == QDialog::Accepted)

то есть что-то где-то провисает именно в form->exec()

далее спекуляция
я могу быть неправ, но если лочится UI тред, то оно тут просто зависнет, не показавшись. при каких условиях это происходит — хз

comment:5 Changed 17 months ago by antonbatenev.ya.ru

  • Status changed from new to closed
  • Resolution set to неисправимо
  • Milestone set to 1.0rc3

Закрыто за давностью времени. Хотелось бы сборку под новые версии.

Note: See TracTickets for help on using tickets.