[Evolution] Infinite read loop bug in Evolution 3.0.3?



Evolution seems to have got stuck using 100% of the CPU and eating my
laptop battery again.

One of its threads has gone insane. strace -p [thread-id] shows an
apparently infinite number of the following recvfrom, poll operations:

recvfrom(63, "", 5, 0, NULL, NULL)      = 0
poll([{fd=63, events=POLLIN}, {fd=66, events=POLLIN}], 2, 240000) = 1 ([{fd=63, 
revents=POLLIN|POLLERR|POLLHUP}])
recvfrom(63, "", 5, 0, NULL, NULL)      = 0
poll([{fd=63, events=POLLIN}, {fd=66, events=POLLIN}], 2, 240000) = 1 ([{fd=63, 
revents=POLLIN|POLLERR|POLLHUP}])

It is my theory that these indicate that fd 63, whatever it is, has
closed (POLLHUP) and/or has an error (POLLERR) that is being ignored.

lsof shows that fd 63 is:
evolution 31493 lynx   63u  sock                0,6       0t0 5783964 can't identify protocol


And GDB shows the Evolution thread seems to be running around in this area:
(gdb) bt
#0  0x0000003f2f02e9be in g_cancellable_is_cancelled () from /lib64/libgio-2.0.so.0
#1  0x0000003d85a5cd3b in ?? () from /usr/lib64/libcamel-provider-1.2.so.23
#2  0x0000003d84e4f68a in camel_stream_read () from /usr/lib64/libcamel-1.2.so.23
#3  0x00007f9bea524e6b in ?? () from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#4  0x0000003d84e4f68a in camel_stream_read () from /usr/lib64/libcamel-1.2.so.23
#5  0x0000003d84e50238 in camel_stream_write_to_stream () from /usr/lib64/libcamel-1.2.so.23
#6  0x00007f9bea525c35 in camel_imapx_stream_nstring_stream ()
   from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#7  0x00007f9bea528bf2 in imapx_parse_fetch ()
   from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#8  0x00007f9bea532977 in ?? () from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#9  0x00007f9bea536516 in ?? () from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#10 0x00007f9bea5367e5 in ?? () from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#11 0x00007f9bea536c20 in ?? () from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#12 0x0000003f2d4683a6 in ?? () from /lib64/libglib-2.0.so.0
#13 0x000000302b807b31 in start_thread () from /lib64/libpthread.so.0
#14 0x000000302b4dfd2d in clone () from /lib64/libc.so.6

and another bt:
#0  0x0000003f2d4194b3 in g_atomic_pointer_get () from /lib64/libglib-2.0.so.0
#1  0x0000003d84e49721 in camel_operation_get_type () from /usr/lib64/libcamel-1.2.so.23
#2  0x0000003d85a5cd48 in ?? () from /usr/lib64/libcamel-provider-1.2.so.23
#3  0x0000003d84e4f68a in camel_stream_read () from /usr/lib64/libcamel-1.2.so.23
#4  0x00007f9bea524e6b in ?? () from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#5  0x0000003d84e4f68a in camel_stream_read () from /usr/lib64/libcamel-1.2.so.23
#6  0x0000003d84e50238 in camel_stream_write_to_stream () from /usr/lib64/libcamel-1.2.so.23
#7  0x00007f9bea525c35 in camel_imapx_stream_nstring_stream ()
   from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#8  0x00007f9bea528bf2 in imapx_parse_fetch ()
   from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#9  0x00007f9bea532977 in ?? () from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#10 0x00007f9bea536516 in ?? () from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#11 0x00007f9bea5367e5 in ?? () from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#12 0x00007f9bea536c20 in ?? () from /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so
#13 0x0000003f2d4683a6 in ?? () from /lib64/libglib-2.0.so.0
#14 0x000000302b807b31 in start_thread () from /lib64/libpthread.so.0
#15 0x000000302b4dfd2d in clone () from /lib64/libc.so.6

-- 
Knowledge Is Power
Power Corrupts
Study Hard
Be Evil

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]