Bug 352325 - Baloo Crash - EPub Extractor
Summary: Baloo Crash - EPub Extractor
Status: RESOLVED DUPLICATE of bug 361727
Alias: None
Product: frameworks-kfilemetadata
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Pinak Ahuja
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2015-09-05 19:52 UTC by Jacek Pawlyta
Modified: 2016-09-11 12:58 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jacek Pawlyta 2015-09-05 19:52:29 UTC
Application: baloo_file_extractor (5.13.0)

Qt Version: 5.5.0
Operating System: Linux 4.2.0-300.fc23.x86_64 x86_64
Distribution: "Fedora release 22 (Twenty Two)"

-- Information about the crash:
- What I was doing when the application crashed:
starting KDE via init 5 after changing display managet to KDM

-- Backtrace:
Application: Baloo File Extractor (baloo_file_extractor), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[KCrash Handler]
#5  0x00007ff42ce21b90 in _opf_label_get_by_doc_lang () at /lib64/libepub.so.0
#6  0x00007ff42ce1e8ea in epub_get_titerator () at /lib64/libepub.so.0
#7  0x00007ff42d02a076 in KFileMetaData::EPubExtractor::extract(KFileMetaData::ExtractionResult*) () at /usr/lib64/qt5/plugins/kf5/kfilemetadata/kfilemetadata_epubextractor.so
#8  0x000000000040bf53 in Baloo::App::index(Baloo::Transaction*, QString const&, unsigned long long) ()
#9  0x000000000040ca81 in Baloo::App::slotNewInput() ()
#10 0x00000038668b1fe7 in QMetaObject::activate(QObject*, int, int, void**) () at /lib64/libQt5Core.so.5
#11 0x000000386693166e in QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) () at /lib64/libQt5Core.so.5
#12 0x00000038668be63b in QSocketNotifier::event(QEvent*) () at /lib64/libQt5Core.so.5
#13 0x00000038668835fc in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#14 0x00000038668da25d in socketNotifierSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5
#15 0x0000003c2c049a8a in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#16 0x0000003c2c049e20 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#17 0x0000003c2c049ecc in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#18 0x00000038668d9d8f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#19 0x0000003866880daa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#20 0x0000003866888e6c in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#21 0x000000000040b0e5 in main ()

Reported using DrKonqi
Comment 1 Igor Poboiko 2015-09-24 08:03:37 UTC
Can you please locate and provide the .epub file it crashed on?
Comment 2 Jacek Pawlyta 2015-09-29 18:38:52 UTC
@Igor, how I can do it? I have quite a couple of hundred of epub files.
Comment 3 Igor Poboiko 2015-09-29 19:42:26 UTC
(In reply to Jacek Pawlyta from comment #2)
> @Igor, how I can do it? I have quite a couple of hundred of epub files.

Well, there is a hard way. First of all, is it always reproducible? If so, you can first of all clean Baloo index by running in shell
# balooctl disable
# balooctl enable
Next step is to get PID of baloo_file_extractor process:
# ps ax | grep baloo
And then you can attach a "strace" tool to that process
# sudo strace -e write=1 -p PID
What it will do is following: baloo_file process performs indexing of contents by calling baloo_file_extractor and feeding it with filenames using pipelines. This will intercept all "write()" system calls, printing all data that passed through that pipeline.
WARNING: it will produce a lot of output. You can redirect it to some file by adding ">file 2>&1" to the end of last command. File "file" can grow up to several hundreds of megabytes though, be careful.
Hopefully the last filename that it prints before crash will be the one.
Comment 4 Igor Poboiko 2015-09-29 19:44:30 UTC
(In reply to Jacek Pawlyta from comment #2)
> @Igor, how I can do it? I have quite a couple of hundred of epub files.
Another way is to use bisecting. You can put all your .epub-files into some directory Baloo won't index (you can add it using SystemSettings), and then move half of it to place where it will index. Then wait for baloo to index them. Repeat with half of files left, and so on. Do it until you find the one :)

And, BTW, what Linux distributive do you use? Any chance it is source-based, so you can build a baloo from source code with some patches? :)
Comment 5 Christoph Cullmann 2016-09-11 12:58:07 UTC
The epub extractor checks not enough (and double frees), see other bug.

*** This bug has been marked as a duplicate of bug 361727 ***