TestEmptyBuffer added items without an explicit Message.Time, letting
Add() stamp them with time.Now().UTC(), then immediately queried with
end = time.Now() as the (exclusive) upper bound. On platforms where the
wall clock has coarse resolution -- macOS ticks in 1us increments, so
consecutive time.Now() calls usually return identical wall times -- the
item's timestamp equals the query bound, item.Message.Time.Before(before)
is false, and the item is excluded. The test then panics indexing the
empty result slice.
On Apple Silicon this fails nearly deterministically; Linux's
nanosecond-resolution clock is why CI never caught it.
Use explicit fixed timestamps via easyItem, matching every other test
in this file.
If the client sends a long multiline, then pauses on its own
before sending more data, we want to apply deferred fakelag
during the pause, rather than upon receiving the next input line.
* Fix a race condition in persisting channel memberships for always-on
clients (the asynchronous write of the client's channel memberships
could precede the update to the channel's member list, resulting in
the membership not being observed and written)
* Ensure always-on state is flushed on shutdown (we were already
flushing timestamps, because those writes are heavily debounced, but
we were relying on immediate asynchronous writeback for channel
memberships and similar state).
* Harvest cookies from the initial websocket handshake to pass to an
auth-script (#2185)
* Allow running auth-script and ip-check-script over unix domain socket
(#2280)
If the final channel we attempted to list had no messages, sql.ErrNoRows
would be returned as the error for the entire function, which would
prevent any channels from appearing in the targets list.
* default build includes everything
* allow compiling out PRECIS and Skeleton (still included by default)
* consistently use `postgresql` in identifiers
* All FAIL messages take the endpoint as a parameter when available
* Use MAX_REGISTRATIONS instead of FORBIDDEN when appropriate
* Add handler for unknown subcommand
* fix#2227
Instead of returning an error from Accept(), force the caller to process
errors from trying to read and parse the PROXY protocol.
The advantage here is that we don't have to rely on (net.Error).Temporary
or incur timed backoff from net/http when hitting these errors. However,
we still risk stalling processing of new incoming connections if someone
opens a connection to the proxy listener and doesn't send anything.
This is hard to fix while maintaining the net.Listener abstraction in
cooperation with http.Server.
* reduce proxy deadline to 5 seconds