Loading debian/changelog +11 −0 Original line number Diff line number Diff line mediadb (20260426) unstable; urgency=high * Fix cluster data loss: skip orphan cleanup in vacuum_all_stores() when local database is empty — prevents deleting all cluster groups when a node starts with an empty or corrupt local DB * Fix crash-loop on bind failure: bind/listen HTTP sockets before starting cluster threads so a port-in-use error exits cleanly instead of causing "terminate called without an active exception" -- Jan Koester <jan.koester@tuxist.de> Sun, 26 Apr 2026 10:00:00 +0200 mediadb (20260425+3) unstable; urgency=medium * Rebuild against libparitypp 20260425+4 (interleaved stripe sends Loading src/server.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -627,6 +627,19 @@ int HttpServer::run() { std::cout << "mediadb started on " << proto << "://" << addr_ << ":" << port_ << "\n"; } // Bind sockets BEFORE starting the cluster so we fail fast if the // port is already in use. This avoids orphaning cluster threads // (which causes "terminate called without an active exception"). // The event constructor will skip bind/listen because _Bound/_Listening // are already set. for (auto* s : sockets) { if (s) { s->bind(); s->setNonBlock(); s->listen(); } } // Invoke post-fork callback (cluster start, etc.) — safe in child process if (post_fork_callback) { post_fork_callback(); Loading Loading
debian/changelog +11 −0 Original line number Diff line number Diff line mediadb (20260426) unstable; urgency=high * Fix cluster data loss: skip orphan cleanup in vacuum_all_stores() when local database is empty — prevents deleting all cluster groups when a node starts with an empty or corrupt local DB * Fix crash-loop on bind failure: bind/listen HTTP sockets before starting cluster threads so a port-in-use error exits cleanly instead of causing "terminate called without an active exception" -- Jan Koester <jan.koester@tuxist.de> Sun, 26 Apr 2026 10:00:00 +0200 mediadb (20260425+3) unstable; urgency=medium * Rebuild against libparitypp 20260425+4 (interleaved stripe sends Loading
src/server.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -627,6 +627,19 @@ int HttpServer::run() { std::cout << "mediadb started on " << proto << "://" << addr_ << ":" << port_ << "\n"; } // Bind sockets BEFORE starting the cluster so we fail fast if the // port is already in use. This avoids orphaning cluster threads // (which causes "terminate called without an active exception"). // The event constructor will skip bind/listen because _Bound/_Listening // are already set. for (auto* s : sockets) { if (s) { s->bind(); s->setNonBlock(); s->listen(); } } // Invoke post-fork callback (cluster start, etc.) — safe in child process if (post_fork_callback) { post_fork_callback(); Loading