Releases: riverqueue/river
Releases · riverqueue/river
v0.36.0
Added
Fixed
- Fix unsafe concurrent producer map access in client. PR #1236.
- Mark schema replacements as
Stablein sqlc templates, preventing query SQL from having to be reallocated over and over again.. PR #1242. - Fix bug in
sqltemplatecached path in order in which named args are passed to a query (previously, the order was unstable). PR #1243.
v0.35.1
v0.35.0
Changed
- Ignore errors like
tls: failed to send closeNotify alert (but connection was closed anyway)when closing listeners. PR #1216.
Fixed
- Fixed leader election to track explicit database-issued leadership terms, reducing handoff flakiness and same-client reacquisition edge cases while making reelection and resign target the current leadership lease instead of a stale one. PR #1213.
v0.34.0
v0.33.0
Changed
- Jobs erroring or panicking no longer logs at the error/warn level because this is not indicative of a problem inside of River itself. These log statements have been demoted to info. PR #1190.
Fixed
- Fix in
Client.Startwhere previously it was possible for a River client that only partially started before erroring to not try to start on subsequentStartinvocations. PR #1187.
v0.32.0
Added
riverlog.Middlewarenow supportsMiddlewareConfig.MaxTotalBytes(default 8 MB) to cap total persistedriver:loghistory per job. When the cap is exceeded, oldest log entries are dropped first while retaining the newest entry. Values over 64 MB are clamped to 64 MB. PR #1157.
Changed
- Improved
riverlogperformance and reduced memory amplification when appending to large persistedriver:loghistories. PR #1157. - Reduced snooze-path memory amplification by setting
snoozesin metadata updates before marshaling, avoiding an extra full-payload JSON rewrite. PR #1159. - Schema names are now quoted in SQL operations, enabling the use of spaces and other odd characters. PR #1175.
Fixed
riverpgxv5now adapts JSON parameters forsimple protocol/execquery modes so[]byteJSON payloads are not encoded asbyteain pgx text-mode execution paths. This fixes invalid JSON syntax errors when running through protocol-constrained setups like PgBouncer transaction pooling while preserving normal behavior for explicitbyteaparameters. Fixes #1153. PR #1155.
v0.31.0
Added
- Added root River CLI flag
--statement-timeoutso Postgres session statement timeout can be set explicitly for commands like migrations. Explicit flag values take priority over database URL query params, and query params still take priority over built-in defaults. PR #1142.
Changed
- Upgrade supported Go versions to 1.25 and 1.26, and update CI accordingly. PR #1144.
Fixed
JobCountByQueueAndStatenow returns consistent results across drivers, including requested queues with zero jobs, and deduplicates repeated queue names in input. This resolves an issue with the sqlite driver in River UI reported in riverqueue/riverui#496. PR #1140.- Fix connection leak in
Listener.Connectin case whereafterConnectExecfailed. Thanks Johan Kjölhede (@GiGurra)! PR #1147. - Fix missing
ticker.Stopin producer'spollForSettingChanges(@GiGurra). PR #1148. - Fix accidental use of cancelled context for
Notifier.Ping(@GiGurra). PR #1149. - Add jitter to fetch poll loop to prevent producer stampeding (@GiGurra). PR #1150.