@@ -317,17 +317,16 @@ func (o *Orderer) SendDeliver(ctx reqContext.Context, envelope *fab.SignedEnvelo
317317 broadcastStream , err := ab .NewAtomicBroadcastClient (conn ).Deliver (ctx )
318318 if err != nil {
319319 logger .Errorf ("deliver failed [%s]" , err )
320- o .commManager . ReleaseConn ( conn )
320+ o .releaseConn ( ctx , conn )
321321
322322 errs <- errors .Wrap (err , "deliver failed" )
323323 return responses , errs
324324 }
325325
326326 // Receive blocks from the GRPC stream and put them on the channel
327327 go func () {
328- defer o .commManager .ReleaseConn (conn )
329328 blockStream (broadcastStream , responses , errs )
330-
329+ o . releaseConn ( ctx , conn )
331330 }()
332331
333332 // Send block request envelope
@@ -336,7 +335,7 @@ func (o *Orderer) SendDeliver(ctx reqContext.Context, envelope *fab.SignedEnvelo
336335 Payload : envelope .Payload ,
337336 Signature : envelope .Signature ,
338337 }); err != nil {
339- o .commManager . ReleaseConn ( conn )
338+ o .releaseConn ( ctx , conn )
340339
341340 errs <- errors .Wrap (err , "failed to send block request to orderer" )
342341 return responses , errs
@@ -362,10 +361,8 @@ func blockStream(broadcastStream ab.AtomicBroadcast_DeliverClient, responses cha
362361 close (responses )
363362 return
364363 }
365- if t .Status != common .Status_SUCCESS {
366- errs <- errors .Errorf ("error status from ordering service %s" , t .Status )
367- return
368- }
364+ errs <- errors .Errorf ("error status from ordering service %s" , t .Status )
365+ return
369366
370367 // Response is a requested block
371368 case * ab.DeliverResponse_Block :
@@ -382,10 +379,12 @@ func blockStream(broadcastStream ab.AtomicBroadcast_DeliverClient, responses cha
382379type defCommManager struct {}
383380
384381func (* defCommManager ) DialContext (ctx reqContext.Context , target string , opts ... grpc.DialOption ) (conn * grpc.ClientConn , err error ) {
382+ logger .Debugf ("DialContext [%s]" , target )
385383 opts = append (opts , grpc .WithBlock ())
386384 return grpc .DialContext (ctx , target , opts ... )
387385}
388386
389387func (* defCommManager ) ReleaseConn (conn * grpc.ClientConn ) {
388+ logger .Debugf ("ReleaseConn [%p]" , conn )
390389 conn .Close ()
391390}
0 commit comments