-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
nsqd: io.EOF when client-conn is closed #582
Conversation
hmmm, I suppose we could consider thoughts @jehiah |
Well, we do ignore I think that's important because it stops the message flow to allow for a clean close. It's unclear what our expected clean close steps are for producer connections. I'd be happy to begin expecting a CLS msg there as well because it's explicit. |
Circling back to this... Agreed about the general value of |
producer won't send a "SUB" command before "CLS", then the error "cannot CLS in current state" will be emitted, while the consumer it to send the "SUB" command before "CLS", so no errors will be emitted when the consumer send the "CLS" and close the tcp connection. |
Ahh, good point @chaosue |
It's really confusing when nsqd logs errors that are actually not errors at all (if Conn was closed cleanly and all req were processed fine) |
I don't think anyone disagrees with improving this, it's just about being able to deterministically identify expected EOF from unexpected. |
according to the golang docs:
RFR @jehiah |
no errors in my testing:
|
nsqd: io.EOF when client-conn is closed
@mreiferson Thanks. |
NSQd does not distinguish io.EOF.
nsq/nsqd/protocol_v2.go