matrix-org / purple-matrix

Libpurple protocol plugin for matrix
GNU General Public License v2.0
222 stars 46 forks source link

Segfault in `matrix_e2e_handle_sync_key_counts` #95

Open bodqhrohro opened 5 years ago

bodqhrohro commented 5 years ago
#0  0x00007fffe7c45532 in matrix_e2e_handle_sync_key_counts (pc=0x55555686f110, count_object=0x55555b228e90, force_send=0) at matrix-e2e.c:937
#1  0x00007fffe7c4570d in key_upload_callback
    (conn=0x555556130d00, user_data=0x0, json_root=0x55555b3a1380, body=0x55555b353e10 "{\"one_time_key_counts\": {\"signed_curve25519\": 300}}", body_len=51, content_type=0x55555b62e750 "application/json") at matrix-e2e.c:989
#2  0x00007fffe7c41381 in matrix_api_complete
    (url_data=0x555556007a00, user_data=0x555557682940, ret_data=0x555558b70940 "HTTP/1.1 200 OK\r\nDate: Thu, 09 May 2019 10:00:28 GMT\r\nContent-Type: application/json\r\nTransfer-Encoding: chunked\r\nConnection: keep-alive\r\nSet-Cookie: __cfduid=blahblahblah"..., ret_len=733, error_message=0x0)
    at matrix-api.c:330
#3  0x00007ffff6faec4d in url_fetch_recv_cb (url_data=0x555556007a00, source=<optimized out>, cond=<optimized out>) at ././libpurple/util.c:3996
#4  0x00005555555ca98e in pidgin_io_invoke (source=<optimized out>, condition=<optimized out>, data=0x5555591243e0) at ././pidgin/gtkeventloop.c:73
#5  0x00007ffff7091dd8 in g_main_dispatch (context=0x5555556a06f0) at ../../../glib/gmain.c:3182
#6  0x00007ffff7091dd8 in g_main_context_dispatch (context=context@entry=0x5555556a06f0) at ../../../glib/gmain.c:3847
#7  0x00007ffff70921c8 in g_main_context_iterate (context=0x5555556a06f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../glib/gmain.c:3920
#8  0x00007ffff70924c2 in g_main_loop_run (loop=0x55555605af30) at ../../../glib/gmain.c:4116
#9  0x00007ffff755b8e7 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#10 0x000055555559098b in main (argc=<optimized out>, argv=<optimized out>) at ././pidgin/gtkmain.c:939
bodqhrohro commented 5 years ago

And another one:

#0  0x00007ffff6f5c8b5 in purple_connection_get_protocol_data (connection=0xb0d082d181d1a3d0) at ././libpurple/connection.c:475
#1  0x00007fffe7c45526 in matrix_e2e_handle_sync_key_counts (pc=0xb0d082d181d1a3d0, count_object=0x55555877e070, force_send=0) at matrix-e2e.c:936
#2  0x00007fffe7c4570d in key_upload_callback
    (conn=0x555556929590, user_data=0x0, json_root=0x5555583e2a80, body=0x555557966560 "{\"one_time_key_counts\": {\"signed_curve25519\": 300}}", body_len=51, content_type=0x555558a15830 "application/json") at matrix-e2e.c:989
#3  0x00007fffe7c41381 in matrix_api_complete
    (url_data=0x5555560b7f80, user_data=0x555555fa2e00, ret_data=0x555557596ab0 "HTTP/1.1 200 OK\r\nDate: Thu, 09 May 2019 14:38:40 GMT\r\nContent-Type: application/json\r\nTransfer-Encoding: chunked\r\nConnection: keep-alive\r\nSet-Cookie: __cfduid=blahblahblah"..., ret_len=733, error_message=0x0)
    at matrix-api.c:330
#4  0x00007ffff6faec4d in url_fetch_recv_cb (url_data=0x5555560b7f80, source=<optimized out>, cond=<optimized out>) at ././libpurple/util.c:3996
#5  0x00005555555ca98e in pidgin_io_invoke (source=<optimized out>, condition=<optimized out>, data=0x555556929670) at ././pidgin/gtkeventloop.c:73
#6  0x00007ffff7091dd8 in g_main_dispatch (context=0x5555556a06f0) at ../../../glib/gmain.c:3182
#7  0x00007ffff7091dd8 in g_main_context_dispatch (context=context@entry=0x5555556a06f0) at ../../../glib/gmain.c:3847
#8  0x00007ffff70921c8 in g_main_context_iterate (context=0x5555556a06f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../glib/gmain.c:3920
#9  0x00007ffff70924c2 in g_main_loop_run (loop=0x555555fcb1e0) at ../../../glib/gmain.c:4116
#10 0x00007ffff755b8e7 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#11 0x000055555559098b in main (argc=<optimized out>, argv=<optimized out>) at ././pidgin/gtkmain.c:939
penguin42 commented 5 years ago

I have seen this; I'm not sure how far I got trying to debug it. In one of the situations I think I'd got an error saying a one time key already existed - i.e. at some previous run we'd tried to upload a key, the server had got it, but we'd crashed/failed before recording that fact. So next time we did the same.

ildar commented 5 years ago

I'm experiencing crashes a couple of week already. Any progress catching this?

ildar commented 5 years ago
ildar commented 5 years ago

nope, it doesn't

bodqhrohro commented 3 years ago

I have just noticed that the subject crash happened right after I disabled the Matrix account.

ildar commented 3 years ago

the plugin seems abandoned which is very sad.