Skip to content

Commit f45d999

Browse files
committed
Fix missing err handling
1 parent f677fb6 commit f45d999

File tree

4 files changed

+35
-11
lines changed

4 files changed

+35
-11
lines changed

cmd/etcd-backup/backup.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ func runBackups(ctx context.Context) {
3636
log.Printf("[error] Failed to initialize etcd client: %v", err)
3737
panic(err)
3838
}
39-
defer cli.Client.Close()
39+
defer func() {
40+
_ = cli.Client.Close()
41+
}()
4042

4143
s3Client, err := flyetcd.NewS3Client(ctx, s3Prefix)
4244
if err != nil {
@@ -121,7 +123,11 @@ func performBackup(parentCtx context.Context, cli *flyetcd.Client, s3Client *fly
121123
if err != nil {
122124
return fmt.Errorf("failed to create temp dir: %w", err)
123125
}
124-
defer os.RemoveAll(tmpDir)
126+
defer func() {
127+
if err := os.RemoveAll(tmpDir); err != nil {
128+
log.Printf("Error removing temporary directory: %v", err)
129+
}
130+
}()
125131

126132
fileName := fmt.Sprintf("backup-%s.db", time.Now().Format("20060102-150405"))
127133
backupPath := filepath.Join(tmpDir, fileName)
@@ -156,7 +162,9 @@ func updateLastBackupTime(t time.Time) error {
156162
if err != nil {
157163
return fmt.Errorf("failed to open backup log: %v", err)
158164
}
159-
defer backupLog.Close()
165+
defer func() {
166+
_ = backupLog.Close()
167+
}()
160168

161169
if _, err := fmt.Fprintf(backupLog, "%s\n", t.Format(time.RFC3339)); err != nil {
162170
return fmt.Errorf("failed to write backup time: %v", err)
@@ -175,7 +183,9 @@ func lastBackupTime() (time.Time, error) {
175183
if err != nil {
176184
return time.Time{}, fmt.Errorf("failed to open backup log: %w", err)
177185
}
178-
defer backupLog.Close()
186+
defer func() {
187+
_ = backupLog.Close()
188+
}()
179189

180190
var timeStr string
181191
if _, err := fmt.Fscanln(backupLog, &timeStr); err != nil {

cmd/etcd-backup/metrics.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,9 @@ func metricsHandler() http.Handler {
119119
}
120120

121121
// Add a newline separator
122-
w.Write([]byte("\n"))
122+
if _, err := w.Write([]byte("\n")); err != nil {
123+
log.Printf("Error writing newline: %v", err)
124+
}
123125

124126
// Then fetch and write etcd metrics
125127
client := http.Client{
@@ -131,7 +133,9 @@ func metricsHandler() http.Handler {
131133
scrapeErrors.Inc()
132134
return
133135
}
134-
defer resp.Body.Close()
136+
defer func() {
137+
_ = resp.Body.Close()
138+
}()
135139

136140
_, err = io.Copy(w, resp.Body)
137141
if err != nil {

internal/flyetcd/client.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ func (c *Client) Backup(ctx context.Context, backupPath string) (int64, error) {
7575
if err != nil {
7676
return 0, fmt.Errorf("failed to create snapshot: %v", err)
7777
}
78-
defer snapReader.Close()
78+
defer func() {
79+
_ = snapReader.Close()
80+
}()
7981

8082
backupFile, err := os.Create(backupPath)
8183
if err != nil {
@@ -116,7 +118,9 @@ func (c *Client) Restore(ctx context.Context, snapshotPath string) error {
116118
if err != nil {
117119
return fmt.Errorf("failed to open backup file: %v", err)
118120
}
119-
defer snapFile.Close()
121+
defer func() {
122+
_ = snapFile.Close()
123+
}()
120124

121125
cmd := exec.Command("etcdctl", "snapshot", "restore", snapshotPath,
122126
"--data-dir", node.Config.DataDir,

internal/flyetcd/s3.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ func (s *S3Client) Upload(ctx context.Context, backupPath string) (string, error
5656
if err != nil {
5757
return "", fmt.Errorf("failed to open backup file: %w", err)
5858
}
59-
defer file.Close()
59+
defer func() {
60+
_ = file.Close()
61+
}()
6062

6163
resp, err := s.Client.PutObject(ctx, &s3.PutObjectInput{
6264
Bucket: aws.String(s.bucket),
@@ -77,7 +79,9 @@ func (s *S3Client) Download(ctx context.Context, directory, version string) (str
7779
if err != nil {
7880
return "", fmt.Errorf("failed to create snapshot file: %v", err)
7981
}
80-
defer file.Close()
82+
defer func() {
83+
_ = file.Close()
84+
}()
8185

8286
s3Key := filepath.Join(s.prefix, S3BackupName)
8387
input := &s3.GetObjectInput{
@@ -90,7 +94,9 @@ func (s *S3Client) Download(ctx context.Context, directory, version string) (str
9094
if err != nil {
9195
return "", fmt.Errorf("failed to download from S3: %v", err)
9296
}
93-
defer result.Body.Close()
97+
defer func() {
98+
_ = result.Body.Close()
99+
}()
94100

95101
if _, err := io.Copy(file, result.Body); err != nil {
96102
return "", fmt.Errorf("failed to write snapshot: %v", err)

0 commit comments

Comments
 (0)