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:
		@@ -8,10 +8,13 @@ import (
 | 
			
		||||
	"testing"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestChannelUniqueQueue(t *testing.T) {
 | 
			
		||||
	_ = log.NewLogger(1000, "console", "console", `{"level":"warn","stacktracelevel":"NONE","stderr":true}`)
 | 
			
		||||
	handleChan := make(chan *testData)
 | 
			
		||||
	handle := func(data ...Data) []Data {
 | 
			
		||||
		for _, datum := range data {
 | 
			
		||||
@@ -52,6 +55,8 @@ func TestChannelUniqueQueue(t *testing.T) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestChannelUniqueQueue_Batch(t *testing.T) {
 | 
			
		||||
	_ = log.NewLogger(1000, "console", "console", `{"level":"warn","stacktracelevel":"NONE","stderr":true}`)
 | 
			
		||||
 | 
			
		||||
	handleChan := make(chan *testData)
 | 
			
		||||
	handle := func(data ...Data) []Data {
 | 
			
		||||
		for _, datum := range data {
 | 
			
		||||
@@ -98,6 +103,8 @@ func TestChannelUniqueQueue_Batch(t *testing.T) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestChannelUniqueQueue_Pause(t *testing.T) {
 | 
			
		||||
	_ = log.NewLogger(1000, "console", "console", `{"level":"warn","stacktracelevel":"NONE","stderr":true}`)
 | 
			
		||||
 | 
			
		||||
	lock := sync.Mutex{}
 | 
			
		||||
	var queue Queue
 | 
			
		||||
	var err error
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user