fix(cubefs): make FUSE mount a durable view of cube-server daemon store
The cubefs-mount --socket path was never actually built: CubeFs<B> is generic, so the --socket (DaemonBackend) and default (HashBackend) arms of the match were incompatible types (E0308), and --features mount failed to compile. The running binary was therefore the in-memory build, so --socket was silently ignored and every FUSE write went to RAM and never reached the daemon (rawget/rawkeys returned none / 0 keys, WAL stayed 0). Fix: type-erase the backend. Add (forwards to inner) in cubestore, and build in cubefs-mount via Box::new(DaemonBackend::new(p)) / Box::new(HashBackend::new()). Keeps cubefs free of a cubesys dep (acyclic graph). Verified end-to-end on host (shared code path as the VM): a FUSE write via lands in the daemon store (rawget returns the record, 5 keys present, WAL grows), and survives a of the daemon + relaunch with the same --store (byte-identical read-back). Also includes (from RESUME-cubefs-daemon.md): cubesys raw* command family (rawget/rawput/rawdel/rawkeys/rawscan + parse/hex helpers) and the DaemonBackend client + smoke tests. Report/verification docs added. Note: VM cubefs.service still mounts in-memory (no --socket); update the unit to as a follow-up so the deployed VM FUSE is durable too.
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# REPORT INDEX — locations of verification/session reports
|
||||
|
||||
Hardfile index (per user 2026-08-13: "keep a hardfile log of each location of
|
||||
these reports and summaries within the session store database"). Each row logs
|
||||
where a report/summary lives on disk AND its coordinate in the session store
|
||||
(CUBE `hermes` namespace), so they can be found later without grepping history.
|
||||
|
||||
Format: `DATE | TOPIC | DISK PATH | CUBE COORD (hermes ns) | NOTES`
|
||||
|
||||
---
|
||||
|
||||
2026-08-13 | cubefs<->cube-server FUSE durability: bug fix + byte-proof write reached daemon | /home/CUBELinux/CUBELinux-2/VERIFICATION-cubefs-daemon.md | hermes: (mirror pending) | record-codec byte dump proving CubeFs write persisted to daemon; DaemonBackend per-call-conn fix
|
||||
2026-08-13 | RESUME POINT cubefs daemon durability task | /home/CUBELinux/CUBELinux-2/RESUME-cubefs-daemon.md | hermes: (mirror pending) | full task state, next steps, key files
|
||||
2026-08-13 | HIST-QNA: user paused session, asked to save resume point | (CUBE hermes only) | hermes:c43ec674e18e24dc3866323d77db316961e42bb74f1581d6cfca7587120558d6:17772457101911163865,8235721494341014670,4908589020773913290 | logged before pause
|
||||
|
||||
## To mirror a disk report into CUBE hermes (so it has a coord):
|
||||
# as luulu, with cubed daemon up:
|
||||
# cd /home/luulu/.cubelinux-agent && export XDG_RUNTIME_DIR=/run/user/1000
|
||||
# python3 -c "import cube_bridge as cb; cb.set_socket('/run/user/1000/cubelinux/cubed.sock'); \
|
||||
# cb.cube_write('hermes','REPORT:<topic>:<date>', open('<disk path>').read())"
|
||||
# then record the returned coord in the table above.
|
||||
Reference in New Issue
Block a user