[Okular-devel] TextDocument Multithreading

Jaydeep Solanki jaydp17 at gmail.com
Thu Sep 26 18:20:50 UTC 2013


I have created a small project, uploaded to git at git.kde.org:
scratch/jsolanki/TxtDocumentTest01

May be you'd like to have a look at it.
I have (extracted and) uploaded the file that made it crash the most, to
data folder in that repo.

& It doesn't crash.


On Wed, Sep 25, 2013 at 11:48 PM, Jaydeep Solanki <jaydp17 at gmail.com> wrote:

>
>
>
> On Wed, Sep 25, 2013 at 11:40 PM, Albert Astals Cid <aacid at kde.org> wrote:
>
>> El Dimecres, 25 de setembre de 2013, a les 23:19:11, Jaydeep Solanki va
>> escriure:
>> > On Wed, Sep 25, 2013 at 11:01 PM, Jaydeep Solanki <jaydp17 at gmail.com>
>> wrote:
>> > > Running it under helgrind, gives
>> > > this<https://www.dropbox.com/s/5v3bh1v6le8adkr/helg.txt>output.
>> > >
>> > > It shows a warning near the region where we get a crash saying
>> "*conflicts
>> > > with a previous write of size 4 by thread #4*", L117 in helgrind
>> output
>> > > file
>> > >
>> > > Also, can you please throw some light on what the warning is trying to
>> > > say. What is a 'conflict on previous write' ?
>> >
>> > I read the documentation and understood what it is, but it doesn't give
>> any
>> > insight about what's going wrong.
>> >
>> > BTW, I tried a few times with helgrind & it didn't crash.
>>
>> Yeah, it may go so slow that it doesn't really race/crash itself.
>>
>> I am betting on saying "this is a bug in Qt" but let's prove it first ;-)
>>
>> My suggestion, do this: Write a simple program that spawns two threads, in
>> each thread you create a QTextDocument, add some text to it and then
>> simply
>> loop its rendering to a QImage forever.
>>
>> Let's see if that crashes or not. If not, we can build up from there
>> trying to
>> make it more like what Okular does until it crashes.
>>
>> You up to it?
>>
> Yes
>
>>
>> Cheers,
>>   Albert
>>
>> >
>> > > On Mon, Sep 23, 2013 at 1:40 PM, Jaydeep Solanki <jaydp17 at gmail.com
>> >wrote:
>> > >> On Mon, Sep 23, 2013 at 3:17 AM, Albert Astals Cid <aacid at kde.org>
>> wrote:
>> > >>> El Dilluns, 23 de setembre de 2013, a les 02:05:23, Jaydeep Solanki
>> va
>> > >>>
>> > >>> escriure:
>> > >>> > On Sun, Sep 22, 2013 at 9:21 PM, Albert Astals Cid <aacid at kde.org
>> >
>> > >>>
>> > >>> wrote:
>> > >>> > > El Dissabte, 21 de setembre de 2013, a les 23:16:56, Jaydeep
>> Solanki
>> > >>>
>> > >>> va
>> > >>>
>> > >>> > > escriure:
>> > >>> > > > On Sat, Sep 21, 2013 at 9:25 PM, Albert Astals Cid <
>> aacid at kde.org>
>> > >>> > >
>> > >>> > > wrote:
>> > >>> > > > > El Dissabte, 21 de setembre de 2013, a les 14:50:50, Jaydeep
>> > >>>
>> > >>> Solanki
>> > >>>
>> > >>> > > > > va
>> > >>> > > > >
>> > >>> > > > > escriure:
>> > >>> > > > > > Hi,
>> > >>> > > > >
>> > >>> > > > > Hi
>> > >>> > > > >
>> > >>> > > > > > @Albert,
>> > >>> > > > > > Welcome back :)
>> > >>> > > > >
>> > >>> > > > > Thanks :-)
>> > >>> > > > >
>> > >>> > > > > > As you might be aware GSoC is coming to an end, I want to
>> wrap
>> > >>> > > > > > things
>> > >>> > > > > > up.
>> > >>> > > > > >
>> > >>> > > > > > I have a few days, and I want to finish multi-threading
>> > >>>
>> > >>> support for
>> > >>>
>> > >>> > > > > > ePubs
>> > >>> > > > > > before GSoC ends. I have created a patch, but it crashes
>> > >>>
>> > >>> sometimes,
>> > >>>
>> > >>> > > I'm
>> > >>> > >
>> > >>> > > > > > unable to find a reason to that.
>> > >>> > > > >
>> > >>> > > > > Where's the patch?
>> > >>> > > >
>> > >>> > > > Diff attached
>> > >>> > > >
>> > >>> > > > File to test on :
>> > >>> > > > link<
>> > >>>
>> > >>>
>> https://www.dropbox.com/s/x63kkjf8q4h4fdy/Getting%20Gold%20by%20J_C_F_J
>> > >>>
>> > >>> > > > ohnson.epub>
>> > >>> > > >
>> > >>> > > > > Do you have a backtrace of the crash?
>> > >>> > > >
>> > >>> > > > I have got two different backtraces, using the same ePub
>> > >>> > > >
>> > >>> > > > Backtrace 1 : http://paste.kde.org/p0b9a1e1e/
>> > >>> > > >
>> > >>> > > > Backtrace 2 : http://paste.kde.org/pa4e31b12/
>> > >>> > >
>> > >>> > > Any reason you have not installed debug symbols for Qt to get a
>> > >>>
>> > >>> better
>> > >>>
>> > >>> > > bracktrace (less ??)?
>> > >>> >
>> > >>> > Installed it.
>> > >>> > still I'm not able to make any sense out of it.
>> > >>> >
>> > >>> > Updated backtrace :  http://paste.kde.org/pa8f27933/
>> > >>>
>> > >>> How are you getting the backtrace?
>> > >>
>> > >> I use Qt Creator, when it crashes I use create full backtrace option
>> to
>> > >> get this backtrace.
>> > >> Further more using gdb + terminal I get
>> > >> this<http://paste.kde.org/p11fad1cf/>backtrace.
>> > >>
>> > >> Can you mark in which thread the crash is
>> > >>
>> > >>> happening?
>> > >>
>> > >> I get an ABORT signal when
>> TextDocumentGeneratorPrivate::createTextPage(.
>> > >> . .) is called inside core/textdocumentgenerator.cpp. Now inside
>> that 99%
>> > >> of the times I get a crash on L81 (my branch).
>> > >>
>> > >>> Cheers,
>> > >>>
>> > >>>   Albert
>> > >>>
>> > >>> > > Cheers,
>> > >>> > >
>> > >>> > >   Albert
>> > >>> > >
>> > >>> > > > > What has changed
>> > >>> > > > > since last time we tried to do this?
>> > >>> > > >
>> > >>> > > > I have noticed that it only crashes when the epub has an
>> adequate
>> > >>>
>> > >>> amount
>> > >>>
>> > >>> > > of
>> > >>> > >
>> > >>> > > > images. Epubs with no images or 1 or 2 images are less likely
>> to
>> > >>>
>> > >>> crash.
>> > >>>
>> > >>> > > The
>> > >>> > >
>> > >>> > > > more the images the more likely it is to crash.
>> > >>> > > >
>> > >>> > > > Now we don't have to guess if it will crash on this file or
>> not.
>> > >>> > > > Considering all this, I have given you an ePub that is most
>> likely
>> > >>>
>> > >>> to
>> > >>>
>> > >>> > > crash
>> > >>> > >
>> > >>> > > > atleast once before completing a round trip (top to bottom &
>> > >>>
>> > >>> bottom to
>> > >>>
>> > >>> > > > top).
>> > >>> > > >
>> > >>> > > > > Cheers,
>> > >>> > > > >
>> > >>> > > > >   Albert
>> > >>> > > > >
>> > >>> > > > > > So, can we please help, me get this done.
>> > >>> > > > > > It's the same bug that we once tried to fix on IRC.
>> > >>> > > > > >
>> > >>> > > > > > I'll be available on #okular, same time as usual.
>> > >>> > > > > >
>> > >>> > > > > > Cheers,
>> > >>> > > > > > Jaydeep
>> > >>> > > > >
>> > >>> > > > > _______________________________________________
>> > >>> > > > > Okular-devel mailing list
>> > >>> > > > > Okular-devel at kde.org
>> > >>> > > > > https://mail.kde.org/mailman/listinfo/okular-devel
>> > >>> > >
>> > >>> > > _______________________________________________
>> > >>> > > Okular-devel mailing list
>> > >>> > > Okular-devel at kde.org
>> > >>> > > https://mail.kde.org/mailman/listinfo/okular-devel
>> > >>>
>> > >>> _______________________________________________
>> > >>> Okular-devel mailing list
>> > >>> Okular-devel at kde.org
>> > >>> https://mail.kde.org/mailman/listinfo/okular-devel
>>
>> _______________________________________________
>> Okular-devel mailing list
>> Okular-devel at kde.org
>> https://mail.kde.org/mailman/listinfo/okular-devel
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/okular-devel/attachments/20130926/781bd413/attachment-0001.html>


More information about the Okular-devel mailing list