event_dispatch() in main(), frontend() and engine() returns 0.
the man page says:
In order to process events, an application needs to call
event_dispatch(). This function only returns on error, and should
replace the event core of the application program.
which apparently is a lie. No idea how this can happen.
I guess we are hitting this in event_base_loop():
if (base->event_count_active) {
event_process_active(base);
if (!base->event_count_active && (flags & EVLOOP_ONCE))
done = 1;
} else if (flags & EVLOOP_NONBLOCK)
done = 1;
On 2024-09-04 14:44 +02, Stefan Fritsch <[email protected]> wrote:
> Hi,
>
> during network driver testing I sometimes do a stress test with
>
> while true; do ifconfig vio0 -inet; done &
> while true; do ifconfig vio0 inet autoconf; done &
> while true; do ifconfig vio0 -inet6; done &
> while true; do ifconfig vio0 inet6 autoconf; done &
> while true; do ifconfig vio0 down; done &
> while true; do ifconfig vio0 up; done &
>
> After I stop these jobs, "ifconfig vio0 autoconf" does not work any more
> because dhcpleased has died:
>
> Sep 4 14:20:39 oatest dhcpleased[19462]: bpf_send_packet: writev: Network is
> down
> Sep 4 14:20:39 oatest dhcpleased[19462]: bpf_send_packet: writev: Network is
> down
> Sep 4 14:20:39 oatest dhcpleased[19462]: bpf_send_packet: writev: Network is
> down
> Sep 4 14:20:39 oatest dhcpleased[19462]: bpf_send_packet: writev: Network is
> down
> Sep 4 14:20:40 oatest dhcpleased[19462]: bpf_send_packet: writev: Network is
> down
> Sep 4 14:20:40 oatest dhcpleased[80648]: fatal in main: msgbuf_write: Broken
> pipe
>
> This is obviously not a severe bug, but slaacd survives the stress test.
> Maybe dhcpleased could improve its error handling, too?
>
> Cheers,
> Stefan
>
--
In my defence, I have been left unsupervised.