GNOME Bugzilla – Bug 683935
Idle source dispatched without callback, You must call g_source_set_callback()
Last modified: 2012-09-13 14:46:43 UTC
I get this warning: (evolution:15200): GLib-WARNING **: Idle source dispatched without callback You must call g_source_set_callback(). when I use current git master of evolution (to be 3.5.92) with libsoup 2.38.1 and I have set to download images from the Internet, and I select an HTML message with images which are not downloaded yet. This is caused because of soup_add_completion is called with NULL 'function'. Breakpoint 2, soup_add_completion (async_context=0x0, function=0, data=0x0) at soup-misc.c:136 136 GSource *source = g_idle_source_new (); (gdb) bt
+ Trace 230845
(gdb) f 14 #14 0x00007ffff4e53752 in process_queue_item (item=0x7fff9803e9b0) at soup-session-sync.c:306 306 soup_session_send_queue_item (item->session, item, NULL); (gdb) f 1 #1 0x00007ffff4e37ae7 in send_sync_finished (stream=0x7fffb80398c0 [SoupHTTPInputStream]) at soup-http-input-stream.c:444 444 soup_add_completion (priv->async_context, NULL, NULL);
View on threads at the above break-point is:
+ Trace 230846
Thread 32 (Thread 0x7fffc9b63700 (LWP 15275))
In libsoup 2.38 and earlier, SoupRequestHTTP only supports async requests. (soup_request_send_async() as opposed to soup_request_send()). This is part of why the API is marked unstable; because it was never fully implemented. In libsoup 2.40, you can use soup_request_send() with SoupSessionSync, and soup_request_send_async() with SoupSessionAsync, but not vice versa. (The plan is that eventually there will only be a single SoupSession class, which will support both sync and async ops.)
Strange, I thought this worked before. In other words, I understand this as: just wait for 2.40 and it'll work there. I'm fine with that.