Update SSH connection errors documentation with blocking fix

**Motivations:**
- Document the blocking issue fix in the SSH connection errors documentation
- Keep documentation up to date with all fixes applied

**Root causes:**
- Documentation needed to reflect the blocking issue and its resolution

**Correctifs:**
- Added information about the blocking issue at step 5
- Documented the fix for command substitution blocking
- Updated root cause analysis to include blocking causes

**Evolutions:**
- Documentation now complete with all fixes

**Pages affectées:**
- fixKnowledge/ssh-connection-errors-deployment.md: Added blocking issue documentation
This commit is contained in:
Nicolas Cantu 2026-01-06 14:27:22 +01:00
parent ce63c08ac9
commit 17219ea662

View File

@ -16,6 +16,8 @@ mux_client_request_session: send fds failed
These errors appeared at step 5 of the deployment script when checking if Git is initialized on the server.
Additionally, the script could hang indefinitely at step 5 due to command substitution blocking when SSH connections failed or timed out.
## Impact
- **Severity**: Medium
@ -39,6 +41,8 @@ The SSH ControlMaster feature creates a persistent connection to avoid multiple
- Network interruptions can close the master connection
- The ControlMaster socket file can become stale if the connection dies
- The script did not detect or handle these cases, leading to cascading failures
- Command substitution `$()` with SSH commands can block indefinitely if the connection hangs
- The original logic used `grep` on command output, which required capturing all output and could hang
## Corrections Applied
@ -67,6 +71,9 @@ The SSH ControlMaster feature creates a persistent connection to avoid multiple
- Added explicit error detection and recovery mechanism
- Added automatic retry after connection cleanup
- Better error messages to distinguish between connection errors and Git initialization needs
- **Fixed blocking issue**: Removed command substitution `$()` that could hang indefinitely
- Simplified logic to use direct exit code checking instead of parsing output
- Improved timeout handling to prevent script from hanging
## Modifications