Hi, Timo. Yes, in this case I was waking up the laptop, but I'm not sure that's always the case.
John > On Feb 20, 2026, at 12:27, Timo Sirainen <[email protected]> wrote: > > On 20. Feb 2026, at 12.35, John via dovecot <[email protected]> wrote: >> >> My install via homebrew of 2.4.2 is still crashing regularly. Same problem >> as before: >> >>> Feb 20 10:34:05 master: Panic: file ./time-util.h: line 40 >>> (timeval_add_usecs): assertion failed: (usecs >= 0) >> >> This started with the upgrade to 2.4. I was hoping that the (long in coming) >> upgrade to the homebrew formula would solve it, but no luck. In fact it >> might be happening more frequently (just an impression and not something >> I've actually timed). > > When laptop is opened after being suspended, I guess? > > This probably fixes it: > > commit 3da6d4d08990bcf4eded07156fa61335c5c8ac81 > Author: Timo Sirainen <[email protected]> > Date: Fri Feb 20 13:20:39 2026 +0200 > > lib: timeval_add/sub_usecs() - Fix usecs type > > Some callers expect it to be 64bit, but suseconds_t isn't guaranteed to be. > Added assert mainly to catch callers that try to provide negative values > as parameter, which wrap to large unsigned values. > > diff --git a/src/lib/time-util.h b/src/lib/time-util.h > index 00516b11b5..6a0b30d7ba 100644 > --- a/src/lib/time-util.h > +++ b/src/lib/time-util.h > @@ -35,9 +35,9 @@ timeval_from_usecs(struct timeval *tv_r, unsigned long > usecs) > } > > static inline void > -timeval_add_usecs(struct timeval *tv, suseconds_t usecs) > +timeval_add_usecs(struct timeval *tv, unsigned long long usecs) > { > - i_assert(usecs >= 0); > + i_assert(usecs <= LLONG_MAX); > tv->tv_sec += (time_t)(usecs / 1000000); > tv->tv_usec += (usecs % 1000000); > if (tv->tv_usec >= 1000000) { > @@ -47,9 +47,9 @@ timeval_add_usecs(struct timeval *tv, suseconds_t usecs) > } > > static inline void > -timeval_sub_usecs(struct timeval *tv, suseconds_t usecs) > +timeval_sub_usecs(struct timeval *tv, unsigned long long usecs) > { > - i_assert(usecs >= 0); > + i_assert(usecs <= LLONG_MAX); > tv->tv_sec -= (time_t)(usecs / 1000000); > tv->tv_usec -= (usecs % 1000000); > if (tv->tv_usec < 0) { > _______________________________________________ dovecot mailing list -- [email protected] To unsubscribe send an email to [email protected]
