The previous sequence number of a stream is initialized to -1ULL
and comparing the current sequence number against it to perform
a rotation will yield unexepected results.
The assumption that the previous sequence number is less than
the current one is assert()'ed on elsewhere.
This case triggers whenever a rotation is performed before the
relay daemon has received a packet for a given stream.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
goto end;
}
- if (stream->prev_seq < stream->rotate_at_seq_num) {
+ if (stream->prev_seq < stream->rotate_at_seq_num ||
+ stream->prev_seq == -1ULL) {
DBG("Stream %" PRIu64 " no yet ready for rotation",
stream->stream_handle);
goto end;