AlexPikalov / cdrs

Cassandra DB native client written in Rust language. Find 1.x versions on https://github.com/AlexPikalov/cdrs/tree/v.1.x Looking for an async version? - Check WIP https://github.com/AlexPikalov/cdrs-async
Apache License 2.0
342 stars 58 forks source link

Fix query execution lock-up for large frames. #359

Closed a1ph closed 3 years ago

a1ph commented 3 years ago

The send_frame function did use write method to send out frame data. The method actually writes just a portion of the data provided (usually first 16K). The rest was not written and got lost. That caused Cassandra node peer send no reply waiting for more frame data, which in turn led to send_frame hanging infinitely.

The write_all method has to be used instead.

fggarcia commented 3 years ago

Hi @a1ph i believe that repo doesn't have manteiner. Do you want to send PR to https://github.com/krojew/cdrs-tokio if apply?

a1ph commented 3 years ago

Hi @a1ph i believe that repo doesn't have manteiner. Do you want to send PR to https://github.com/krojew/cdrs-tokio if apply?

@fggarcia That is on my list. I still hope @AlexPikalov may build a bug fix release with this one. It's a pretty weird bug.

AlexPikalov commented 3 years ago

@a1ph Thank you for the PR