Skip to content

Commit 5ac6d3f

Browse files
authored
Merge pull request #90 from mxpv/chan
A few minor fixes in SDK
2 parents b704cc3 + 863c519 commit 5ac6d3f

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

machine.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -200,14 +200,9 @@ func NewMachine(ctx context.Context, cfg Config, opts ...Opt) (*Machine, error)
200200
m := &Machine{
201201
exitCh: make(chan struct{}),
202202
}
203-
logger := log.New()
204-
205-
if cfg.Debug {
206-
logger.SetLevel(log.DebugLevel)
207-
}
208203

209204
m.Handlers = defaultHandlers
210-
m.logger = log.NewEntry(logger)
205+
211206
if cfg.EnableJailer {
212207
m.Handlers.Validation = m.Handlers.Validation.Append(JailerConfigValidationHandler)
213208
if err := jail(ctx, m, &cfg); err != nil {
@@ -224,6 +219,15 @@ func NewMachine(ctx context.Context, cfg Config, opts ...Opt) (*Machine, error)
224219
opt(m)
225220
}
226221

222+
if m.logger == nil {
223+
logger := log.New()
224+
if cfg.Debug {
225+
logger.SetLevel(log.DebugLevel)
226+
}
227+
228+
m.logger = log.NewEntry(logger)
229+
}
230+
227231
if m.client == nil {
228232
m.client = NewClient(cfg.SocketPath, m.logger, cfg.Debug)
229233
}
@@ -332,6 +336,11 @@ func (m *Machine) startVMM(ctx context.Context) error {
332336
os.Remove(m.cfg.LogFifo)
333337
os.Remove(m.cfg.MetricsFifo)
334338
errCh <- err
339+
340+
// Notify subscribers that there will be no more values.
341+
// When err is nil, two reads are performed (waitForSocket and close exitCh goroutine),
342+
// second one never ends as it tries to read from empty channel.
343+
close(errCh)
335344
}()
336345

337346
// Set up a signal handler and pass INT, QUIT, and TERM through to firecracker

machine_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,10 @@ func TestStartVMM(t *testing.T) {
373373
t.Errorf("startVMM returned %s", m.Wait(ctx))
374374
}
375375
}
376+
377+
// Make sure exitCh close
378+
_, closed := <-m.exitCh
379+
assert.False(t, closed)
376380
}
377381

378382
func TestStartVMMOnce(t *testing.T) {

0 commit comments

Comments
 (0)