Timeout exceeded while receiving data from client

2,399 views
Skip to first unread message

Close Screen

unread,
Jul 11, 2017, 5:41:39 AM7/11/17
to ClickHouse
Здравствуйте!

При выполнении INSERT из медленного источника через pipe к clickhouse-client (к localhost):

<источник> | clickhouse-client --receive_timeout=3600 --send_timeout=3600 --connect_timeout=900 --query="INSERT INTO ${insert_table} format TSV" || exit 1

примерно в половине случаев, выпадает ошибка:

Code: 210. DB::NetException: Connection reset by peer while writing to socket (127.0.0.1:9000)

В логе сервера появляются записи:

2017.07.10 16:45:26.034116 [ 13870 ] <Error> executeQuery: Code: 209, e.displayText() = DB::Exception: Timeout exceeded while receiving data from client, e.wha
t() = DB::Exception (from 127.0.0.1:46786) (in query: INSERT INTO rnd600.history_ref_2017_07_06 format TSV), Stack trace:

0. clickhouse-server(StackTrace::
StackTrace()+0x16) [0x28c6df6]
1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0xffc24f]
2. clickhouse-server(DB::TCPHandler::readData(DB::Settings const&)+0x1da) [0x1013bea]
3. clickhouse-server(DB::TCPHandler::processInsertQuery(DB::Settings const&)+0x241) [0x1013e91]
4. clickhouse-server(DB::TCPHandler::runImpl()+0x67a) [0x101466a]
5. clickhouse-server(DB::TCPHandler::run()+0x1c) [0x10152fc]
6. clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x30fdd9f]
7. clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x10b) [0x311b92b]
8. clickhouse-server(Poco::PooledThread::run()+0x87) [0x331c507]
9. clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x96) [0x32de156]
10. /lib/x86_64-linux-gnu/libpthread.so.0(+0x8064) [0x7ff1affa0064]
11. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7ff1af5c862d]

2017.07.10 16:45:46.984571 [ 13870 ] <Error> ServerErrorHandler: Code: 99, e.displayText() = DB::Exception: Unknown packet from client, e.what() = DB::Exceptio
n, Stack trace:

0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x28c6df6]
1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0xffc24f]
2. clickhouse-server(DB::TCPHandler::receivePacket()+0x1f3) [0x1013823]
3. clickhouse-server(DB::TCPHandler::runImpl()+0x531) [0x1014521]
4. clickhouse-server(DB::TCPHandler::run()+0x1c) [0x10152fc]
5. clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x30fdd9f]
6. clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x10b) [0x311b92b]
7. clickhouse-server(Poco::PooledThread::run()+0x87) [0x331c507]
8. clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x96) [0x32de156]
9. /lib/x86_64-linux-gnu/libpthread.so.0(+0x8064) [0x7ff1affa0064]
10. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7ff1af5c862d]

Увеличение таймаутов, как указано в примере, не помогает.

Со стороны источника , это выглядит вот так:


17:52:05  $ <источник> | clickhouse-client --receive_timeout=3600 --send_timeout=3600 --connect_timeout=900 --query="INSERT INTO ${insert_table} format TSV"
 Code: 210. DB::NetException: Connection reset by peer while writing to socket (127.0.0.1:9000)

18:25:29 $ # - все заняло около получаса

# количество вставленных в таблицу записей:
select count() from rnd600.history_ref_2017_07_06
65011712

Всего источник отдает записей:
65967638

Если же предварительно сохранить записи в файл, а потом залить:

zcat test.from.python.2017-07-06_00_1_128.gz | clickhouse-client --receive_timeout=3600 --send_timeout=3600 --connect_timeout=900 --query="INSERT INTO rnd600.history_ref_2017_07_06 format TSV"

- то все проходит успешно.


Что еще можно изменить в настройках? Хочется избежать промежуточного хранения данных в файлах.

Close Screen

unread,
Jul 11, 2017, 8:07:57 AM7/11/17
to ClickHouse
Удалось уменьшить задержки в источнике данных. Проблема в данном случае решена.
Reply all
Reply to author
Forward
0 new messages