@@ -12,7 +12,6 @@ import (
12
12
"runtime"
13
13
"strconv"
14
14
"strings"
15
- "sync"
16
15
"time"
17
16
18
17
"cloud.google.com/go/compute/metadata"
@@ -30,6 +29,7 @@ import (
30
29
"github.com/coder/coder/v2/agent/agentssh"
31
30
"github.com/coder/coder/v2/agent/reaper"
32
31
"github.com/coder/coder/v2/buildinfo"
32
+ "github.com/coder/coder/v2/cli/clilog"
33
33
"github.com/coder/coder/v2/codersdk"
34
34
"github.com/coder/coder/v2/codersdk/agentsdk"
35
35
"github.com/coder/serpent"
@@ -110,7 +110,7 @@ func (r *RootCmd) workspaceAgent() *serpent.Command {
110
110
// Spawn a reaper so that we don't accumulate a ton
111
111
// of zombie processes.
112
112
if reaper .IsInitProcess () && ! noReap && isLinux {
113
- logWriter := & lumberjackWriteCloseFixer { w : & lumberjack.Logger {
113
+ logWriter := & clilog. LumberjackWriteCloseFixer { Writer : & lumberjack.Logger {
114
114
Filename : filepath .Join (logDir , "coder-agent-init.log" ),
115
115
MaxSize : 5 , // MB
116
116
// Without this, rotated logs will never be deleted.
@@ -153,7 +153,7 @@ func (r *RootCmd) workspaceAgent() *serpent.Command {
153
153
// reaper.
154
154
go DumpHandler (ctx , "agent" )
155
155
156
- logWriter := & lumberjackWriteCloseFixer { w : & lumberjack.Logger {
156
+ logWriter := & clilog. LumberjackWriteCloseFixer { Writer : & lumberjack.Logger {
157
157
Filename : filepath .Join (logDir , "coder-agent.log" ),
158
158
MaxSize : 5 , // MB
159
159
// Per customer incident on November 17th, 2023, its helpful
@@ -478,33 +478,6 @@ func ServeHandler(ctx context.Context, logger slog.Logger, handler http.Handler,
478
478
}
479
479
}
480
480
481
- // lumberjackWriteCloseFixer is a wrapper around an io.WriteCloser that
482
- // prevents writes after Close. This is necessary because lumberjack
483
- // re-opens the file on Write.
484
- type lumberjackWriteCloseFixer struct {
485
- w io.WriteCloser
486
- mu sync.Mutex // Protects following.
487
- closed bool
488
- }
489
-
490
- func (c * lumberjackWriteCloseFixer ) Close () error {
491
- c .mu .Lock ()
492
- defer c .mu .Unlock ()
493
-
494
- c .closed = true
495
- return c .w .Close ()
496
- }
497
-
498
- func (c * lumberjackWriteCloseFixer ) Write (p []byte ) (int , error ) {
499
- c .mu .Lock ()
500
- defer c .mu .Unlock ()
501
-
502
- if c .closed {
503
- return 0 , io .ErrClosedPipe
504
- }
505
- return c .w .Write (p )
506
- }
507
-
508
481
// extractPort handles different url strings.
509
482
// - localhost:6060
510
483
// - http://localhost:6060
0 commit comments