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

test

parent eecc2452
Loading
Loading
Loading
Loading
Loading
+12 −3
Changes for src/cluster.cpp: 12 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -975,17 +975,26 @@ namespace authdb {

    std::vector<Cluster::SessionInfo> Cluster::listAllSessions() {
        std::vector<SessionInfo> out;
        
        if (!session_read_client_) 
            return out;
        if (!session_read_client_) return out;
        std::set<std::string> seen_sids;

        std::set<uint64_t> all_groups;
        try {

            // Try to retrieve and deserialize each group as a session
            for (uint64_t gid : all_groups) {
                try {
                    // Bounded per group — this runs synchronously in the admin
                    // "list sessions" request thread (see apiListSessions in
                    // admin.cpp). Without a deadline, one degraded group gives
                    // its retrieve() an independent ~30s retry budget (see
                    // Cluster::fetchSessionBySid), which multiplies across every
                    // session in the cluster instead of failing that group closed.
                    auto deadline = std::chrono::steady_clock::now() + std::chrono::seconds(5);
                    auto data = session_read_client_->retrieve(gid, deadline);
                    std::cerr << "[SESSIONS-DIAG] retrieve gid=" << gid
                              << " data_size=" << data.size() << std::endl;
                    if (data.empty()) continue;
                    SessionInfo info;
                    bool deser = SessionBlock::deserialize(data, info.sid, info.uid, info.did,
                                                  info.members, info.username, info.gpo_results,