Решено: Баг в QFileDialog? (или проблема только у меня)

Модератор: Модераторы разделов

Ответить
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Решено: Баг в QFileDialog?

Сообщение devilr »

Доброго времени суток!
Некоторое время назад наблюдаю странную проблему: в Qt есть класс QFileDialog. В нем есть опция QFileDialog::DontUseNativeDialog, Если её присвоить значение false, то диалог выбора файлов откроется без проблем.
Если эту опцию установить в true - вначале ничего не будет происходить, затем появится белое окно (видимо сам диалог) и, через некоторое время, приложение упадёт. Перед падением будет наблюдаться увеличение потребления памяти.
Это только у меня так?

Во вложении сделал небольшой тестовый проект. Используется Qt 5.15.11 (на Qt6 не пробовал).
P.S. Для проверки пробовал запустить стороннюю программу (которая тоже использует Qt) - LMMS. Тоже падает при попытке открыть диалог выбора файлов.
Вложения
untitled.tar.gz
(1.45 КБ) 12 скачиваний
Последний раз редактировалось devilr 16.01.2024 21:51, всего редактировалось 3 раза.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2660
ОС: Gentoo

Re: Баг в QFileDialog?

Сообщение ormorph »

Ни чего такого не наблюдаю, диалог не падает.
Если хочется узнать почему падает, то запустите в gdb это. После получения информации в каких библиотеках это происходит, их нужно пересобрать эти библиотеки с отладочной информацией и установкой исходников. После этого можно просто в отладчике просмотреть где это происходит. Тут скорее всего Gentoo, тогда подробнее по отладке смотреть тут.
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1380
ОС: Slackware

Re: Баг в QFileDialog?

Сообщение UnixNoob »

Offtopic
ormorph, о, вы живы-здоровы, давно вас не было :drinks:
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2660
ОС: Gentoo

Re: Баг в QFileDialog?

Сообщение ormorph »

UnixNoob писал:
24.12.2023 17:36
Offtopic
ormorph, о, вы живы-здоровы, давно вас не было :drinks:
Да пока ещё...
Лечусь потихоньку от привычки давать советы, от этого больше пользы в других местах.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Баг в QFileDialog?

Сообщение devilr »

ormorph писал(а):
24.12.2023 17:18
Ни чего такого не наблюдаю, диалог не падает.
Спасибо, я просто хотел, чтобы это запустил ещё кто-то, кроме меня.
Добавлено (20:08):
Попробовал запустить через gdb

Код: Выделить всё

$ gdb untitled 
GNU gdb (Gentoo 13.2 vanilla) 13.2
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from untitled...
(gdb) run
Starting program: /dev/shm/untitled/untitled 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff356f6c0 (LWP 27429)]
[New Thread 0x7ffff2d6e6c0 (LWP 27430)]
[New Thread 0x7fffe33ff6c0 (LWP 27432)]
[Detaching after fork from child process 27433]
[New Thread 0x7fffe2bfe6c0 (LWP 27435)]
[New Thread 0x7fffe23fd6c0 (LWP 27480)]

Thread 1 "untitled" received signal SIGSEGV, Segmentation fault.
0x00007ffff67817ea in ?? () from /lib64/libc.so.6
Попробовал пересобрать sys-libs/glibc-2.37-r7 - толку пока что нет.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Obscurus
Сообщения: 171

Re: Баг в QFileDialog?

Сообщение Obscurus »

вначале ничего не будет происходить, затем появится белое окно (видимо сам диалог)
Некоторое время назад стало всплывать в различных программах (например, Librecad и Cura). Вероятно, после того, как пакетный менеджер при установке затянул ещё и обновления. Но у меня приложение не падает, а через пару-тройку минут всё же отрисовывает окно.
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2660
ОС: Gentoo

Re: Баг в QFileDialog?

Сообщение ormorph »

devilr писал:
24.12.2023 19:12
Попробовал пересобрать sys-libs/glibc-2.37-r7 - толку пока что нет.
Я же ссылку дал. Т.е. нужно создать два файла конфига для сборки debugsyms и installsource, как там показано. А далее создать файл в каталоге /etc/portage/package.env, например /etc/portage/package.env/debug.env и назначить пакеты для сборки с отладочной информацией и установкой исходников.
/etc/portage/package.env/debug.env:

Код: Выделить всё

sys-libs/glibc debugsyms installsource
и так далее
После этого только пере собрать glibc и т.д. Обычно нужно еще после того как запустили и программа упала gdb еще команду where, либо bt, должно показать ещё что то показать, например в каких библиотеках это произошло, их то же нужно пересобрать с отладочной информацией и т.д.. После того как собрали с отладочной информацией всё что нужно, можно запустить в gdb и после падения выполнить:

Код: Выделить всё

(gdb) bt full
Тогда покажет более менее читабельную информацию.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Баг в QFileDialog?

Сообщение devilr »

ormorph пока проблема скорее в том, чтобы определить - проблема локальная или глобальная. На этом форуме, только один сказал, что есть некая проблема - Obscurus.

Код: Выделить всё

(gdb) bt full
я смотрел, конечно же. Ничего особо криминального не вижу.
А просто так пересобирать всё в debug-mode - идея так себе. Хотя бы потому, что непонятно, что именно приводит к проблеме...
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2660
ОС: Gentoo

Re: Баг в QFileDialog?

Сообщение ormorph »

devilr писал:
25.12.2023 14:45
ormorph пока проблема скорее в том, чтобы определить - проблема локальная или глобальная.
Запускали хоть только в одном оконном менеджере? Если запускать в openbox, то без разницы что там выставлено, должно всё время запускать тот диалог что запускается при значении true, так как другого кроме как встроенного там нет.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Баг в QFileDialog?

Сообщение devilr »

ormorph писал(а):
25.12.2023 14:54
Запускали хоть только в одном оконном менеджере?
Да. Как и раньше. Вообще, этой машине уже 2 года, я как на неё поставил в своё время Calculate Linux, так и пользую. Разве что обновляю регулярно. И, до сих пор, таких глюков не наблюдал.
Чисто для своих программ, я эту настройку просто могу поставить в фальш - может когда и починят, не критично. Из глобальных, на базе Qt у меня есть разве что LMMS, но я её крайне редко пользуюсь.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2660
ОС: Gentoo

Re: Баг в QFileDialog?

Сообщение ormorph »

devilr писал:
25.12.2023 15:46
Чисто для своих программ, я эту настройку просто могу поставить в фальш - может когда и починят, не критично.
Надежда умирает последней. У меня что в TDE, что в KDE всё работает нормально без сбоев, только в TDE, постоянно работает стандартный Qt диалог. Обновлялся только вчера.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Баг в QFileDialog?

Сообщение devilr »

ormorph писал(а):
25.12.2023 16:04
постоянно работает стандартный Qt диалог
Кстати, вспомнил, что какое-то время назад, проскакивал баг, при котором в стандартном диалоге каталоги с русскими названиями (типа Документы, Рабочий стол и прочее) буквы становились "кракозябрами" и наблюдались дикие тормоза при работе в этом диалоге. Но - падений не было. Потом, это как-то прошло.
Добавлено (17:03):
ormorph, кстати, а в какой версии Qt проверяли? Может в этом дело?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2660
ОС: Gentoo

Re: Баг в QFileDialog?

Сообщение ormorph »

devilr писал:
25.12.2023 16:40
ormorph, кстати, а в какой версии Qt проверяли? Может в этом дело?

Код: Выделить всё

$ eix qtgui
[I] dev-qt/qtgui
     Доступные версии:      (5) 5.15.11-r2(5/5.15.11)^t
       {+X accessibility dbus debug egl eglfs evdev gles2-only ibus jpeg +libinput linuxfb +png test tslib tuio +udev vnc vulkan wayland}
     Установленные версии:  5.15.11-r2(5/5.15.11)^t(00:00:53 24.11.2023)(X accessibility dbus egl jpeg libinput png udev vulkan -debug -eglfs -evdev -gles2-only -ibus -linuxfb -test -tslib -tuio -vnc -wayland)
     Домашняя страница:     https://www.qt.io/ https://invent.kde.org/qt/qt/qtbase https://community.kde.org/Qt5PatchCollection
     Описание:              The GUI module and platform plugins for the Qt5 framework
Я проверял как на qt5, так и на qt6, всё норм.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Баг в QFileDialog?

Сообщение devilr »

Совершенно случайно выяснил, что если создать нового пользователя, открыть консоль, загрузиться этим пользователем, скопировать файл untitled в его домашний каталог и попробовать запустить - всё нормально работает.
Как думаете, в чём может быть дело?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
cyberhoffman
Сообщения: 45
ОС: Gentoo

Re: Баг в QFileDialog?

Сообщение cyberhoffman »

Около года назад была похожая (или эта же) проблема: комп надолго задумывался при запуске кутешных опендиалогов. И неважно, откуда стартовали эти диалоги, из моих ли это проектов или даже при открытии чего-нибудь в qtcreator. Нагуглил решение на буржуйских сайтах: нужно очистить все qt-конфиги из хомяка юзера (точно уже не помню, но вроде ~/.config/qt-что-то-там, или ~/.local/share/qt-что-то-там).
Как думаете, в чём может быть дело?
Проблема появилась, насколько помнится, после обновления Qt в системе. Поэтому подозреваю, что конфигах хомяка где-то что-то было прописано предыдущей версией фреймворка, что жутко не нравилось обновлённой и последняя долго пыталась это переварить, но при этом даже не думала исправлять имеющийся конфиг.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20799
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Баг в QFileDialog?

Сообщение Bizdelnick »

Там ведь ещё наверняка какие-нибудь превьюхи генерятся, возможно, в этом проблема.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Баг в QFileDialog?

Сообщение devilr »

cyberhoffman спасибо, вечером проверю.
Bizdelnick всякие кеши я очистил в первую очередь, не помогло. А вот насчёт настроек самого Qt - очень даже может быть.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20799
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Баг в QFileDialog?

Сообщение Bizdelnick »

devilr писал:
16.01.2024 16:01
всякие кеши я очистил в первую очередь, не помогло
Я не про кеши. Какой-то генератор превьюх может глючить на определённом файле или файлах какого-то типа. А у другого пользователя работает, потому что у него в хомяке проблемного файла нет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Баг в QFileDialog?

Сообщение devilr »

Bizdelnick писал:
16.01.2024 16:04
А у другого пользователя работает, потому что у него в хомяке проблемного файла нет.
Так превьюха тогда будет влиять, только если она лежит на рабочем столе. Или нет?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20799
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Баг в QFileDialog?

Сообщение Bizdelnick »

devilr писал:
16.01.2024 16:21
Так превьюха тогда будет влиять, только если она лежит на рабочем столе.
Не знаю, что он там по умолчанию открывает. Может быть, хомяк, может быть, недавно открытые файлы. Надо смотреть.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3670
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Баг в QFileDialog?

Сообщение devilr »

Решение нашлось.
Файл .config/QtProject.conf оказался почему то весом аж в 570426259 байт. Удаление оного решило проблему.
P.S. Оказывается, не только у меня была такая проблема
https://forum.qt.io/topic/144685/unrealistically-large-config-file-of-qtproject/5
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Ответить