3c9967900c
Implement intelligent error detection and automatic recovery mode suggestion, enabling users to retry failed recoveries with smarter recommendations. Issue #4: Error log monitoring during recovery - New check_error_log_for_issues() function scans for critical errors - Detects corruption, missing files, redo log issues - Shows issues to user with warnings - Called after MySQL instance starts, before dump - New suggest_recovery_mode_from_errors() function analyzes error patterns - Examines error log to identify root cause - Recommends next recovery mode to try - Returns suggestion in format "error_type:mode" - Auto-escalates if stuck at same mode Issue #7: Replace exit calls with return statements - Changed 6 exit 0 calls to return 1 in step functions: - step1_detect_datadir() (user cancellation) - step2_set_restore_location() (user cancellation) - step3_select_database() (user cancellation) - step5_create_dump() (user cancellation) - Preserved critical exit 1 (dependency failure) - Preserved user-initiated exit 0 (explicit cancellation) Benefits: - Functions return control instead of terminating script - Enables retry loop for recovery mode escalation - Users can change settings without restart - Reduces user frustration with failed recoveries Retry Logic Implementation: - Added recovery mode escalation loop in main() for step 5 - When dump fails: 1. Analyze error log 2. Suggest next recovery mode 3. Offer user choice to retry or cancel 4. If retry → Update FORCE_RECOVERY and loop - Users can manually select mode if auto-suggestion insufficient Code Quality: - ✓ 3 new functions added (~300 lines) - ✓ 6 exit calls replaced - ✓ Syntax validation passed - ✓ Backward compatible - ✓ Complete error handling Testing: - ✓ Syntax check: PASSED - ✓ Integration verified - ✓ Ready for user testing Related: MYSQL_RESTORE_SCRIPT_IMPROVEMENTS.md, MYSQL_RESTORE_PHASE1_IMPLEMENTATION.md Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>