forgejo/modules/queue
zeripath 36c66303df
Only attempt to flush queue if the underlying worker pool is not finished (#18593) (#18620)
* Only attempt to flush queue if the underlying worker pool is not finished (#18593)

Backport #18593

There is a possible race whereby a worker pool could be cancelled but yet the
underlying queue is not empty. This will lead to flush-all cycling because it
cannot empty the pool.

* On shutdown of Persistant Channel Queues close datachan and empty

Partial Backport #18415

Although we attempt to empty the datachan in queues - due to
races we are better off just closing the channel and forcibly emptying
it in shutdown.

Fix #18618

Signed-off-by: Andrew Thornton <art27@cantab.net>

* Move zero workers warning to debug

Fix #18617

Signed-off-by: Andrew Thornton <art27@cantab.net>

* Update modules/queue/manager.go

Co-authored-by: Gusted <williamzijl7@hotmail.com>

* Update modules/queue/manager.go

Co-authored-by: Gusted <williamzijl7@hotmail.com>

Co-authored-by: Gusted <williamzijl7@hotmail.com>
2022-02-06 14:55:44 +08:00
..
bytefifo.go Multiple Queue improvements: LevelDB Wait on empty, shutdown empty shadow level queue, reduce goroutines etc (#15693) 2021-05-15 16:22:26 +02:00
helper.go Add an abstract json layout to make it's easier to change json library (#16528) 2021-07-24 18:03:58 +02:00
manager.go Only attempt to flush queue if the underlying worker pool is not finished (#18593) (#18620) 2022-02-06 14:55:44 +08:00
queue.go Multiple Queue improvements: LevelDB Wait on empty, shutdown empty shadow level queue, reduce goroutines etc (#15693) 2021-05-15 16:22:26 +02:00
queue_bytefifo.go Add an abstract json layout to make it's easier to change json library (#16528) 2021-07-24 18:03:58 +02:00
queue_channel.go Multiple Queue improvements: LevelDB Wait on empty, shutdown empty shadow level queue, reduce goroutines etc (#15693) 2021-05-15 16:22:26 +02:00
queue_channel_test.go Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
queue_disk.go Multiple Queue improvements: LevelDB Wait on empty, shutdown empty shadow level queue, reduce goroutines etc (#15693) 2021-05-15 16:22:26 +02:00
queue_disk_channel.go Only attempt to flush queue if the underlying worker pool is not finished (#18593) (#18620) 2022-02-06 14:55:44 +08:00
queue_disk_channel_test.go Prevent deadlock in TestPersistableChannelQueue (#17717) 2021-11-19 01:13:25 +00:00
queue_disk_test.go A better go code formatter, and now make fmt can run in Windows (#17684) 2021-11-17 20:34:35 +08:00
queue_redis.go Multiple Queue improvements: LevelDB Wait on empty, shutdown empty shadow level queue, reduce goroutines etc (#15693) 2021-05-15 16:22:26 +02:00
queue_test.go Add an abstract json layout to make it's easier to change json library (#16528) 2021-07-24 18:03:58 +02:00
queue_wrapped.go Multiple Queue improvements: LevelDB Wait on empty, shutdown empty shadow level queue, reduce goroutines etc (#15693) 2021-05-15 16:22:26 +02:00
setting.go Use immediate queues in integration tests and ensure that immediate (#16927) 2021-09-03 11:20:57 +01:00
unique_queue.go Add Unique Queue infrastructure and move TestPullRequests to this (#9856) 2020-02-02 23:19:58 +00:00
unique_queue_channel.go Make the Mirror Queue a queue (#17326) 2021-10-17 12:43:25 +01:00
unique_queue_disk.go Multiple Queue improvements: LevelDB Wait on empty, shutdown empty shadow level queue, reduce goroutines etc (#15693) 2021-05-15 16:22:26 +02:00
unique_queue_disk_channel.go Fix panic (#16072) 2021-06-05 15:23:22 +01:00
unique_queue_redis.go Multiple Queue improvements: LevelDB Wait on empty, shutdown empty shadow level queue, reduce goroutines etc (#15693) 2021-05-15 16:22:26 +02:00
unique_queue_wrapped.go Add Unique Queue infrastructure and move TestPullRequests to this (#9856) 2020-02-02 23:19:58 +00:00
workerpool.go Only attempt to flush queue if the underlying worker pool is not finished (#18593) (#18620) 2022-02-06 14:55:44 +08:00