mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Properly flush unique queues on startup (#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: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		@@ -124,7 +124,10 @@ func (q *ChannelQueue) Shutdown() {
 | 
			
		||||
		log.Trace("ChannelQueue: %s Flushing", q.name)
 | 
			
		||||
		// We can't use Cleanup here because that will close the channel
 | 
			
		||||
		if err := q.FlushWithContext(q.terminateCtx); err != nil {
 | 
			
		||||
			log.Warn("ChannelQueue: %s Terminated before completed flushing", q.name)
 | 
			
		||||
			count := atomic.LoadInt64(&q.numInQueue)
 | 
			
		||||
			if count > 0 {
 | 
			
		||||
				log.Warn("ChannelQueue: %s Terminated before completed flushing", q.name)
 | 
			
		||||
			}
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		log.Debug("ChannelQueue: %s Flushed", q.name)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user