Commit 63433dc0 authored by jan.koester's avatar jan.koester
Browse files

server bind error fixed

parent e8e7f4d9
Loading
Loading
Loading
Loading
+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
+13 −0
Original line number Diff line number Diff line
@@ -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();