Chris Lu and GitHub
ae4839e005
mount: keep a sealed chunk alive until its own upload finishes ( #10504 )
...
Sealing a logic chunk index that already held a sealed chunk dropped the
old chunk's only reference and freed its page chunk. That chunk's upload
may not have started reading it yet — Execute() returns as soon as the
job is handed to a goroutine — so mem.Free could hand a live 2 MiB mem
chunk back to the slot pool, the next NewMemChunk would overwrite it,
and the in-flight upload shipped whatever bytes were there. Under fio
randwrite the volume server rejected those needles with "Content-MD5 did
not match md5 of file data" and the FUSE write failed with EIO.
Give the sealed chunk a second reference for its upload, dropped only by
the upload itself, and let the upload unindex itself only while it still
owns the index — the unconditional delete could evict a newer sealed
chunk and hide its dirty pages from readers.
2026-07-31 01:16:02 -07:00
..
2026-07-23 17:44:02 -07:00
2026-07-31 01:16:02 -07:00
2026-02-20 18:42:00 -08:00
2026-07-15 22:01:19 -07:00
2026-07-15 22:01:19 -07:00
2026-07-15 22:01:19 -07:00
2026-07-15 22:01:19 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-03-23 13:35:16 -07:00
2026-07-23 17:44:02 -07:00
2026-03-30 18:25:11 -07:00
2026-07-31 00:34:22 -07:00
2026-06-25 19:17:32 -07:00
2026-06-25 19:17:32 -07:00
2026-01-07 13:06:08 -08:00
2026-07-23 17:44:02 -07:00
2026-06-24 19:54:03 -07:00
2026-06-24 14:24:22 -07:00
2026-06-16 09:16:24 -07:00
2026-06-16 09:16:24 -07:00
2026-04-16 00:44:24 -07:00
2026-04-18 20:03:34 -07:00
2026-04-18 20:03:34 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-04-18 21:42:36 -07:00
2026-04-18 20:18:38 -07:00
2026-04-18 20:18:38 -07:00
2026-04-18 20:18:38 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-04-18 20:18:38 -07:00
2026-04-19 00:53:12 -07:00
2026-04-18 20:03:45 -07:00
2026-04-18 20:03:45 -07:00
2026-04-18 20:03:45 -07:00
2026-04-18 20:03:45 -07:00
2026-05-01 19:51:27 -07:00
2026-05-01 19:51:27 -07:00
2026-04-03 16:04:27 -07:00
2026-06-18 17:38:28 -07:00
2026-06-18 17:38:28 -07:00
2026-07-23 17:44:02 -07:00
2026-06-24 14:24:22 -07:00
2026-01-06 10:50:54 -08:00
2026-01-06 10:50:54 -08:00
2026-01-06 10:50:54 -08:00
2026-05-24 23:49:41 -07:00
2026-07-23 17:44:02 -07:00
2026-04-16 00:44:24 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-03-29 13:33:17 -07:00
2026-03-29 13:33:17 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-04-16 11:37:52 -07:00
2026-06-24 14:24:22 -07:00
2026-05-24 23:56:37 -07:00
2026-01-06 10:50:54 -08:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-01-06 10:50:54 -08:00
2026-06-24 19:54:03 -07:00
2026-07-23 17:44:02 -07:00
2026-07-15 22:01:19 -07:00
2026-07-23 17:44:02 -07:00
2026-06-02 14:43:46 -07:00
2026-01-07 13:06:08 -08:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-05-24 23:56:37 -07:00
2026-07-23 17:44:02 -07:00
2026-01-07 13:06:08 -08:00
2026-07-27 14:28:29 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-07-27 14:28:29 -07:00
2026-07-27 14:28:29 -07:00
2026-03-25 20:06:34 -07:00
2026-04-10 13:05:48 -07:00
2026-07-23 17:44:02 -07:00
2026-03-24 11:43:41 -07:00
2026-04-15 14:06:06 -07:00
2026-06-30 20:45:43 -07:00
2026-01-06 10:50:54 -08:00
2026-07-23 17:44:02 -07:00
2026-06-23 01:31:14 -07:00
2026-07-27 14:28:29 -07:00
2026-06-01 15:11:02 -07:00
2026-04-23 19:17:35 -07:00
2026-07-23 17:44:02 -07:00