GNOME Bugzilla – Bug 756285
Docs for soup_session_requeue_message() don't match implementation
Last modified: 2018-09-21 16:23:25 UTC
According to the docs at https://developer.gnome.org/libsoup/stable/SoupSession.html#soup-session-queue-message the soup_session_queue_message() function says "Upon message completion, the callback specified in callback will be invoked. If after returning from this callback the message has not been requeued, msg will be unreffed." According to the docs at https://developer.gnome.org/libsoup/stable/SoupSession.html#soup-session-requeue-message the soup_session_requeue_message() function "causes msg to be placed back on the queue to be attempted again." In reality the attempt to call soup_session_requeue_message() causes an assertion failure as follows: ibsoup-CRITICAL **: soup_session_real_requeue_message: assertion 'item != NULL' failed The cause of the assertion failure is the following bug, marked as WONTFIX: https://bugzilla.gnome.org/show_bug.cgi?id=646835 To resolve this bug, either fix 646835, or document the fact the exact circumstances under which soup_session_requeue_message() works, assuming it works at all.
I forget the exact details because 646835 was a long time ago, but there was some reason we have to unqueue the message before calling the callback, and once you unqueue the message, it's too late to requeue() it. At any rate, when you reach the callback, that means you're done working with that SoupMessage, so it doesn't make sense to requeue it. OTOH, note that you *can* requeue it from the SoupMessage::finished signal, which happens just before the message gets unqueued.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/libsoup/issues/86.