diff options
author | Giteabot <teabot@gitea.io> | 2023-03-06 09:35:07 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-06 22:35:07 +0800 |
commit | b1e68f39e737f6d130ffa8b423ee7da3075b12d7 (patch) | |
tree | 1a9b5e388b44518589068ff9f84255b52f601a34 /modules/queue/unique_queue_channel.go | |
parent | ee3d9330a82d5483b7d832593b6615d3d3a34f31 (diff) | |
download | gitea-b1e68f39e737f6d130ffa8b423ee7da3075b12d7.tar.gz gitea-b1e68f39e737f6d130ffa8b423ee7da3075b12d7.zip |
Properly flush unique queues on startup (#23154) (#23201)
Backport #23154
There have been a number of reports of PRs being blocked whilst being
checked which have been difficult to debug. In investigating #23050 I
have realised that whilst the Warn there is somewhat of a miscall there
was a real bug in the way that the LevelUniqueQueue was being restored
on start-up of the PersistableChannelUniqueQueue.
Next there is a conflict in the setting of the internal leveldb queue
name - This wasn't being set so it was being overridden by other unique
queues.
This PR fixes these bugs and adds a testcase.
Thanks to @brechtvl for noticing the second issue.
Fix #23050
and others
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Co-authored-by: delvh <leon@kske.dev>
Diffstat (limited to 'modules/queue/unique_queue_channel.go')
-rw-r--r-- | modules/queue/unique_queue_channel.go | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/modules/queue/unique_queue_channel.go b/modules/queue/unique_queue_channel.go index c43bd1db3f..62c051aa39 100644 --- a/modules/queue/unique_queue_channel.go +++ b/modules/queue/unique_queue_channel.go @@ -177,7 +177,9 @@ func (q *ChannelUniqueQueue) Shutdown() { go func() { log.Trace("ChannelUniqueQueue: %s Flushing", q.name) if err := q.FlushWithContext(q.terminateCtx); err != nil { - log.Warn("ChannelUniqueQueue: %s Terminated before completed flushing", q.name) + if !q.IsEmpty() { + log.Warn("ChannelUniqueQueue: %s Terminated before completed flushing", q.name) + } return } log.Debug("ChannelUniqueQueue: %s Flushed", q.name) |