Commit dfd0a6e4 authored by jan.koester's avatar jan.koester
Browse files

deb

parent f839774d
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
mediadb (20260419+39) unstable; urgency=critical

  * Fix root cause of missing stores/index after import: replicate_index()
    had an initial_sync_ok_ guard that silently dropped index replication
    whenever a node hadn't completed sync_from_cluster first. This meant
    create_store, add_media, and all CRUD operations never pushed the index
    to the cluster on a fresh node or after restart. Removed the guard;
    the empty-index check (local_count == 0) is sufficient protection.
  * Fix import hang: removed the post-import verification phase that fetched
    every media blob from the cluster to check shard counts. This blocked
    all API requests (including the status page) because it held cluster_op_mutex_
    exclusively during potentially slow network I/O. The periodic repair_replication()
    handles under-replicated keys instead.
  * Fix stuck importing_ flag: now uses RAII guard so importing_ is always
    cleared on exit, even on exceptions.
  * Simplify replicate_index() guard: removed cluster_.fetch("index") call
    that could itself hang. Now uses simple initial_sync_ok_ check instead.
    every media blob from the cluster under exclusive lock.
  * Fix stuck importing_ flag: RAII guard ensures it's always cleared.
  * Add cluster_import_roundtrip unit test that verifies the full
    export → import → fetch → sync_from_cluster cycle.

 -- Jan Koester <jan.koester@tuxist.de>  Sat, 19 Apr 2026 00:00:00 +0200