Bug 387392

Summary: Crash on mergeback from 4-form plural to 3-form plural
Product: [Applications] lokalize Reporter: Alexander Potashev <aspotashev>
Component: generalAssignee: Adrián Chaves (Gallaecio) <adrian>
Status: RESOLVED WORKSFORME    
Severity: crash CC: adrian
Priority: NOR Keywords: drkonqi
Version First Reported In: 20.03.70   
Target Milestone: ---   
Platform: Chakra   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Alexander Potashev 2017-11-28 10:45:52 UTC
Application: lokalize (2.0)

Qt Version: 5.9.2
Frameworks Version: 5.40.0
Operating System: Linux 4.13.13-300.fc27.x86_64 x86_64
Distribution: "Fedora release 27 (Twenty Seven)"

-- Information about the crash:
- What I was doing when the application crashed:

1. open a file with 4-plural form header (e.g. a modern file in ru/)
2. open for syncing/merge another file with 3-plural form header (e.g. an old file in ru/ or an *_qt.po in ru/)
3. go to a segment which differs between these files and press Ctrl+Alt+Enter ---> crash!

-- Backtrace:
Application: Lokalize (lokalize), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f20acf825c0 (LWP 12434))]

Thread 8 (Thread 0x7f1fcc486700 (LWP 12448)):
#0  0x00007f20a428fc3b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f20a64cf2eb in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f20a64cbbff in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#3  0x00007f20a64ceb92 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007f20a4289609 in start_thread () at /lib64/libpthread.so.0
#5  0x00007f20a586ce6f in clone () at /lib64/libc.so.6

Thread 7 (Thread 0x7f1fd4cb2700 (LWP 12446)):
#0  0x00007f20a428fc3b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f20a6159cac in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /lib64/libstdc++.so.6
#2  0x00007f1fd9696fd7 in bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>::threadRunLoop() () at /lib64/libQt5WebKit.so.5
#3  0x00007f1fd9697119 in  () at /lib64/libQt5WebKit.so.5
#4  0x00007f20a615ffef in  () at /lib64/libstdc++.so.6
#5  0x00007f20a4289609 in start_thread () at /lib64/libpthread.so.0
#6  0x00007f20a586ce6f in clone () at /lib64/libc.so.6

Thread 6 (Thread 0x7f206e2b6700 (LWP 12445)):
#0  0x00007f20a428fc3b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f20ab52b604 in QTWTF::TCMalloc_PageHeap::scavengerThread() () at /lib64/libQt5Script.so.5
#2  0x00007f20ab52b649 in  () at /lib64/libQt5Script.so.5
#3  0x00007f20a4289609 in start_thread () at /lib64/libpthread.so.0
#4  0x00007f20a586ce6f in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7f2074f1c700 (LWP 12441)):
#0  0x00007f20a428fc3b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f20a64cf2eb in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f20a64cbbff in QThreadPoolThread::run() () at /lib64/libQt5Core.so.5
#3  0x00007f20a64ceb92 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007f20a4289609 in start_thread () at /lib64/libpthread.so.0
#5  0x00007f20a586ce6f in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f207571d700 (LWP 12439)):
#0  0x00007f20a428fc3b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f20a64cf2eb in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#2  0x00007f20a7c620dd in QFileInfoGatherer::run() () at /lib64/libQt5Widgets.so.5
#3  0x00007f20a64ceb92 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#4  0x00007f20a4289609 in start_thread () at /lib64/libpthread.so.0
#5  0x00007f20a586ce6f in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f2085934700 (LWP 12438)):
#0  0x00007f20a428fc3b in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f2086a593cb in util_queue_thread_func () at /usr/lib64/dri/nouveau_dri.so
#2  0x00007f2086a592e7 in impl_thrd_routine () at /usr/lib64/dri/nouveau_dri.so
#3  0x00007f20a4289609 in start_thread () at /lib64/libpthread.so.0
#4  0x00007f20a586ce6f in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f208cdaf700 (LWP 12437)):
#0  0x00007f20a585be38 in read () at /lib64/libc.so.6
#1  0x00007f209ee410e0 in g_wakeup_acknowledge () at /lib64/libglib-2.0.so.0
#2  0x00007f209edfc9e8 in g_main_context_check () at /lib64/libglib-2.0.so.0
#3  0x00007f209edfce80 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#4  0x00007f209edfcfec in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#5  0x00007f20a66cb35b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#6  0x00007f20a66790ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#7  0x00007f20a64ca8ba in QThread::exec() () at /lib64/libQt5Core.so.5
#8  0x00007f20a6fc3479 in QDBusConnectionManager::run() () at /lib64/libQt5DBus.so.5
#9  0x00007f20a64ceb92 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#10 0x00007f20a4289609 in start_thread () at /lib64/libpthread.so.0
#11 0x00007f20a586ce6f in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f20acf825c0 (LWP 12434)):
[KCrash Handler]
#6  0x00007f20a653be6c in QString::operator=(QString const&) () at /lib64/libQt5Core.so.5
#7  0x0000558f71a66e8c in MergeCatalog::copyFromBaseCatalog(DocPosition const&, int) ()
#8  0x0000558f71a6adf5 in MergeView::mergeBack() ()
#9  0x0000558f71b1daad in MergeView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
#10 0x00007f20a66a2bc3 in QMetaObject::activate(QObject*, int, int, void**) () at /lib64/libQt5Core.so.5
#11 0x00007f20a7a48f52 in QAction::triggered(bool) () at /lib64/libQt5Widgets.so.5
#12 0x00007f20a7a4b66b in QAction::activate(QAction::ActionEvent) () at /lib64/libQt5Widgets.so.5
#13 0x00007f20a7a4bf45 in QAction::event(QEvent*) () at /lib64/libQt5Widgets.so.5
#14 0x00007f20a7a4f6ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#15 0x00007f20a7a56ef4 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#16 0x00007f20a667a367 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#17 0x00007f20a7361c80 in QShortcutMap::dispatchEvent(QKeyEvent*) () at /lib64/libQt5Gui.so.5
#18 0x00007f20a7361d2a in QShortcutMap::tryShortcut(QKeyEvent*) () at /lib64/libQt5Gui.so.5
#19 0x00007f20a7315123 in QWindowSystemInterface::handleShortcutEvent(QWindow*, unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int, unsigned int, QString const&, bool, unsigned short) () at /lib64/libQt5Gui.so.5
#20 0x00007f20a7332df7 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () at /lib64/libQt5Gui.so.5
#21 0x00007f20a7338315 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /lib64/libQt5Gui.so.5
#22 0x00007f20a73121ab in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Gui.so.5
#23 0x00007f20913627d0 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5XcbQpa.so.5
#24 0x00007f209edfcbb7 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#25 0x00007f209edfcf60 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#26 0x00007f209edfcfec in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#27 0x00007f20a66cb33f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#28 0x00007f20a66790ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#29 0x00007f20a6681744 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#30 0x0000558f71a0758e in main ()

The reporter indicates this bug may be a duplicate of or related to bug 244219.

Possible duplicates by query: bug 244219.

Reported using DrKonqi
Comment 1 Alexander Potashev 2017-11-28 10:49:34 UTC
Forgot to add another important step: open the tab for Plural Form 4.

1. open a file with 4-plural form header (e.g. a modern file in ru/)
2. open for syncing/merge another file with 3-plural form header (e.g. an old file in ru/ or an *_qt.po in ru/)
3. go to a segment which differs between these files
4. open the tab for Plural Form 4
5. press Ctrl+Alt+Enter ---> crash!
Comment 2 Justin Zobel 2022-09-28 00:43:10 UTC
Thank you for reporting this crash in KDE software. As it has been a while since this issue was reported, can we please ask you to see if you can reproduce the crash with a recent software version?

If you can reproduce the issue, please change the status to "CONFIRMED" when replying. Thank you!
Comment 3 Bug Janitor Service 2022-10-13 04:54:59 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 4 Bug Janitor Service 2022-10-28 05:02:31 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!