Russian Qt Forum

Qt => Общие вопросы => Тема начата: IGHOR от Март 14, 2008, 04:48



Название: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: IGHOR от Март 14, 2008, 04:48
У меня проект больше 6000 строк, его писал под виндой с интегратором VS2005.
Теперь мне нужно было перенести прогу на линукс,
компиляция успешна но постоянно ошибка:

xcb_io.c:285: _XAllocID: Assertion `!(dpy->flags & (1L << 3))' failed.

Ось Suse10.3, уже все перепробовал и не могу найти в чем причина.
Помогите пожалуйста.


Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: Tonal от Март 14, 2008, 07:43
А отладчик использовать нельзя?


Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: Вячеслав от Март 14, 2008, 21:41
Qt-interest Archive, February 2008
xcb_io.c:280: _XAllocID: Assertion `!(dpy->flags & (1L << 3))' failed.
Цитировать
Otherwise xcb_io.c is not part of Qt. This is probably a problem with your
system
Короче - вправляй мозги операционке ;)

Выкинуть нах сусю и поставить что-нибудь типа дебы\убуту нихт ?


Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: pastor от Март 15, 2008, 00:16
Стоит Suse10.3 - такое проблемы нет. Так что ось менять не нужно, а просто допилить то что стоит


Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: IGHOR от Март 15, 2008, 04:03
Сапдейтил Suse, глюк не пропадает.
А в каком линуксе точно такой ошибки не будет ?


Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: Пантер от Март 15, 2008, 12:56
Например Slackware.


Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: Вячеслав от Март 15, 2008, 15:24
А вообще оно мешает ? Это ошибка или предупреждение ?


Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: pastor от Март 15, 2008, 15:36
Немножко погуглив, нашел инфу что такое случаеться на ряде дистрибутивов: Fedora 8, openSUSE 10.3, Ubuntu 7.04 etc. И Qt здесь похоже непричем.

https://lists.ubuntu.com/archives/ubuntu-bugs/2007-March/432916.html
http://www.redhat.com/archives/rhl-list/2007-November/msg02674.html
https://lists.linux-foundation.org/pipermail/lsb-discuss/2007-August/004171.html

Например я и многие мои коллеги юзают openSUSE 10.3 и таких проблем нет. На ряде других дистрибутивов тоже про такое не слышал

2 IGHOR: А какая версия Qt и какие параметры конфигурации?



Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: IGHOR от Март 15, 2008, 17:57
А вообще оно мешает ? Это ошибка или предупреждение ?
ошибка и прога вылетает.

Немножко погуглив, нашел инфу что такое случаеться на ряде дистрибутивов: Fedora 8, openSUSE 10.3, Ubuntu 7.04 etc. И Qt здесь похоже непричем.

https://lists.ubuntu.com/archives/ubuntu-bugs/2007-March/432916.html
http://www.redhat.com/archives/rhl-list/2007-November/msg02674.html
https://lists.linux-foundation.org/pipermail/lsb-discuss/2007-August/004171.html

Например я и многие мои коллеги юзают openSUSE 10.3 и таких проблем нет. На ряде других дистрибутивов тоже про такое не слышал

2 IGHOR: А какая версия Qt и какие параметры конфигурации?



configure -qt-sql-mysql -no-qt3support (и еще nas sound support, не помню как пишется)

Еще одно, я продебагал и кажется ошибка выскакивает при
Код:
QPixmap *tempPix=new QPixmap;
   tempPix->loadFromData(firmLoad.record().value("Icon").toByteArray());
но без него не обойтись.
Попробуйте кто нибуть на suse поюзать эту функцию


Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: IGHOR от Март 16, 2008, 02:11
Например Slackware.

я нашел Slackware, 3 сд, а что оно собой представляет ?


Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: Пантер от Март 16, 2008, 09:58
Чтобы не разводить тут безполезный разговор, на счет Slackware давай в личку.


Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: IGHOR от Март 17, 2008, 13:40
tempPix->loadFromData(firmLoad.record().value("Icon").toByteArray());
Я использовал в трэде. Пишу это в главном потоке - ошибки нет, все без глюков.
Может теперь ктонибуть подскажет как поправить трэд ?


Название: Re: Assertion !(dpy->flags & (1L << 3)) failed.
Отправлено: Sergeich от Март 21, 2008, 11:12
QPixmap хранится на стороне X-сервера. Чтобы изменить его нужно передать запрос Х-серверу. Запросы к Х-серверу по умолчанию разрешены только из одной (главной событийной) нити. Чтобы разрешить запросы из других ниток пользуют XInitThreads() перед всеми остальными иксовыми вызовами (в начале main). Однако тролли это использовать не рекомендуют и делать многопоточную поддержку для QPixmap пока не собираются. Так что лучше всего использовать QPixmap только в главной нитке, а в остальных пользовать QImage.