elementary / mail

Mail app designed for elementary OS
https://elementary.io
GNU General Public License v3.0
197 stars 48 forks source link

Crash when trying to open a long conversation (+49 messages) #407

Open ImaCrea opened 5 years ago

ImaCrea commented 5 years ago

Hello dear contributors of the Mail app for Elementary, thank you very much for the great common you're nurturing. I am using it everyday and it's perfect.

I have been encountering a bug recently on mail with a conversation which has many replies in it. This conversation gathers at the moment 52 messages given the counter displayed but this started when it was around 49 I believe.

When I click on the conversation on the left panel, it looks like it's opening the conversation on the right panel but a second after the app crash.

Here's what I get in syslog :


Jul 17 09:57:25 imacrea pantheon-mail[31482]: The program 'pantheon-mail' received an X Window System error.#012This probably reflects a bug in the program.#012The error was 'BadAlloc (insufficient resources for operation)'.#012  (Details: serial 14219 error_code 11 request_code 53 (core protocol) minor_code 0)#012  (Note to programmers: normally, X errors are reported asynchronously;#012   that is, you will receive the error a while after causing it.#012   To debug your program, run it with the GDK_SYNCHRONIZE environment#012   variable to change this behavior. You can then get a meaningful#012   backtrace from your debugger if you break on the gdk_x_error() function.)
Jul 17 09:57:25 imacrea kernel: [62972.433497] traps: pantheon-mail[31482] trap int3 ip:7f3445ef9ea1 sp:7ffca255b2c0 error:0 in libglib-2.0.so.0.5600.4[7f3445ea8000+114000]
vertexian commented 5 years ago

So that's a BadAlloc return from a CreatePixmap() call (request code 53) at the X11 layer. So we are probably trying to create some giant pixmap to render the whole message thread at once, and the graphics driver can't or won't handle it. (Edit: or more likely, the height of pixmap is larger than 2^15 or 2^16, and so exceeds the X11 protocol limitations). I believe this is all done within the GTK libraries, and I don't know the best practice for reducing resource usage here.

Does GTK render the whole conversation panel regardless of whether it's on screen? That seems like it'd cause performance problems even if we did have the graphics resources. But I don't know what the best practice is here.

andbuitra commented 5 years ago

@vertexian I'm presenting this issue too on large emails with only one message.

I get sent a log everyday from every server I manage with a cron. When I open the mail it instantly crashes the application, nothing gets rendered on the message panel.

wout commented 5 years ago

I've got a similar error on a small conversation (one message, two short replies, no attachments):

pantheon-mail[8695]: The program 'pantheon-mail' received an X Window System error.#012This probably reflects a bug in the program.#012The error was 'BadAlloc (insufficient resources for operation)'.#012  (Details: serial 54507 error_code 11 request_code 53 (core protocol) minor_code 0)#012  (Note to programmers: normally, X errors are reported asynchronously;#012   that is, you will receive the error a while after causing it.#012   To debug your program, run it with the GDK_SYNCHRONIZE environment#012   variable to change this behavior. You can then get a meaningful#012   backtrace from your debugger if you break on the gdk_x_error() function.)
Aug 10 08:52:00 Rossy kernel: [55624.959270] traps: pantheon-mail[8695] trap int3 ip:7f42b44b6ea1 sp:7ffc0011be10 error:0 in libglib-2.0.so.0.5600.4[7f42b4465000+114000]

I can't post the full source, though, because it contains sensitive information.