diff --git a/agent.go b/agent.go index 336e55618..e428b7439 100644 --- a/agent.go +++ b/agent.go @@ -710,11 +710,6 @@ func (s *sandbox) listenToUdevEvents() { continue } - // We only care about add event - if uEv.Action != "add" { - continue - } - span, _ := trace(rootContext, "udev", "udev event") span.setTag("udev-action", uEv.Action) span.setTag("udev-name", uEv.DevName) @@ -730,6 +725,18 @@ func (s *sandbox) listenToUdevEvents() { "uevent-devname": uEv.DevName, }) + if uEv.Action == "remove" { + fieldLogger.Infof("Remove dev from pciDeviceMap") + s.Lock() + delete(s.pciDeviceMap, uEv.DevPath) + s.Unlock() + goto FINISH_SPAN + } + + if uEv.Action != "add" { + goto FINISH_SPAN + } + fieldLogger.Infof("Received add uevent") // Check if device hotplug event results in a device node being created. @@ -782,7 +789,7 @@ func (s *sandbox) listenToUdevEvents() { fieldLogger.WithError(err).Error("failed online device") } } - + FINISH_SPAN: span.finish() } }