Merge "ref: updating auto-generated documentation"
diff --git a/profiles/internal/ipc/server.go b/profiles/internal/ipc/server.go
index b1a6739..c01d712 100644
--- a/profiles/internal/ipc/server.go
+++ b/profiles/internal/ipc/server.go
@@ -876,7 +876,7 @@
 	case <-done:
 	case <-time.After(5 * time.Minute):
 		vlog.Errorf("Listener Close Error: %v", firstErr)
-		vlog.Errorf("Timedout waiting for goroutines to stop: listeners: %d", nListeners, len(s.listeners))
+		vlog.Errorf("Timedout waiting for goroutines to stop: listeners: %d (currently: %d)", nListeners, len(s.listeners))
 		for ln, _ := range s.listeners {
 			vlog.Errorf("Listener: %p", ln)
 		}
diff --git a/services/identity/server/identityd.go b/services/identity/server/identityd.go
index bcebf21..762ba98 100644
--- a/services/identity/server/identityd.go
+++ b/services/identity/server/identityd.go
@@ -115,12 +115,15 @@
 		}
 		httpaddr = net.JoinHostPort(httphost, strconv.Itoa(httpportNum))
 	}
-	_, _, externalAddr := s.Listen(ctx, listenSpec, host, httpaddr, tlsconfig)
+	ipcServer, _, externalAddr := s.Listen(ctx, listenSpec, host, httpaddr, tlsconfig)
 	fmt.Printf("HTTP_ADDR=%s\n", externalAddr)
 	if len(s.rootedObjectAddrs) > 0 {
 		fmt.Printf("NAME=%s\n", s.rootedObjectAddrs[0].Name())
 	}
 	<-signals.ShutdownOnSignals(ctx)
+	if err := ipcServer.Stop(); err != nil {
+		vlog.Errorf("Failed to stop ipc server: %v", err)
+	}
 }
 
 func (s *IdentityServer) Listen(ctx *context.T, listenSpec *ipc.ListenSpec, host, httpaddr, tlsconfig string) (ipc.Server, []string, string) {