Bug 1089107
| Summary: | Busy loop under replace_local_image_links() | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Donnie Roberson <drnetsys> | ||||||||
| Component: | evolution | Assignee: | Matthew Barnes <mbarnes> | ||||||||
| Status: | CLOSED UPSTREAM | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||
| Severity: | high | Docs Contact: | |||||||||
| Priority: | unspecified | ||||||||||
| Version: | 20 | CC: | drnetsys, fabiano, lucilanga, mbarnes, mcrha, tpopela | ||||||||
| Target Milestone: | --- | ||||||||||
| Target Release: | --- | ||||||||||
| Hardware: | x86_64 | ||||||||||
| OS: | Linux | ||||||||||
| Whiteboard: | |||||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||||
| Doc Text: | Story Points: | --- | |||||||||
| Clone Of: | Environment: | ||||||||||
| Last Closed: | 2014-04-30 12:47:12 UTC | Type: | Bug | ||||||||
| Regression: | --- | Mount Type: | --- | ||||||||
| Documentation: | --- | CRM: | |||||||||
| Verified Versions: | Category: | --- | |||||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||||
| Embargoed: | |||||||||||
| Attachments: |
|
||||||||||
|
Description
Donnie Roberson
2014-04-18 00:49:07 UTC
Created attachment 887382 [details]
Tarball of stack trace and thread list of evolution during hang
Thanks for a bug report. Could you install debuginfo package for evolution, and reget the backtrace, please? It should stop using libevolution-util.so and start showing source file name with a line number instead. You mentioned your signature is having some URLs. Is the signature HTML based, thus you entered a URL with a short description, or Plain Text based, thus the URL is just pasted in the signature body? The routine where it's stuck is supposed to traverse the "message" body and "correct" URLs to remote images to use evolution internal structures for image loading. Maybe if you would be able to share the signature, I guess it's not a private information, as you want to use it in your mails, but if you consider it private, then feel free to send it only to me, with a bug number in message subject. The signatures are stored in two places now, one is ~/.config/evolution/signatures/ where actual signature bodies are stored, and the other is ~/.config/evolution/sources/ where a file of the same name as in the previous folder are stored, they only have appended ".source" extension. These two files define signature together. I'd like you to find the files for the offending signature and either attach it here or send it directly to me. You can eventually replace any private information by "censoring" it with an "x" letter where appropriate, by overwriting actual text in it. I would prefer to keep the structure as much as possible, thus for example to censor "my name" have "xx xxx". Thanks in advance. Sorry for the slow reply. I have had a hard time finding the debuginfo package. I finally found it on a fedora mirror but it was for 3.10.2 and not 3.10.3. I installed allthe rpms for evolution (im sure you just wanted the debug-info package which i installed 1 by 1 and tested) but it still uses libevolution-util.so and does not show the line number or .c source file. Am I missing any other packages. My appologies I debug in a controlled environment on systems built off fc4 and when I load the binaries with gdb I get the line# and source file and will just cross reference the cscope data base I built. I am attaching the latest thread list where it hung on deleting mail. Would it be better if I dumped a full thread list with all localsand not just the thread list? I am also attaching the full signatures. Please let me know if there is anything else needed. --Donnie Created attachment 890136 [details]
signatures
tarball of the signatures and source as all 3 of the signatures have the same issues.
Created attachment 890137 [details]
latest thread list from hang during delete
latest thread list from hang during delete of email
Thanks for the update and files. There is no problem with delay, I've got busy with other stuff meanwhile too. The backtrace is interesting, because it shows evolution in an idle state - the UI should react on your requests without any delay. On the other hand, I can reproduce the busy-loop with your signature just when entering Edit->Preferences->Composer Preferences->Signatures and selecting "24Fit Challenge Registration" signature.The backtrace on git master reads: Thread 1 (Thread 0x7f77d9b1fa80 (LWP 2028)): #0 0x00000033e4a32c48 in g_type_check_instance_cast () from /lib64/libgobject-2.0.so.0 #1 0x00000031775067c9 in WebKit::core(_WebKitDOMElement*) () from /lib64/libwebkitgtk-3.0.so.0 #2 0x000000317750b5a8 in webkit_dom_element_get_next_element_sibling () from /lib64/libwebkitgtk-3.0.so.0 #3 0x00007f77dbe3cfab in replace_local_image_links (element=0x6222480) at e-mail-signature-preview.c:98 #4 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6222480) at e-mail-signature-preview.c:99 #5 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6257d40) at e-mail-signature-preview.c:99 #6 0x00007f77dbe3cfbb in replace_local_image_links (element=0x68e7b30) at e-mail-signature-preview.c:99 #7 0x00007f77dbe3cfbb in replace_local_image_links (element=0x695b010) at e-mail-signature-preview.c:99 #8 0x00007f77dbe3cfbb in replace_local_image_links (element=0x695af70) at e-mail-signature-preview.c:99 #9 0x00007f77dbe3cfbb in replace_local_image_links (element=0x65530e0) at e-mail-signature-preview.c:99 #10 0x00007f77dbe3cfbb in replace_local_image_links (element=0x5b3c540) at e-mail-signature-preview.c:99 #11 0x00007f77dbe3cfbb in replace_local_image_links (element=0x64c8d60) at e-mail-signature-preview.c:99 #12 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6548d40) at e-mail-signature-preview.c:99 #13 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6102770) at e-mail-signature-preview.c:99 #14 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6421d40) at e-mail-signature-preview.c:99 #15 0x00007f77dbe3cfbb in replace_local_image_links (element=0x68e7990) at e-mail-signature-preview.c:99 #16 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6958d30) at e-mail-signature-preview.c:99 #17 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6206040) at e-mail-signature-preview.c:99 #18 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6958d00) at e-mail-signature-preview.c:99 #19 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6204130) at e-mail-signature-preview.c:99 #20 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6956ae0) at e-mail-signature-preview.c:99 #21 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6234620) at e-mail-signature-preview.c:99 #22 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6958a20) at e-mail-signature-preview.c:99 #23 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6553270) at e-mail-signature-preview.c:99 #24 0x00007f77dbe3cf9f in replace_local_image_links (element=0x6256610) at e-mail-signature-preview.c:95 #25 0x00007f77dbe3cfbb in replace_local_image_links (element=0x6256610) at e-mail-signature-preview.c:99 #26 0x00007f77dbe3cf9f in replace_local_image_links (element=0x61f0730) at e-mail-signature-preview.c:95 #27 0x00007f77dbe3cfbb in replace_local_image_links (element=0x61f0730) at e-mail-signature-preview.c:99 #28 0x00007f77dbe3cf9f in replace_local_image_links (element=0x7f7704007130) at e-mail-signature-preview.c:95 #29 0x00007f77dbe3d092 in signature_preview_document_loaded_cb (web_view=0x61c0360, web_frame=0x61bc9c0, user_data=0x0) at e-mail-signature-preview.c:116 #30 0x00000033e4a10298 in g_closure_invoke () from /lib64/libgobject-2.0.so.0 #31 0x00000033e4a2235d in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0 #32 0x00000033e4a2a0f2 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0 #33 0x00000033e4a2a8f8 in g_signal_emit_by_name () from /lib64/libgobject-2.0.so.0 #34 0x0000003176d359cf in WebCore::FrameLoader::finishedParsing() () from /lib64/libwebkitgtk-3.0.so.0 #35 0x00000031769691c6 in WebCore::Document::finishedParsing() () from /lib64/libwebkitgtk-3.0.so.0 #36 0x0000003176bb571e in WebCore::HTMLDocumentParser::prepareToStopParsing() () from /lib64/libwebkitgtk-3.0.so.0 #37 0x0000003176bb1d1a in WebCore::HTMLDocumentParser::finish() () from /lib64/libwebkitgtk-3.0.so.0 #38 0x0000003176d29dd1 in WebCore::DocumentWriter::end() () from /lib64/libwebkitgtk-3.0.so.0 #39 0x0000003176d1edb8 in WebCore::DocumentLoader::finishedLoading(double) () from /lib64/libwebkitgtk-3.0.so.0 #40 0x0000003176d1f0d5 in WebCore::DocumentLoader::continueAfterContentPolicy(WebCore::PolicyAction) () from /lib64/libwebkitgtk-3.0.so.0 #41 0x0000003176d23285 in WebCore::DocumentLoader::responseReceived(WebCore::CachedResource*, WebCore::ResourceResponse const&) () from /lib64/libwebkitgtk-3.0.so.0 #42 0x0000003176d1bfde in WebCore::DocumentLoader::handleSubstituteDataLoadNow(WebCore::Timer<WebCore::DocumentLoader>*) () from /lib64/libwebkitgtk-3.0.so.0 #43 0x000000317671f1c9 in WebCore::ThreadTimers::sharedTimerFiredInternal() () from /lib64/libwebkitgtk-3.0.so.0 #44 0x0000003176733ff2 in WebCore::timeout_cb(void*) () from /lib64/libwebkitgtk-3.0.so.0 #45 0x00000033e4249e43 in g_timeout_dispatch () from /lib64/libglib-2.0.so.0 #46 0x00000033e42492a6 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0 #47 0x00000033e4249628 in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0 #48 0x00000033e4249a3a in g_main_loop_run () from /lib64/libglib-2.0.so.0 #49 0x00000035b7daa225 in gtk_main () from /lib64/libgtk-3.so.0 #50 0x000000000040498b in main (argc=1, argv=0x7fff7ded1ab8) at main.c:681 I see it's cycling on WebKitDOMHTMLFontElement elements, indefinitely. Tomas, could you look on it, please? It tries to replace image sources only, which might be fairly easy with WebKit selectors, especially if they traverse the hierarchy into iframes too. Fixed in upstream with https://bugzilla.gnome.org/show_bug.cgi?id=729256 |