Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

grpc error "transport is closing" #1988

Open
Renset opened this issue Dec 22, 2022 · 5 comments
Open

grpc error "transport is closing" #1988

Renset opened this issue Dec 22, 2022 · 5 comments

Comments

@Renset
Copy link

Renset commented Dec 22, 2022

Describe the bug
After migrating from micro v1 to microv3, even under a small load, some grpc connections break with error:
file=grpc/grpc.go:237 level=error grpc handler got error: rpc error: code = Unknown desc = connection error: desc = "transport is closing"
After that, an affected request is held until the timeout is reached.

No additional information can be found in the logs.
The same microservices with micro v1 worked well without such messages in the output.

To Reproduce
Steps to reproduce the behavior:

  1. Run the micro server without any additional params
  2. Run ~10 microservices (micro clients). Adding more clients doesn't affect the result.
  3. Generate 10-20 requests per second

Environment:
Same results in Ubuntu and Windows Server

Are there any ideas about what could happen? Or maybe I can add some flags to micro to debug this deeper?

@iamnp
Copy link

iamnp commented Dec 22, 2022

I have the same error

@asim
Copy link
Member

asim commented Dec 22, 2022

The transport in v1 was a custom protocol. v3 uses grpc. I don't have more details on the reported error. It requires investigation. This is likely somewhere in the client. Starting point might be to look at the logs of your service and see if there's errors there, secondly in the logs for the network service.

@Renset
Copy link
Author

Renset commented Dec 22, 2022

Thanks for your suggestions @asim .
Unfortunately, there are no additional logs on the client side.
However, I've investigated the TCP dump in WireShark and found out that just before transport is closing error message, the micro proxy closes the connection (sends packet with FIN flag) and opens a new one. Are there some actions I could perform for further investigation on the server side?

CleanShot 2022-12-22 at 22 40 35@2x
)

@asim
Copy link
Member

asim commented Dec 22, 2022

How are you querying these services? Via cli? Via a custom client?

@Renset
Copy link
Author

Renset commented Dec 23, 2022

Custom clients.

BTW I found the workaround solution: when starting proxy with MUCP protocol it works well:

micro service proxy --protocol mucp

Thus, looks like this issue can be closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants