**Describe the bug**

CH throws an `Attempt to read after eof` exception when `carbon-clickhouse` with enabled gzip compression (`compress-data true` in `carbon-clickhouse` config) tries to insert 5000+ metrics.

**Does it reproduce on recent release?**

Reproduces on 21.6.6.51 (stable) and v21.3.14.1 (LTS).

**How to reproduce**

***Prerequisites***
1. `carbon-clickhouse` - `clickhouse` [default scheme](https://github.com/lomik/carbon-clickhouse) inside docker
2. `compress-data` enabled in `carbon-clickhouse` config

***How it works***

When sending metrics manually by curl, it goes ok.

[metrics_rowbinary.txt](https://github.com/ClickHouse/ClickHouse/files/6793464/metrics_rowbinary.txt)

```
cat /tmp/metrics_rowbinary.txt | gzip -c | curl 'http://localhost:8123/?query=INSERT%20INTO%20graphite%20(Path,%20Value,%20Time,%20Date,%20Timestamp)%20FORMAT%20RowBinary' --data-binary @- -H 'Content-Encoding: gzip'
```

***How it doesn't work***

When sending metrics to `carbon-clickhouse` plaintext port, CH throws an exception.

[metrics.txt](https://github.com/ClickHouse/ClickHouse/files/6793465/metrics.txt)

```
cat /tmp/metrics.txt | nc -q0 localhost 2003
```

When `compress-data` is disabled in `carbon-clickhouse`, it goes with no exception too.

**Error message and/or stacktrace**

<details>
 <summary>Stacktrace</summary>
<pre>
clickhouse_1           | 2021.07.09 18:56:18.756162 [ 100 ] {9d25478d-a23f-44aa-90a6-13bf6984413e} <Error> DynamicQueryHandler: Code: 32, e.displayText() = DB::Exception: Attempt to read after eof, Stack trace (when copying this message, always include the lines below):
clickhouse_1           | 
clickhouse_1           | 0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0x8b770fa in /usr/bin/clickhouse
clickhouse_1           | 1. DB::throwReadAfterEOF() @ 0x8b88a1f in /usr/bin/clickhouse
clickhouse_1           | 2. ? @ 0x8bb26ab in /usr/bin/clickhouse
clickhouse_1           | 3. DB::SerializationString::deserializeBinary(DB::IColumn&, DB::ReadBuffer&) const @ 0xf43c5df in /usr/bin/clickhouse
clickhouse_1           | 4. DB::BinaryRowInputFormat::readRow(std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&, DB::RowReadExtension&) @ 0x105273cd in /usr/bin/clickhouse
clickhouse_1           | 5. DB::IRowInputFormat::generate() @ 0x1051ccc8 in /usr/bin/clickhouse
clickhouse_1           | 6. DB::ISource::tryGenerate() @ 0x104a97d5 in /usr/bin/clickhouse
clickhouse_1           | 7. DB::ISource::work() @ 0x104a93ba in /usr/bin/clickhouse
clickhouse_1           | 8. DB::InputStreamFromInputFormat::readImpl() @ 0xdb0883f in /usr/bin/clickhouse
clickhouse_1           | 9. DB::IBlockInputStream::read() @ 0xf348eb2 in /usr/bin/clickhouse
clickhouse_1           | 10. DB::InputStreamFromASTInsertQuery::readImpl() @ 0xf8ff690 in /usr/bin/clickhouse
clickhouse_1           | 11. DB::IBlockInputStream::read() @ 0xf348eb2 in /usr/bin/clickhouse
clickhouse_1           | 12. DB::copyData(DB::IBlockInputStream&, DB::IBlockOutputStream&, std::__1::atomic<bool>*) @ 0xf36c66f in /usr/bin/clickhouse
clickhouse_1           | 13. DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, std::__1::shared_ptr<DB::Context>, std::__1::function<void (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>) @ 0xfc48461 in /usr/bin/clickhouse
clickhouse_1           | 14. DB::HTTPHandler::processQuery(std::__1::shared_ptr<DB::Context>, DB::HTTPServerRequest&, DB::HTMLForm&, DB::HTTPServerResponse&, DB::HTTPHandler::Output&, std::__1::optional<DB::CurrentThread::QueryScope>&) @ 0x103fd93f in /usr/bin/clickhouse
clickhouse_1           | 15. DB::HTTPHandler::handleRequest(DB::HTTPServerRequest&, DB::HTTPServerResponse&) @ 0x104010c9 in /usr/bin/clickhouse
clickhouse_1           | 16. DB::HTTPServerConnection::run() @ 0x10484f50 in /usr/bin/clickhouse
clickhouse_1           | 17. Poco::Net::TCPServerConnection::start() @ 0x12a7a50f in /usr/bin/clickhouse
clickhouse_1           | 18. Poco::Net::TCPServerDispatcher::run() @ 0x12a7bf9a in /usr/bin/clickhouse
clickhouse_1           | 19. Poco::PooledThread::run() @ 0x12bb52f9 in /usr/bin/clickhouse
clickhouse_1           | 20. Poco::ThreadImpl::runnableEntry(void*) @ 0x12bb12ea in /usr/bin/clickhouse
clickhouse_1           | 21. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
clickhouse_1           | 22. clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so
</pre>
</details>

[PCAP](https://github.com/ClickHouse/ClickHouse/files/6793478/clickhouse.zip)

#include <IO/ZlibInflatingReadBuffer.h>
namespace DB
{
namespace ErrorCodes
{
    extern const int ZLIB_INFLATE_FAILED;
}
ZlibInflatingReadBuffer::ZlibInflatingReadBuffer(