@@ -153,6 +153,11 @@ func (s *service) StartShim(ctx context.Context, id, containerdBinary, container
153153 _ = shim .RemoveSocket (address )
154154 }
155155 }()
156+ // make sure that reexec shim-v2 binary use the value if need
157+ if err := shim .WriteAddress ("address" , address ); err != nil {
158+ return "" , err
159+ }
160+
156161 f , err := socket .File ()
157162 if err != nil {
158163 return "" , err
@@ -174,9 +179,6 @@ func (s *service) StartShim(ctx context.Context, id, containerdBinary, container
174179 if err := shim .WritePidFile ("shim.pid" , cmd .Process .Pid ); err != nil {
175180 return "" , err
176181 }
177- if err := shim .WriteAddress ("address" , address ); err != nil {
178- return "" , err
179- }
180182 if data , err := ioutil .ReadAll (os .Stdin ); err == nil {
181183 if len (data ) > 0 {
182184 var any ptypes.Any
@@ -209,6 +211,12 @@ func (s *service) StartShim(ctx context.Context, id, containerdBinary, container
209211}
210212
211213func (s * service ) Cleanup (ctx context.Context ) (* taskAPI.DeleteResponse , error ) {
214+ if address , err := shim .ReadAddress ("address" ); err == nil {
215+ if err = shim .RemoveSocket (address ); err != nil {
216+ return nil , err
217+ }
218+ }
219+
212220 path , err := os .Getwd ()
213221 if err != nil {
214222 return nil , err
@@ -562,11 +570,10 @@ func (s *service) Connect(ctx context.Context, r *taskAPI.ConnectRequest) (*task
562570}
563571
564572func (s * service ) Shutdown (ctx context.Context , r * taskAPI.ShutdownRequest ) (* ptypes.Empty , error ) {
573+ // please make sure that temporary resource has been cleanup
574+ // before shutdown service.
565575 s .cancel ()
566576 close (s .events )
567- if address , err := shim .ReadAddress ("address" ); err == nil {
568- _ = shim .RemoveSocket (address )
569- }
570577 return empty , nil
571578}
572579
0 commit comments