Commit 08bf1d62 authored by jan.koester's avatar jan.koester
Browse files

tes

parent 1975ef5c
Loading
Loading
Loading
Loading
Loading
+2 −2
Changes for src/cluster.cpp: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -516,8 +516,8 @@ namespace authdb {
            if (!running_ || !pclient_) continue;
            try {
                std::unique_lock<std::timed_mutex> lock;
                if (critical_) {
                    // When critical, wait briefly to ensure recovery probes execute
                if (critical_ || degraded_) {
                    // When degraded/critical, briefly wait to ensure probes can execute
                    lock = std::unique_lock<std::timed_mutex>(client_mutex_, std::chrono::seconds(2));
                } else {
                    // Normal: non-blocking, don't fight session ops
+9 −10
Changes for src/session.cpp: 9 added lines, 10 removed lines.
Original line number Diff line number Diff line
@@ -431,8 +431,8 @@ const authdb::SessionData *authdb::ClusterSession::addSession(AuthBackend &backe
        }
    }

    // Check cluster for existing session (skip when degraded to avoid blocking)
    if (g_Cluster && g_Cluster->isRunning() && !g_Cluster->isDegraded()) {
    // Check cluster for existing session (skip only when critical)
    if (g_Cluster && g_Cluster->isRunning() && !g_Cluster->isCritical()) {
        std::cerr << "[SESSION] addSession: fetching from cluster" << std::endl;
        uuid::uuid cluster_sid;
        std::vector<uuid::uuid> cluster_members;
@@ -450,9 +450,8 @@ const authdb::SessionData *authdb::ClusterSession::addSession(AuthBackend &backe
            return imported;
        }
        std::cerr << "[SESSION] addSession: not found in cluster" << std::endl;
    } else {
        std::cerr << "[SESSION] addSession: skipping cluster (degraded=" 
                  << (g_Cluster ? g_Cluster->isDegraded() : false) << ")" << std::endl;
    } else if (g_Cluster && g_Cluster->isCritical()) {
        std::cerr << "[SESSION] addSession: skipping cluster fetch (critical)" << std::endl;
    }

    // Create new session
@@ -465,12 +464,12 @@ const authdb::SessionData *authdb::ClusterSession::addSession(AuthBackend &backe
    }

    // Push to cluster for replication
    if (g_Cluster && g_Cluster->isRunning() && !g_Cluster->isDegraded()) {
    if (g_Cluster && g_Cluster->isRunning() && !g_Cluster->isCritical()) {
        std::cerr << "[SESSION] addSession: pushing to cluster" << std::endl;
        g_Cluster->pushSession(*newSession);
        std::cerr << "[SESSION] addSession: push done" << std::endl;
    } else if (g_Cluster && g_Cluster->isRunning() && g_Cluster->isDegraded()) {
        std::cerr << "[SESSION] addSession: queuing push (degraded)" << std::endl;
    } else if (g_Cluster && g_Cluster->isRunning() && g_Cluster->isCritical()) {
        std::cerr << "[SESSION] addSession: queuing push (critical)" << std::endl;
        g_Cluster->queuePush(*newSession);
    }

@@ -485,11 +484,11 @@ const authdb::SessionData *authdb::ClusterSession::getSession(uuid::uuid session
        std::cerr << "[SESSION] getSession: findLocal=" << (cur ? "found" : "null")
                  << " map_size=" << _sessions.size() << std::endl;
        if (cur) {
            if (g_Cluster && g_Cluster->isRunning() && !g_Cluster->isDegraded()) {
            if (g_Cluster && g_Cluster->isRunning() && !g_Cluster->isCritical()) {
                auto age = std::chrono::duration_cast<std::chrono::seconds>(
                    std::chrono::steady_clock::now() - cur->_lastClusterSync).count();
                std::cerr << "[SESSION] getSession: cluster sync age=" << age
                          << "s degraded=" << g_Cluster->isDegraded() << std::endl;
                          << "s critical=" << g_Cluster->isCritical() << std::endl;
                if (age >= 5) {
                    uuid::uuid c_sid, c_uid, c_did;
                    std::vector<uuid::uuid> c_members;