Comment 11 for bug 1820584

Revision history for this message
Elias Rudberg (eliasrudberg) wrote :

I added some extra debug output in avahi and waited for the error to happen again, in this way found out that the assertion failure happens when the time_event_queue_root(q) call gives NULL so that the "else" part is used in update_timeout() in avahi-core/timeeventq.c:

static void update_timeout(AvahiTimeEventQueue *q) {
    AvahiTimeEvent *e;
    assert(q);

    if ((e = time_event_queue_root(q)))
        q->poll_api->timeout_update(q->timeout, &e->expiry);
    else
        q->poll_api->timeout_update(q->timeout, NULL); <-- assertion failure inside this call
}

So time_event_queue_root(q) gives NULL which means that q->prioq->root is NULL. Why would that happen?