Electron BrowserWindow зависает и перестает отвечать

#electron #window #freeze

#electron #окно #замораживание

Вопрос:

У нас есть сборки нашего приложения для Mac и window с фреймворком Electron. И многие наши пользователи жалуются, что приложение иногда зависает и перестает отвечать на запросы. Мониторинг Sentry показывает, что у нас есть много сообщений о том, что приложение перестает отвечать на запросы, и многие пользователи сталкиваются с этой проблемой. Но когда приложение запускается в собственном браузере, таком как Google Chrome, этого не происходит.

Электронная версия 8.5.1 — это последняя версия 8.x на данный момент. Мы не можем перейти на более высокую версию, потому что есть некоторые важные вещи, которые корректно работают только на этой. Этот, например — https://github.com/electron/electron/issues/24384 (Он закрыт, но все еще не работает).

Изучение журналов Sentry не помогло нам понять, в чем причина. Это происходит в разное время, и мы не нашли, от чего это может зависеть.

Просто простой пример журнала: введите описание изображения здесь

Мы создали обходной путь, который помогает перезагрузить окно приложения.

 window.on('unresponsive', () => {
   // there we can destroy window and create new
});
  

но это не устраняет корень причины.

Может ли кто-нибудь помочь решить эту проблему или почему это может происходить? Может быть, у кого-то такие же проблемы?

Комментарии:

1. AFAIK, unresponsive событие срабатывает через ~ 30 секунд. В то время ваше исходное изображение показывало ошибку. Новое изображение также содержит события, предшествующие unresponsive событию на этот интервал. Не видя никакого кода приложения, я не думаю, что мы можем что-то сделать. Посмотрите на код, который выполняется за 30 секунд до unresponsive события.