Chris Lu
ece4f42ecd
fix(filer): avoid ReaderCache WaitGroup reuse race between reads and destroy ( #10190 )
...
filer: count reader on cacher waitgroup under the map lock
The read's wg.Add(1) ran after ReadChunkAt released the ReaderCache lock, so a
concurrent destroy() (error eviction, LRU, or UnCache) could start wg.Wait() on
a zero counter and then race the Add - a WaitGroup reuse that trips -race and
can panic. Move the Add under the lock, before the cacher can leave the
downloaders map, so a destroy is always ordered against a counted read.
2026-07-01 21:17:46 -07:00
..
2026-05-29 00:45:45 -07:00
2026-06-10 12:10:49 -07:00
2026-06-09 10:41:11 -07:00
2026-05-23 21:40:41 -07:00
2026-05-23 21:40:41 -07:00
2026-06-09 00:18:33 -07:00
2026-06-30 10:38:51 -07:00
2026-06-30 10:38:51 -07:00
2026-05-25 13:15:19 -07:00
2026-06-30 10:38:51 -07:00
2026-06-30 10:38:51 -07:00
2026-05-26 12:49:31 -07:00
2026-05-21 02:12:00 -07:00
2026-05-23 21:40:41 -07:00
2026-06-30 10:38:51 -07:00
2026-02-20 18:42:00 -08:00
2026-01-07 13:06:08 -08:00
2026-05-19 10:22:17 -07:00
2026-05-19 10:22:17 -07:00
2026-05-19 10:22:17 -07:00
2026-06-30 13:27:49 -07:00
2026-06-01 13:11:18 -07:00
2026-06-01 13:11:18 -07:00
2026-05-28 15:00:18 -07:00
2026-05-28 15:00:18 -07:00
2026-05-23 21:40:41 -07:00
2026-05-28 15:00:18 -07:00
2026-05-23 21:40:41 -07:00
2026-06-24 10:47:11 -07:00
2026-06-24 10:47:11 -07:00
2026-06-10 13:08:34 -07:00
2026-06-10 13:08:34 -07:00
2026-06-24 10:47:11 -07:00
2026-04-03 17:55:27 -07:00
2026-05-28 15:00:18 -07:00
2026-06-30 20:45:43 -07:00
2026-06-08 13:56:16 -07:00
2026-03-30 18:25:11 -07:00
2026-06-10 13:08:34 -07:00
2026-06-10 13:08:34 -07:00
2026-05-07 17:45:04 -07:00
2026-06-30 13:27:49 -07:00
2026-06-30 13:27:49 -07:00
2026-07-01 21:17:46 -07:00
2026-06-16 09:15:44 -07:00
2026-06-16 09:15:44 -07:00
2026-05-07 17:45:04 -07:00
2026-06-30 13:27:49 -07:00
2026-06-30 13:27:49 -07:00