[Users] [Bug 2870] New: 100% CPU; CM non-responsive
noreply at thewildbeast.co.uk
noreply at thewildbeast.co.uk
Sat Feb 2 20:54:15 CET 2013
http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=2870
Bug ID: 2870
Summary: 100% CPU; CM non-responsive
Classification: Unclassified
Product: Claws Mail
Version: CVS
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P3
Component: Plugins/Gtkhtml2 Viewer
Assignee: users at lists.claws-mail.org
Reporter: pf at pfortin.com
Created attachment 1224
-->
http://www.thewildbeast.co.uk/claws-mail/bugzilla/attachment.cgi?id=1224&action=edit
valgrind output
3.9.0cvs51
Viewing a new message; but when I click on icon to view HTML, CM goes into 100%
CPU. (Who wants the message privately?)
The message content where CM starts 100% CPU loop (100% reproducible) is:
td[class=3D"hero-cell"] {=20
padding: 0 0 30px !important;=20
}=20
td[class=3D"content-cell"] {=20
display: block !important;=20
padding: 0 0 2px 0 !important;=20
width: 300px !important;=20 <=== loop occurs after "!importa"
}=20
td[class=3D"content-cell-top"] {=20
display: block !important;=20
padding: 0 !important;=20
width: 300px !important;=20
}=20
td[class=3D"content-cell-bottom"] {=20
display: block !important;=20
padding: 0 !important;=20
width: 300px !important;=20
}=20
valgrind attachment may be more valuable than below which is what I found
before using valgrind....
============ gory details follow ==============
11:51:20 $ top -n 1 # redacted
12692 pfortin 20 0 1072m 72m 21m R 100 0.9 8:02.45 claws-mail
11:52:12 $ top -n 1
12692 pfortin 20 0 1074m 73m 21m R 100 0.9 8:44.08 claws-mail
# Mostly stopped while researching/debugging....
13:19:27 $ top -n 1
12692 pfortin 20 0 1076m 76m 21m R 98 1.0 10:00.86 claws-mail
Tracked it down to plugins/gtkhtml2_viewer/libgtkhtml/css/cssvalue.c:152
while (tmp_entry->next) {
tmp_entry = tmp_entry->next;
}
strace showed only this... there was about 5-6 seconds between each brk.
$ strace -p 12692
Process 12692 attached - interrupt to quit
brk(0x447f000) = 0x447f000
brk(0x44a0000) = 0x44a0000 <=== +0x21000
brk(0x44c1000) = 0x44c1000 "
brk(0x44e2000) = 0x44e2000 "
brk(0x4503000) = 0x4503000 "
brk(0x4524000) = 0x4524000 "
brk(0x4545000) = 0x4545000 "
gdb shows this loop...
(gdb)stepi
152 while (tmp_entry->next) {
1: tmp_entry->next = (CssValueEntry *) 0x44b2fc0 <=== +0x40 each iteration
(gdb)
0x00007f5c383d0383 152 while (tmp_entry->next) {
1: tmp_entry->next = (CssValueEntry *) 0x44b3000
(gdb)
0x00007f5c383d0387 152 while (tmp_entry->next) {
1: tmp_entry->next = (CssValueEntry *) 0x44b3000
(gdb)
0x00007f5c383d038a 152 while (tmp_entry->next) {
1: tmp_entry->next = (CssValueEntry *) 0x44b3000
(gdb)
152 while (tmp_entry->next) { <=== same as above
1: tmp_entry->next = (CssValueEntry *) 0x44b3000
(gdb) bt
#0 css_value_list_append (list=0x3acb620, element=<optimized out>,
list_sep=<optimized out>) at cssvalue.c:152
#1 0x00007f5c383cfad8 in css_parser_parse_atkeyword (base_url=0x0,
ret_val=<synthetic pointer>, end_pos=999, start_pos=<optimized out>, buffer=
0x2d57400 "\n at charset \"utf-8\"; \n.ReadMsgBody { \n width: 100%; \n}
\n.ExternalClass { \n width: 100%; \n} \nimg.banner { \n margin-left: 0
!important; \n margin-right: 0 !important; \n} \ntd { \n font-family: Arial,
Helveti"...) at cssparser.c:1274
#2 css_parser_parse_stylesheet (str=<optimized out>, len=<optimized out>,
base_url=<optimized out>) at cssparser.c:1505
#3 0x00007f5c383d1648 in html_document_node_inserted_traverser
(document=0x1949a40, node=0x34dc160) at htmldocument.c:281
#4 0x00007f5c383d1c01 in html_document_new_node (parser=<optimized out>,
node=0x34dc160, document=0x1949a40) at htmldocument.c:530
#5 0x00007f5c425d3354 in g_cclosure_marshal_VOID__OBJECTv () from
/lib64/libgobject-2.0.so.0
#6 0x00007f5c425cfeca in ?? () from /lib64/libgobject-2.0.so.0
#7 0x00007f5c425e8711 in g_signal_emit_valist () from
/lib64/libgobject-2.0.so.0
#8 0x00007f5c425e9212 in g_signal_emit () from /lib64/libgobject-2.0.so.0
#9 0x00007f5c3e6ca0f9 in ?? () from /usr/lib64/libxml2.so.2
#10 0x00007f5c3e6cfafd in htmlParseChunk () from /usr/lib64/libxml2.so.2
#11 0x00007f5c383f5bd9 in html_stream_write (stream=0x37c90a0,
buffer=<optimized out>, size=10) at htmlstream.c:85
#12 0x00007f5c383c70da in gtkhtml2_show_mimepart_real (_viewer=0x2cf1730) at
gtkhtml2_viewer.c:323
#13 0x00007f5c4231478b in ?? () from /lib64/libglib-2.0.so.0
#14 0x00007f5c42313bc3 in g_main_context_dispatch () from
/lib64/libglib-2.0.so.0
#15 0x00007f5c42313f10 in ?? () from /lib64/libglib-2.0.so.0
#16 0x00007f5c4231430a in g_main_loop_run () from /lib64/libglib-2.0.so.0
#17 0x00007f5c45ee9d57 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
#18 0x00000000004474c1 in main (argc=1, argv=0x7fffaa37f2a8) at main.c:1710
(gdb)
Registers.... each time through the loop, only rcx & rdx change (+0x40)
(gdb) info r
rax 0x4c82780 80226176
rbx 0x3acb620 61650464
rcx 0x2d6c5a0 47629728 <===
rdx 0x2d6c5a0 47629728 <===
rsi 0x4c82760 80226144
rdi 0x4 4
rbp 0x2a64a40 0x2a64a40
rsp 0x7fffaa37c2c0 0x7fffaa37c2c0
r8 0x18 24
r9 0x8 8
r10 0x0 0
r11 0x206 518
r12 0x3e7 999
r13 0x3acb620 61650464
r14 0x166 358
r15 0x0 0
rip 0x7f5c383d0383 0x7f5c383d0383 <css_value_list_append+83>
eflags 0x206 [ PF IF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb)
**************************************************************
Trying to kill CM with ^C is ignored, as is window close, until KDE offers to
terminate it.
Restarted with "claws-mail --debug". When I clicked on the HTML viewer icon,
got this on the console:
mimeview.c:854:text/html
gtkhtml2_viewer.c:1219:gtkhtml2_viewer_create
gtkhtml2_viewer.c:1253:setting minimum size to 9.00 (overriding 8.00)
gtkhtml2_viewer.c:131:gtkhtml2_get_widget: 0x27b8b60
gtkhtml2_viewer.c:131:gtkhtml2_get_widget: 0x27b8b60
gtkhtml2_viewer.c:261:gtkhtml2_show_mimepart
gtkhtml2_viewer.c:291:using charset ISO-8859-1
Unhandled property: 324 -webkit-text-size-adjust
(claws-mail:25605): HtmlCss-WARNING **: Unhandled keyword 210 -
@charset "utf-8";
.ReadMsgBody {
width: 100%;
}
.ExternalClass {
width: 100%;
}
img.banner {
margin-left: 0 !important;
margin-right: 0 !important;
}
td {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
line-height: 1.231;
border-collapse: collapse;
}
a {
color:#0078c9;
}
@media only screen and (max-width: 480px) {
td[id="pre-header"] {
font-size: 9px !important;
}
table[class="table"] {
width: 300px !important;
max-width: 300px !important;
display: block !important;
padding: 0 !important;
table-layout: fixed !important;
margin:0px !important;
}
table[class="table-center"] {
width: 300px !important;
max-width: 300px !important;
display: block !important;
padding: 0 !important;
table-layout: fixed !important;
margin:0px !important;
text-align:center;
}
td[class="hero-cell"] {
padding: 0 0 30px !important;
}
td[class="content-cell"] {
display: block !important;
padding: 0 0 2px 0 !important;
width: 300px !importa
###################################### ^C returned this; but did not quit...
^Cmain.c:2855:Quitting on signal 2
Moving on to valgrind.... see attachment....
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Users
mailing list