Loading src/cluster.cpp +2 −2 Changes for src/cluster.cpp: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -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 Loading src/session.cpp +9 −10 Changes for src/session.cpp: 9 added lines, 10 removed lines. Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading @@ -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); } Loading @@ -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; Loading Loading
src/cluster.cpp +2 −2 Changes for src/cluster.cpp: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -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 Loading
src/session.cpp +9 −10 Changes for src/session.cpp: 9 added lines, 10 removed lines. Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading @@ -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); } Loading @@ -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; Loading