Compare commits

...

2 Commits

Author SHA1 Message Date
b305d1342e v3.42.71: Fix error message formatting + code alignment
All checks were successful
CI/CD / Test (push) Successful in 1m15s
CI/CD / Lint (push) Successful in 1m24s
CI/CD / Build & Release (push) Successful in 3m12s
- Fixed incorrect diagnostic message for shared memory exhaustion
  (was 'Cannot access file', now 'PostgreSQL lock table exhausted')
- Improved clarity of lock capacity formula display
- Code formatting: aligned struct field comments for consistency
- Files affected: restore_exec.go, backup_exec.go, persist.go
2026-01-18 21:13:35 +01:00
5456da7183 Update bin/README.md for v3.42.70
All checks were successful
CI/CD / Test (push) Successful in 1m15s
CI/CD / Lint (push) Successful in 1m26s
CI/CD / Build & Release (push) Has been skipped
2026-01-18 18:53:44 +01:00
4 changed files with 12 additions and 12 deletions

View File

@@ -4,8 +4,8 @@ This directory contains pre-compiled binaries for the DB Backup Tool across mult
## Build Information ## Build Information
- **Version**: 3.42.50 - **Version**: 3.42.50
- **Build Time**: 2026-01-18_17:17:17_UTC - **Build Time**: 2026-01-18_17:52:44_UTC
- **Git Commit**: a0a401c - **Git Commit**: f9ff45c
## Recent Updates (v1.1.0) ## Recent Updates (v1.1.0)
- ✅ Fixed TUI progress display with line-by-line output - ✅ Fixed TUI progress display with line-by-line output

View File

@@ -30,7 +30,7 @@ type LocalConfig struct {
// Performance settings // Performance settings
CPUWorkload string CPUWorkload string
MaxCores int MaxCores int
ClusterTimeout int // Cluster operation timeout in minutes (default: 1440 = 24 hours) ClusterTimeout int // Cluster operation timeout in minutes (default: 1440 = 24 hours)
ResourceProfile string ResourceProfile string
LargeDBMode bool // Enable large database mode (reduces parallelism, increases locks) LargeDBMode bool // Enable large database mode (reduces parallelism, increases locks)

View File

@@ -39,8 +39,8 @@ type BackupExecutionModel struct {
cancelling bool // True when user has requested cancellation cancelling bool // True when user has requested cancellation
err error err error
result string result string
archivePath string // Path to created archive (for summary) archivePath string // Path to created archive (for summary)
archiveSize int64 // Size of created archive (for summary) archiveSize int64 // Size of created archive (for summary)
startTime time.Time startTime time.Time
elapsed time.Duration // Final elapsed time elapsed time.Duration // Final elapsed time
details []string details []string
@@ -63,8 +63,8 @@ type sharedBackupProgressState struct {
dbTotal int dbTotal int
dbDone int dbDone int
dbName string dbName string
overallPhase int // 1=globals, 2=databases, 3=compressing overallPhase int // 1=globals, 2=databases, 3=compressing
phaseDesc string // Description of current phase phaseDesc string // Description of current phase
hasUpdate bool hasUpdate bool
phase2StartTime time.Time // When phase 2 started (for realtime ETA calculation) phase2StartTime time.Time // When phase 2 started (for realtime ETA calculation)
dbPhaseElapsed time.Duration // Elapsed time since database backup phase started dbPhaseElapsed time.Duration // Elapsed time since database backup phase started

View File

@@ -152,8 +152,8 @@ type sharedProgressState struct {
currentDB string currentDB string
// Timing info for database restore phase // Timing info for database restore phase
dbPhaseElapsed time.Duration // Elapsed time since restore phase started dbPhaseElapsed time.Duration // Elapsed time since restore phase started
dbAvgPerDB time.Duration // Average time per database restore dbAvgPerDB time.Duration // Average time per database restore
phase3StartTime time.Time // When phase 3 started (for realtime ETA calculation) phase3StartTime time.Time // When phase 3 started (for realtime ETA calculation)
// Overall phase tracking (1=Extract, 2=Globals, 3=Databases) // Overall phase tracking (1=Extract, 2=Globals, 3=Databases)
@@ -1171,12 +1171,12 @@ func formatRestoreError(errStr string) string {
// Provide specific recommendations based on error // Provide specific recommendations based on error
if strings.Contains(errStr, "out of shared memory") || strings.Contains(errStr, "max_locks_per_transaction") { if strings.Contains(errStr, "out of shared memory") || strings.Contains(errStr, "max_locks_per_transaction") {
s.WriteString(errorStyle.Render(" • Cannot access file: stat : no such file or directory\n")) s.WriteString(errorStyle.Render(" • PostgreSQL lock table exhausted\n"))
s.WriteString("\n") s.WriteString("\n")
s.WriteString(infoStyle.Render(" ─── [HINT] Recommendations ────────────────────────────────")) s.WriteString(infoStyle.Render(" ─── [HINT] Recommendations ────────────────────────────────"))
s.WriteString("\n\n") s.WriteString("\n\n")
s.WriteString(" Lock table exhausted. Total capacity = max_locks_per_transaction\n") s.WriteString(" Lock capacity = max_locks_per_transaction\n")
s.WriteString(" × (max_connections + max_prepared_transactions).\n\n") s.WriteString(" × (max_connections + max_prepared_transactions)\n\n")
s.WriteString(" If you reduced VM size or max_connections, you need higher\n") s.WriteString(" If you reduced VM size or max_connections, you need higher\n")
s.WriteString(" max_locks_per_transaction to compensate.\n\n") s.WriteString(" max_locks_per_transaction to compensate.\n\n")
s.WriteString(successStyle.Render(" FIX OPTIONS:\n")) s.WriteString(successStyle.Render(" FIX OPTIONS:\n"))