УкраїнськаEnglishmRussian
Вхід/Новий
У темі багато повідомлень

[BugFixed] QT конфигуратор


Автор Повідомлення
Повідомлення створено: 01. 12. 2011 [12:34]
fido_max
Maxim Kochetkov
Contributor
Автор теми
Зареєстрован(а) с: 28.10.2010
Повідомлення: 129
"roman" wrote:

"fido_max" wrote:

1. В версии 1663 если выбрать в QT конфигураторе на любой нелокальной станции Пользовательские интерфейсы->Рабочий пользовательский интерфейс, то появляется сообщение "время ожидания истекло" и вкладка "пользовательский интерфейс" пустая, хотя по остальным вкладкам все отображается. И в этот момент иногда происходит падение, если кто-то редактирует виджеты:

[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
openscada: ../../src/xcb_io.c:178: dequeue_pending_request: Проверочное утверждение «!xcb_xlib_unknown_req_in_deq» не выполнено.
7|/AGLKS/ | OpenSCADA прервана!
Programm result: 134

У меня это нигде не воспроизводится и я вообще такого никогда не видел. Делайте корку и изучайте: http://wiki.oscada.org/Doc/OtchjotOSboe



Вот дамп трех сбоев.

Сбой происходит так:
Есть два компьютера с запущенной скадой.
На первом открываем рабочий пользовательский интерфейс в режиме конфигурирования и начинаем щелкать по виджетам, заходить в редактирование, смотреть свойства и т.д. (в общем работать).
Со второго компьютера заходим через QTконфигуратор на первый в Пользовательские интерфейсы->Рабочий пользовательский интерфейс и начинаем там переключаться по вкладкам.
Через произвольное количество переключений происходит сбой
После этого первая станция либо мертво виснет, либо падает.
Вкладений файл

dump.log (Тип файлу: text/x-log, Розмір: 5.79 кілобайтів) — 1509 завантажень
Повідомлення створено: 01. 12. 2011 [16:25]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
Это связано с вызовом QT функции запроса количества доступных экранов QDesktopWidget().screenCount() из другого потока (не главного потока QT). Похоже это ещё усугубляется реальным наличием более одного экрана и активностью Xinerma.

Вынес запрос функции QDesktopWidget().screenCount() в поток QT. Проверяйте!

Learn, learn and learn better than work, work and work.
Повідомлення створено: 02. 12. 2011 [08:03]
fido_max
Maxim Kochetkov
Contributor
Автор теми
Зареєстрован(а) с: 28.10.2010
Повідомлення: 129
"roman" wrote:

Это связано с вызовом QT функции запроса количества доступных экранов QDesktopWidget().screenCount() из другого потока (не главного потока QT). Похоже это ещё усугубляется реальным наличием более одного экрана и активностью Xinerma.

Вынес запрос функции QDesktopWidget().screenCount() в поток QT. Проверяйте!


Спасибо. Теперь не падает.



19274