Merge pull request #4100 from lifubang/publisher

fix dial error when clean up a dead shim
This commit is contained in:
Maksym Pavlenko
2020-03-14 15:19:48 -07:00
committed by GitHub
3 changed files with 44 additions and 18 deletions

View File

@@ -128,9 +128,12 @@ func (l *RemoteEventsPublisher) Publish(ctx context.Context, topic string, event
}
func (l *RemoteEventsPublisher) forwardRequest(ctx context.Context, req *v1.ForwardRequest) error {
_, err := l.client.EventsService().Forward(ctx, req)
service, err := l.client.EventsService()
if err == nil {
return nil
_, err = service.Forward(ctx, req)
if err == nil {
return nil
}
}
if err != ttrpc.ErrClosed {
@@ -138,11 +141,15 @@ func (l *RemoteEventsPublisher) forwardRequest(ctx context.Context, req *v1.Forw
}
// Reconnect and retry request
if err := l.client.Reconnect(); err != nil {
if err = l.client.Reconnect(); err != nil {
return err
}
if _, err := l.client.EventsService().Forward(ctx, req); err != nil {
service, err = l.client.EventsService()
if err != nil {
return err
}
if _, err = service.Forward(ctx, req); err != nil {
return err
}