ClickHouse® is a real-time analytics DBMS
Go to file
Val Doroshchuk 3cea474ccf MaterializedMySQL: Fix the infinite loop in ReadBuffer::read
This fixes https://github.com/ClickHouse/ClickHouse/issues/33549

The infinite loop caused because sometimes the pos of ReadBuffer overflows the end.

It happens f.e. when `MySQLPacketPayloadReadBuffer::nextImpl` might return empty buffer,
because `in.nextIfAtEnd();` could not read more bytes and thus no bytes available (pos == end).
It might happen when a network error or the connection to MySQL was closed or killed.
This leads to empty `working_buffer` but successful returning from the func.
And check `if (in.eof())` from `MySQLBinlogEventReadBuffer::nextImpl()` fails and also causes empty its `working_buffer` and successul return.

At the end `payload.ignore(1)` and `payload.read(c)` produces the infinite loop since it is not eof() and ++pos overflows the end of the buffer.

Should be tested by `test_mysql_kill*` from test.py
2023-08-04 11:34:31 +02:00
.github Remove obsolete part of a check name 2023-07-31 05:23:28 +02:00
base Merge pull request #52656 from Avogar/rename-setting-for-url-encoding 2023-08-01 16:09:01 +03:00
benchmark
cmake
contrib Merge branch 'master' into feature/hashing-big-endian-support 2023-08-01 13:09:43 -04:00
docker Update version_date.tsv and changelogs after v23.7.2.25-stable 2023-08-03 09:55:00 +00:00
docs Merge pull request #52687 from alkorgun/fix-named-collections-on-cluster-23.7 2023-08-03 14:50:28 +02:00
packages Merge branch 'master' into keeper-client-package 2023-08-02 11:30:41 +02:00
programs Merge pull request #52956 from ClickHouse/fixes_for_databases 2023-08-03 19:13:41 +03:00
rust
src MaterializedMySQL: Fix the infinite loop in ReadBuffer::read 2023-08-04 11:34:31 +02:00
tests Merge branch 'master' into utf-dml-test 2023-08-04 11:26:43 +02:00
utils Merge pull request #52687 from alkorgun/fix-named-collections-on-cluster-23.7 2023-08-03 14:50:28 +02:00
.clang-format
.clang-tidy
.clangd
.editorconfig
.exrc
.git-blame-ignore-revs
.gitattributes
.gitignore
.gitmodules
.pylintrc
.snyk
.yamllint
AUTHORS
CHANGELOG.md Move "reconfig" to experimental in the changelog 2023-07-31 11:43:04 +03:00
CMakeLists.txt
CODE_OF_CONDUCT.md
CONTRIBUTING.md
format_sources
LICENSE
PreLoad.cmake
README.md
SECURITY.md

ClickHouse — open source distributed column-oriented DBMS

ClickHouse® is an open-source column-oriented database management system that allows generating analytical data reports in real-time.

How To Install (Linux, macOS, FreeBSD)

curl https://clickhouse.com/ | sh

Upcoming Events

Also, keep an eye out for upcoming meetups around the world. Somewhere else you want us to be? Please feel free to reach out to tyler clickhouse com.

Recent Recordings

  • Recent Meetup Videos: Meetup Playlist Whenever possible recordings of the ClickHouse Community Meetups are edited and presented as individual talks. Current featuring "Modern SQL in 2023", "Fast, Concurrent, and Consistent Asynchronous INSERTS in ClickHouse", and "Full-Text Indices: Design and Experiments"
  • Recording available: v23.6 Release Webinar All the features of 23.6, one convenient video! Watch it now!
  • All release webinar recordings: YouTube playlist

Interested in joining ClickHouse and making it your full-time job?

We are a globally diverse and distributed team, united behind a common goal of creating industry-leading, real-time analytics. Here, you will have an opportunity to solve some of the most cutting-edge technical challenges and have direct ownership of your work and vision. If you are a contributor by nature, a thinker and a doer - well definitely click!

Check out our current openings here: https://clickhouse.com/company/careers

Cant find what you are looking for, but want to let us know you are interested in joining ClickHouse? Email careers@clickhouse.com!