-
-
Notifications
You must be signed in to change notification settings - Fork 54
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
Fix decoding multiple frames in a single envelope in native protocol v5 #368
Conversation
We will have a look. |
I may have found something: CASSANDRA_NATIVE_PROTOCOL=v3 mix test --only test:"test concurrent requests on a single connection" and CASSANDRA_NATIVE_PROTOCOL=v4 mix test --only test:"test concurrent requests on a single connection" do not produce a failure, only CASSANDRA_NATIVE_PROTOCOL=v5 mix test --only test:"test concurrent requests on a single connection" does. Tested with up to |
Wooooah fantastic find!!!! |
I started looking at the |
b4d05de
to
70a6f52
Compare
I've created https://issues.apache.org/jira/browse/CASSANDRA-19753 to see if this might be a C* issue. |
With the help of Sam in the JIRA issue, we figured out that the issue was that I screwed up decoding multiple frames in a single envelope in native protocol v5 🤦 My bad. I pushed fixes into this PR. |
@jvf @harunzengin this PR can be a collaborative attempt at figuring out what the flying horse crab hell is going on with #356.
At the time of opening it, the PR only adds a test to reproduce the timeouts (which does reproduce them ~90% of the time in my experience) and some additional logging.
Most of the time, Xandra does not receive the frame that times out. This is weird. I’m running this with a locally-running Dockerized Cassandra in case it helps.
Btw, I’m opening this because I won't have a ton of time to dedicate to this as I’m pretty busy at work, but I figured we can dig in together, especially after @jvf's fantastic reproducing steps and tests in #356 🙃