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
Convert an ink_release_assert into logic to reset the rbio to use the… #2147
Conversation
iocore/net/SSLNetVConnection.cc
Outdated
| SSL_set0_rbio(this->ssl, rbio); | ||
| free_handshake_buffers(); | ||
| } else if (handShakeReader->is_read_avail_more_than(0)) { | ||
| this->handShakeReader->consume(this->handShakeBioStored); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this block same logic in other 2 places (line 447 and line 1078) in this class?
If so, it'd be great if we can avoid copy & past.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed.
|
Thought on this some more this morning. Perhaps all we should do is replace the ink_release_assert with a ink_assert and fail the connection in this case. I think if the assert is triggered, the client is behaving badly. Of course we can try to stumble on (this code addition). Perhaps that is ok too. But at a minimum the ink_release_assert should be removed/replaced. |
… remaining data. Tidy up the fix and reduce cut-n-paste.
6ae52c2
to
79e057f
Compare
|
Pushed an updated PR that gathers up some of the cut-n-paste rbio code. I'm testing this on one of our systems. |
|
[approve ci autest] |
|
Testing on Docs / CI right now, once we land this on master (once reviewed), I can test on prod. |
|
It has been successfully running on my box today. Of course that box was not seeing the release_assert before. |
| } else { | ||
| Debug("ssl", "Want read from socket"); | ||
| read.triggered = 0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This forces a blind tunnel to wait for the socket to be come read ready?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is correct. When the epoll shows data ready to read it will set the trigger.
|
Nice cleanup of all that cut and paste stuff. |
… remaining data.