I'm trying to decide how to handle stream errors correctly, both in the 
client and in the server. My working assumption, in Go, is that io.EOF 
a normal termination and that all other errors are abnormal and permanent, 
but I'd like to check that assumption.

It would be great to know which gRPC errors are permanent and which, if 
any, are transient. The Go Stream 
<https://godoc.org/google.golang.org/grpc#Stream> interface talks about 
streams being "done" or "aborted" (both of which sound like permanent 
states), but without defining these terms further.

The available example code isn't particularly useful as it's not clear 
which parts are normative.

The gRPC documentation has a section on error handling 
<https://grpc.io/docs/guides/error.html>, but this doesn't describe which 
errors are permanent and which are transient. It's not even clear how the 
status codes described map to language-specific error values. For instance, 
which value(s) corresponds to io.EOF (surely a permanent error!) in Go?

Please could someone offer some definitive information?


You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To post to this group, send email to grpc-io@googlegroups.com.
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
For more options, visit https://groups.google.com/d/optout.

Reply via email to