Merge "services/mgmt/device/impl: wait for suidhelper to exit"
diff --git a/services/mgmt/device/impl/app_service.go b/services/mgmt/device/impl/app_service.go
index dc19723..e399c93 100644
--- a/services/mgmt/device/impl/app_service.go
+++ b/services/mgmt/device/impl/app_service.go
@@ -884,7 +884,12 @@
agentCleaner()
}
- // Wait for the child process to start.
+ // Wait for the suidhelper to exit.
+ if err := handle.Wait(0); err != nil {
+ return 0, verror.New(ErrOperationFailed, ctx, fmt.Sprintf("Wait() on suidhelper failed: %v", err))
+ }
+
+ // Wait for the process invoked by suidhelper to become ready.
if err := handle.WaitForReady(childReadyTimeout); err != nil {
return 0, verror.New(ErrOperationFailed, ctx, fmt.Sprintf("WaitForReady(%v) failed: %v", childReadyTimeout, err))
}