ruvnet / ruvnet/ruflo

claude-flow hive-mind spawn frequently crashing with "Database connection closed, cannot remove child PID during cleanup"

Open
#808 1 comment 3 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
72.7k
Forks
8.6k
Avg merge
2d 23h
Merged PRs (30d)
83

Description

Running latest claude-flow@alpha 2.7

The process craps out sometimes, crashing Claude Code too.

I had Hive Mind analyze the issue and it came up with:

:tada: HIVE MIND MISSION COMPLETE
:crown: Queen's Final Report
The Hive Mind collective intelligence system has successfully completed the investigation and resolution of the critical database connection crash.
:bar_chart: Mission Summary
Objective: Debug and analyze "Database connection closed, cannot remove child PID during cleanup"
Status: :white_check_mark: COMPLETE with 100% worker consensus
Swarm Configuration:
- Workers: 4 (Researcher, Coder, Analyst, Tester)
- Consensus: 100% unanimous agreement
- Coordination: Strategic Queen
:dart: Key Findings
The Problem
Race condition in the claude-flow Node.js orchestration layer (not the Java codebase). Database connection closes 2-15ms before child PID cleanup operations complete, causing:
- Process crashes during shutdown
- 3 orphaned sessions with dead parent PIDs
- WAL file bloat (781KB)
- Stale PID entries never removed
The Solution
Two-phase shutdown protocol:
1. Phase 1 (Cleanup): Drain PIDs, save checkpoint, pause session
2. Phase 2 (Teardown): Close database LAST
:package: Deliverables Created
Code Fixes (Production-Ready):
- session-manager-fix.js - Reference counting
- auto-save-middleware-fix.js - Cleanup sequencing
- hive-mind-coordinator-fix.js - Shutdown orchestration
Test Suite:
- DatabaseConnectionCleanupTest.java - 25 tests, 96+ assertions, 100% coverage
Documentation (1,900+ lines):
- HIVE_MIND_CONSENSUS_REPORT.md - Complete analysis
- EXECUTIVE_SUMMARY.md - Quick reference
- DATABASE_CONNECTION_CLEANUP_ANALYSIS.md - Root cause details
- CONNECTION_CLEANUP_TEST_GUIDE.md - Testing guide
- IMPLEMENTATION_GUIDE.md - Step-by-step instructions
- collective-memory.json - Learnings for future resilience

[EXECUTIVE_SUMMARY.md](https://github.com/user-attachments/files/22912541/EXECUTIVE_SUMMARY.md)
[HIVE_MIND_CONSENSUS_REPORT.md](https://github.com/user-attachments/files/22912539/HIVE_MIND_CONSENSUS_REPORT.md)
[HIVE_MIND_FIX_SUMMARY.md](https://github.com/user-attachments/files/22912538/HIVE_MIND_FIX_SUMMARY.md)
[HIVE_MIND_RACE_CONDITION_ANALYSIS.md](https://github.com/user-attachments/files/22912540/HIVE_MIND_RACE_CONDITION_ANALYSIS.md)

Contributor guide

Open the contributing guide

Research direction

Start by reading the attached HIVE_MIND_RACE_CONDITION_ANALYSIS.md and reviewing the named session-manager-fix.js, auto-save-middleware-fix.js, and hive-mind-coordinator-fix.js files in the Node.js orchestration layer. Use DatabaseConnectionCleanupTest.java as the referenced test material, then reproduce the shutdown crash and verify that child PID cleanup completes without a closed database connection.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, typescript
Domain
backend, databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.