Giter Club home page Giter Club logo

Comments (28)

tsujan avatar tsujan commented on July 20, 2024

Thanks for the detailed report!

We still don't know whether this is a bug in an unstable Qt version or a potential problem in libfm-qt. Since I don't use an unstable Qt and this crash doesn't happen here, I can't confirm it (yet?).

That being said, if you think this is really a bug in libfm-qt and have a backward compatible solution, you're welcome to make a PR.

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

For the (future) record:

That commit was supposed to fix https://bugreports.qt.io/browse/QTBUG-44962.

from libfm-qt.

Chiitoo avatar Chiitoo commented on July 20, 2024

Indeed I figured this might be a /bit/ early, but thought I'd report it as at least a heads-up, in case someone sees that a fix will definitely be required.

I'll keep my eye, or eyes on changes, and will of course update/pull request in case I come up with something myself. :]

Thanks!

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

@Chiitoo A check for nullity should prevent the crash but I'm not sure that it'll be enough to prevent side effects or that something else will be needed too. If the problem persists when Qt-5.11 gets stable, adding a fix or, perhaps, a workaround for a new Qt bug won't be difficult ;)

from libfm-qt.

agaida avatar agaida commented on July 20, 2024

can confirm the ProxyModelFilter bug in Arch with Qt 5.11rc1

Thread 1 "pcmanfm-qt" received signal SIGSEGV, Segmentation fault.
Fm::ProxyFolderModel::filterAcceptsRow (this=0x555555914750, source_row=0, source_parent=...)
    at /home/agaida/lxqt/libfm-qt-git/src/libfm-qt/src/proxyfoldermodel.cpp:119
119             auto info = srcModel->fileInfoFromIndex(srcModel->index(source_row, 0, source_parent));
(gdb) bt
#0  0x00007ffff74ef952 in Fm::ProxyFolderModel::filterAcceptsRow(int, QModelIndex const&) const (this=0x555555914750, source_row=0, source_parent=...)
    at /home/agaida/lxqt/libfm-qt-git/src/libfm-qt/src/proxyfoldermodel.cpp:119
#1  0x00007ffff5db8138 in  () at /usr/lib/libQt5Core.so.5
#2  0x00007ffff5dba2fd in  () at /usr/lib/libQt5Core.so.5
#3  0x00007ffff5dbaee9 in  () at /usr/lib/libQt5Core.so.5
#4  0x00007ffff5e03a0c in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5
#5  0x00007ffff5d8ccaf in QAbstractItemModel::rowsInserted(QModelIndex const&, int, int, QAbstractItemModel::QPrivateSignal) () at /usr/lib/libQt5Core.so.5
#6  0x00007ffff5d9479c in QAbstractItemModel::endInsertRows() () at /usr/lib/libQt5Core.so.5
#7  0x00007ffff74eb117 in Fm::FolderModel::onFilesAdded(Fm::FileInfoList const&) (this=0x7fffe4006850, files=...)
    at /home/agaida/lxqt/libfm-qt-git/src/libfm-qt/src/foldermodel.cpp:87
#8  0x00007ffff5e03b60 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5
#9  0x00007ffff754a955 in Fm::Folder::filesAdded(Fm::FileInfoList&) (this=this@entry=0x555555994410, _t1=...)
    at /home/agaida/lxqt/libfm-qt-git/src/build/src/fm-qt_autogen/TAC5DWH4SE/moc_folder.cpp:304
#10 0x00007ffff74c0511 in Fm::Folder::onDirListFinished() (this=0x555555994410) at /home/agaida/lxqt/libfm-qt-git/src/libfm-qt/src/core/folder.cpp:528
#11 0x00007ffff5e042e2 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#12 0x00007ffff6b49984 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#13 0x00007ffff6b5125b in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#14 0x00007ffff5dd9bc9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#15 0x00007ffff5ddcc5c in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#16 0x00007ffff5e2d864 in  () at /usr/lib/libQt5Core.so.5
#17 0x00007ffff5067368 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#18 0x00007ffff50675b1 in  () at /usr/lib/libglib-2.0.so.0
#19 0x00007ffff506763e in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#20 0x00007ffff5e2ce49 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#21 0x00007fffecbdbb32 in  () at /usr/lib/libQt5XcbQpa.so.5
#22 0x00007ffff5dd885c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#23 0x00007ffff5de0b56 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#24 0x0000555555575b81 in main ()

Sorry, couldn't build Qt 5.11 with debugging symbols - kde-unstable is likely not a first class arch member, so no PKGBUILD/Sources available (or i'm not clever enough)

from libfm-qt.

agaida avatar agaida commented on July 20, 2024

@tsujan - marked both bugs by @Chiitoo as release critical - esp. this one is a bummer because this bug prevent any testing of pcmanfm-qt under Qt 5.11 (if not empty folders are involved)

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

@agaida I can't be sure until Qt5.11 comes to Manjaro Testing. I can make my other computer have Manjaro unstable though. That might take some time.

In the meantime, could you test an idea? Change

bool ProxyFolderModel::filterAcceptsRow(int source_row, const QModelIndex& source_parent) const {
and its following lines to this:

bool ProxyFolderModel::filterAcceptsRow(int source_row, const QModelIndex& source_parent) const {
    if(!showHidden_) {
        if(FolderModel* srcModel = static_cast<FolderModel*>(sourceModel())) {
            auto info = srcModel->fileInfoFromIndex(srcModel->index(source_row, 0, source_parent));
            if(info && (info->isHidden() || (backupAsHidden_ && info->isBackup()))) {
                return false;
            }
        }
    }
    // apply additional filters if there're any
..........

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

It seems I should expect crashes in FeatherPad and Kvantum too. If so, I'll have the tedious job of looking into Qt5.11 source to know what has changed here and there..... :(

from libfm-qt.

agaida avatar agaida commented on July 20, 2024

i can understand your pain, spend several hours in the last two days playing with Arch and an activated kde-unstable repository - and to my surprise most things went well (ok, we don't talk about the missed PKGBUILD and the prepared sources for Qt 5.11rc - so i couldn't rebuild 5.11 with debug symbols).

Will test your suggested change later today, maybe @Chiitoo can jump right in too.

from libfm-qt.

Chiitoo avatar Chiitoo commented on July 20, 2024

Thanks for the suggestion! I had tried some similar changes, but had no success so far. :\

Aside from the line change to 'if(!filter->filterAcceptsRow(this, fileInfo))', the backtrace seems identical:

#0  Fm::ProxyFolderModel::filterAcceptsRow (this=0x555cc148cdc0, source_row=0, source_parent=...)
    at src/proxyfoldermodel.cpp:128
#1  0x00007f60a9dc49e9 in QSortFilterProxyModelPrivate::filterAcceptsRowInternal
    (this=this@entry=0x555cc148cdf0, 
    source_row=source_row@entry=0, source_parent=...)
    at src/corelib/itemmodels/qsortfilterproxymodel.cpp:320
#2  0x00007f60a9dc9691 in QSortFilterProxyModelPrivate::source_items_inserted
    (this=this@entry=0x555cc148cdf0, source_parent=..., 
    start=start@entry=0, end=end@entry=1, orient=orient@entry=Qt::Vertical)
    at src/corelib/itemmodels/qsortfilterproxymodel.cpp:835
#3  0x00007f60a9dcbb78 in QSortFilterProxyModelPrivate::_q_sourceRowsInserted
    (this=0x555cc148cdf0, source_parent=..., start=0, end=1)
    at src/corelib/itemmodels/qsortfilterproxymodel.cpp:1504
#4  0x00007f60a9dcc4c5 in QSortFilterProxyModel::qt_static_metacall (_o=<optimized out>,
    _c=<optimized out>, _id=<optimized out>, 
    _a=<optimized out>) at
    ../../include/QtCore/../../../qtcore-5.11.9999/src/corelib/tools/qscopedpointer.h:138
#5  0x00007f60a9e10bfd in QMetaObject::activate (sender=sender@entry=0x555cc15c3970,
    signalOffset=<optimized out>, 
    local_signal_index=local_signal_index@entry=10, argv=argv@entry=0x7ffd582d8bb0)
    at src/corelib/kernel/qobject.cpp:3771
#6  0x00007f60a9e10f8a in QMetaObject::activate (sender=sender@entry=0x555cc15c3970, 
    m=m@entry=0x7f60aa23e5c0 <QAbstractItemModel::staticMetaObject>,
    local_signal_index=local_signal_index@entry=10, 
    argv=argv@entry=0x7ffd582d8bb0)
    at src/corelib/kernel/qobject.cpp:3633
#7  0x00007f60a9da65c7 in QAbstractItemModel::rowsInserted (this=this@entry=0x555cc15c3970,
    _t1=..., _t2=<optimized out>, 
    _t3=<optimized out>, _t4=...) at .moc/moc_qabstractitemmodel.cpp:587
#8  0x00007f60a9dacebe in QAbstractItemModel::endInsertRows (this=this@entry=0x555cc15c3970)
    at src/corelib/itemmodels/qabstractitemmodel.cpp:2733
#9  0x00007f60ab40ee2f in Fm::FolderModel::onFilesAdded (this=0x555cc15c3970, files=...)
    at src/foldermodel.cpp:87
#10 0x00007f60ab4103b3 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>,
    QtPrivate::List<Fm::FileInfoList&>, void, void (Fm::FolderModel::*)
    (Fm::FileInfoList const&)>::call (arg=<optimized out>, o=<optimized out>, f=<optimized out>)
    at /usr/include/qt5/QtCore/qobjectdefs_impl.h:166

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

@Chiitoo, thanks!

@agaida, I have KDE on my Manjaro and upgrading to unstable and compiling libfm-qt+pcmanfm-qt with debugging shouldn't be hard. For a few days, I'm busy with "life problems" but II'll try to run away from them as soon as possible ;)

from libfm-qt.

agaida avatar agaida commented on July 20, 2024

it isn't - but i was not eager to reinvent the wheel, get the sources, modify the PKGBUILD and build the whole qt with debug symbols - thats one of the points where an ebuild comes handy :D

from libfm-qt.

agaida avatar agaida commented on July 20, 2024

@tsujan - so your approach seems right and should be the same for auto fileinfo a few lines later - kind of work for me and lead to the next crash on:

#0  0x00007ffff74f60ad in Fm::FolderView::folder() const (this=0x5555559a62d0) at /home/agaida/lxqt/libfm-qt-git/src/libfm-qt/src/folderview.h:86
#1  0x00007ffff74f60ad in Fm::FolderView::path() (this=0x5555559a62d0) at /home/agaida/lxqt/libfm-qt-git/src/libfm-qt/src/folderview.h:95
#2  0x00007ffff74f60ad in Fm::FolderView::onFileClicked(int, std::shared_ptr<Fm::FileInfo const> const&) (this=0x5555559a62d0, fileInfo=std::shared_ptr<const Fm::FileInfo> (empty) = {...}, type=2) at /home/agaida/lxqt/libfm-qt-git/src/libfm-qt/src/folderview.cpp:1311
#3  0x00007ffff74f730d in Fm::FolderView::onFileClicked(int, std::shared_ptr<Fm::FileInfo const> const&) (this=0x5555559a62d0, type=<optimized out>, fileInfo=...) at /home/agaida/lxqt/libfm-qt-git/src/libfm-qt/src/folderview.cpp:1299
#4  0x0000555555595855 in PCManFM::View::onFileClicked(int, std::shared_ptr<Fm::FileInfo const> const&) ()
#5  0x00007ffff5e03b60 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/libQt5Core.so.5
#6  0x00007ffff754a193 in Fm::FolderView::clicked(int, std::shared_ptr<Fm::FileInfo const> const&) (this=this@entry=0x5555559a62d0, _t1=<optimized out>, 
    _t1@entry=2, _t2=std::shared_ptr<const Fm::FileInfo> (empty) = {...})
    at /home/agaida/lxqt/libfm-qt-git/src/build/src/fm-qt_autogen/EWIEGA46WW/moc_folderview.cpp:262
#7  0x00007ffff74f545d in Fm::FolderView::emitClickedAt(Fm::FolderView::ClickType, QPoint const&) (this=this@entry=0x5555559a62d0, type=type@entry=Fm::FolderView::ContextMenuClick, pos=...) at /usr/include/c++/8.1.0/bits/shared_ptr_base.h:600
#8  0x00007ffff74f8a27 in Fm::FolderView::contextMenuEvent(QContextMenuEvent*) (this=0x5555559a62d0, event=0x7fffffffd1a0)
    at /home/agaida/lxqt/libfm-qt-git/src/libfm-qt/src/folderview.cpp:817
#9  0x00007ffff6b89058 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#10 0x00007ffff6b49984 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#11 0x00007ffff6b51770 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#12 0x00007ffff5dd9bc9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#13 0x00007ffff6ba4b94 in  () at /usr/lib/libQt5Widgets.so.5
#14 0x00007ffff6ba6fd5 in  () at /usr/lib/libQt5Widgets.so.5
#15 0x00007ffff6b49984 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#16 0x00007ffff6b5125b in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#17 0x00007ffff5dd9bc9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#18 0x00007ffff6381596 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5
#19 0x00007ffff6383516 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/libQt5Gui.so.5
#20 0x00007ffff635aa5c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#21 0x00007fffecbdbb3d in  () at /usr/lib/libQt5XcbQpa.so.5
#22 0x00007ffff5dd885c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#23 0x00007ffff5de0b56 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#24 0x0000555555575b81 in main ()

from libfm-qt.

agaida avatar agaida commented on July 20, 2024

so the first part of this issue should be done

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

@agaida Qt 5.11 isn't in Manjaro unstable. I have to get it by using Arch's PKGBUILD (and patches). So, it isn't as easy as I supposed but I'm doing it. Fortunately, on my second machine, I have gnome-shell and can work from inside it. Once in 8 years, gnome has a real use at last...

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

For the first time after years, I really enjoyed gnome-shell. You could completely break Qt inside it without worrying about anything.

Anyhow, after adding another safeguard against null in ProxyFolderModel::filterAcceptsRow:

#0  std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count (__r=..., this=<optimized out>)
    at /usr/include/c++/8.1.0/bits/shared_ptr_base.h:1149
1149	      __shared_ptr(const __shared_ptr&) noexcept = default;
[Current thread is 1 (Thread 0x7f5e33874480 (LWP 31446))]
(gdb) where
#0  0x00007f5e3319500d in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) (__r=..., this=<optimized out>)
    at /usr/include/c++/8.1.0/bits/shared_ptr_base.h:1149
#1  0x00007f5e3319500d in std::__shared_ptr<Fm::Folder, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<Fm::Folder, (__gnu_cxx::_Lock_policy)2> const&) (this=<synthetic pointer>)
    at /usr/include/c++/8.1.0/bits/shared_ptr_base.h:1149
#2  0x00007f5e3319500d in std::shared_ptr<Fm::Folder>::shared_ptr(std::shared_ptr<Fm::Folder> const&) (this=<synthetic pointer>) at /usr/include/c++/8.1.0/bits/shared_ptr.h:129
#3  0x00007f5e3319500d in Fm::FolderView::folder() const (this=0x5642c74556d0)
    at /media/sda8/Arch/AUR/LXQt/libfm-qt-20180222/libfm-qt-master/src/folderview.h:86
#4  0x00007f5e3319500d in Fm::FolderView::path() (this=0x5642c74556d0)
    at /media/sda8/Arch/AUR/LXQt/libfm-qt-20180222/libfm-qt-master/src/folderview.h:95
#5  0x00007f5e3319500d in Fm::FolderView::onFileClicked(int, std::shared_ptr<Fm::FileInfo const> const&) (this=0x5642c74556d0, fileInfo=std::shared_ptr<const Fm::FileInfo> (empty) = {...}, type=2)
    at /media/sda8/Arch/AUR/LXQt/libfm-qt-20180222/libfm-qt-master/src/folderview.cpp:1311
#6  0x00007f5e3319626d in Fm::FolderView::onFileClicked(int, std::shared_ptr<Fm::FileInfo const> const&) (this=0x5642c74556d0, type=<optimized out>, fileInfo=...)
    at /media/sda8/Arch/AUR/LXQt/libfm-qt-20180222/libfm-qt-master/src/folderview.cpp:1299
#7  0x00005642c68ec05d in PCManFM::View::onFileClicked(int, std::shared_ptr<Fm::FileInfo const> const&) (this=0x5642c74556d0, type=<optimized out>, fileInfo=...)
    at /media/sda8/Arch/AUR/LXQt/pcmanfm-qt-20170430/pcmanfm-qt-master/pcmanfm/view.cpp:50
#8  0x00007f5e31aa2b60 in QMetaObject::activate(QObject*, int, int, void**) ()
    at /usr/lib/libQt5Core.so.5
#9  0x00007f5e331e9123 in Fm::FolderView::clicked(int, std::shared_ptr<Fm::FileInfo const> const&) (this=this@entry=0x5642c74556d0, _t1=<optimized out>, 
    _t1@entry=2, _t2=std::shared_ptr<const Fm::FileInfo> (empty) = {...})
    at /media/sda8/Arch/AUR/LXQt/libfm-qt-20180222/libfm-qt-master/build/src/fm-qt_autogen/EWIEGA46WW/moc_folderview.cpp:262
#10 0x00007f5e331943bd in Fm::FolderView::emitClickedAt(Fm::FolderView::ClickType, QPoint const&) (this=this@entry=0x5642c74556d0, type=type@entry=Fm::FolderView::ContextMenuClick, pos=...)
    at /usr/include/c++/8.1.0/bits/shared_ptr_base.h:600
#11 0x00007f5e33197987 in Fm::FolderView::contextMenuEvent(QContextMenuEvent*) (this=0x5642c74556d0, event=0x7fff47870ef0) at /media/sda8/Arch/AUR/LXQt/libfm-qt-20180222/libfm-qt-master/src/folderview.cpp:817
#12 0x00007f5e32828058 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#13 0x00007f5e327e8984 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
    at /usr/lib/libQt5Widgets.so.5
#14 0x00007f5e327f0770 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#15 0x00007f5e31a78bc9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
    at /usr/lib/libQt5Core.so.5
...

Which is apparently the same thing you get but with debugging symbols. I "fixed" it by adding yet another safeguard against null but got another crash:

#0  0x00007f744eb495ad in Fm::FilePath::isNative() const (this=0x10)
    at /media/sda8/Arch/AUR/LXQt/libfm-qt-20180222/libfm-qt-master/src/core/filepath.h:107
#1  0x00007f744eb495ad in Fm::FilePath::toString() const (this=0x10)
    at /media/sda8/Arch/AUR/LXQt/libfm-qt-20180222/libfm-qt-master/src/core/filepath.h:67
#2  0x00007f744eb495ad in Fm::Folder::path() const (this=0x0)
    at /media/sda8/Arch/AUR/LXQt/libfm-qt-20180222/libfm-qt-master/src/core/folder.cpp:156
#3  0x00007f744eb83717 in Fm::FolderView::onClipboardDataChange() (this=0x56368e607440)
    at /usr/include/c++/8.1.0/bits/shared_ptr_base.h:1100
#4  0x00007f744d48fb60 in QMetaObject::activate(QObject*, int, int, void**) ()
    at /usr/lib/libQt5Core.so.5
#5  0x00007f744da1bd46 in QClipboard::emitChanged(QClipboard::Mode) () at /usr/lib/libQt5Gui.so.5
#6  0x00007f74441477ee in  () at /usr/lib/libQt5XcbQpa.so.5
#7  0x00007f744da1ba86 in QClipboard::setMimeData(QMimeData*, QClipboard::Mode) ()
    at /usr/lib/libQt5Gui.so.5
#8  0x00007f744e323fa4 in QWidgetLineControl::copy(QClipboard::Mode) const ()
    at /usr/lib/libQt5Widgets.so.5
#9  0x00007f744e32969b in QWidgetLineControl::processKeyEvent(QKeyEvent*) ()
    at /usr/lib/libQt5Widgets.so.5
#10 0x00007f744e31c16b in QLineEdit::keyPressEvent(QKeyEvent*) () at /usr/lib/libQt5Widgets.so.5
#11 0x00007f744e2156a8 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#12 0x00007f744e32242b in QLineEdit::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#13 0x00007f744e1d5984 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
    at /usr/lib/libQt5Widgets.so.5
#14 0x00007f744e1dd653 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#15 0x00007f744d465bc9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
    at /usr/lib/libQt5Core.so.5

This one is more ridiculous.

I have no idea about why this happens but this beta Qt is like a shaky ground to me. So, I'll wait until a stable Qt 5.11 comes out. Returning to the good stable Qt 5.10 for now.

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

Found this: https://bugreports.qt.io/browse/QTBUG-67948

It's about the same commit @Chiitoo mentioned above. If Qt devs don't fix it before Qt 5.11 is considered stable, we'll have to find a workaround :(

from libfm-qt.

agaida avatar agaida commented on July 20, 2024

i would suggest to drop them a backtrace and point them to our repo - and if that means that they must build the whole LXQt - so be it. They wanted an example, they get one

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

@agaida They already have a backtrace, much simpler than ours, but say, "Please provide a fully compatible example to reproduce the issue."

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

At last, I found a way to make it work by following my gut feeling but before explaining it, I should find a rational explanation ;)

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

In the meanwhile...

@agaida @Chiitoo would you please test this:

In CachedFolderModel::unref(), change this line:

deleteLater();

to:

 delete(this);

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

Found the explanation. Waiting for your tests before making a PR.

from libfm-qt.

Chiitoo avatar Chiitoo commented on July 20, 2024

So far so good.

With just this 'delete(this);' change, I haven't been able to crash PCManFM-Qt yet.

What is more, it seems to have fixed the copying issue that later appeared as well (#175).

Feels good to use PCManFM-Qt again. ^^

Thanks!

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

@Chiitoo Thank you very much for your test and especially, for your detailed report. If you didn't mention the Qt patch in question, it might take me a long time to find the cause of this problem.

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

@agaida Stable Qt-5.11 will come to Arch/Debian soon and their derivatives will have it with a one week delay or so. IMO, we should have a new release with Qt-5.11 patches merged before that because otherwise, the non-git LXQt won't work. Am I right?

from libfm-qt.

agaida avatar agaida commented on July 20, 2024

totally right

from libfm-qt.

tsujan avatar tsujan commented on July 20, 2024

@Chiitoo It seems that you might use unstable Qt sometimes. I hope you'll keep telling us about probable problems. We may not be able to test and confirm them at first but, as you see in this case, your reports are valuable to us.

from libfm-qt.

Chiitoo avatar Chiitoo commented on July 20, 2024

Yes... sometimes. <shifty eyes> Heh.

I think it started when I was switching to using QupZilla as my web browser, and when that switched to using QtWebEngine, the development branches often had features I wanted to make use of, and didn't want to wait for a release. Since I'm using Gentoo, I already build everything from source, so building Qt from source directly with whatever configuration before a release is quite effortless as well.

Somehow I ended up helping with maintaining/packaging Qt for Gentoo, as well as LXQt itself, after I started actively using it.

Going forward, I'll be sure to report problems as long as I can, and as I'm getting more used to the Qt bug handling and Gerrit, I'm reporting things and pushing changes to them as well. :]

Thank you all for your efforts on making LXQt, well, LXQt!

from libfm-qt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.