QuestDB: LineTcpConnectionContext [151] buffer overflow

72 views Asked by At

I'm experiencing a problem with QuestDB ingestion via the Influx Line Protocol.

The setting is the following: from time to time I create a JSON value (for one column in a table) that has two lists of about 400 floats. I'm using a Sender to flush each such value to QuestDB, but the client is getting the following error: questdb.ingress.IngressError: Could not flush buffer: Broken pipe (os error 32)

The server log shows the following output:

2023-10-17T13:07:33.505800Z D tcp-line-server epoll [n=1]
2023-10-17T13:07:33.505882Z I tcp-line-server connected [ip=192.168.65.2, fd=151]
2023-10-17T13:07:33.505936Z D tcp-line-server pending [row=0, fd=151]
2023-10-17T13:07:33.897433Z D tcp-line-server epoll [n=1]
2023-10-17T13:07:33.897470Z D tcp-line-server fired [fd=151, op=1, pos=3]
2023-10-17T13:07:33.898413Z E i.q.c.l.t.LineTcpConnectionContext [151] buffer overflow [line.tcp.msg.buffer.size=32768]
2023-10-17T13:07:33.898438Z I tcp-line-server scheduling disconnect [fd=151, reason=0]
2023-10-17T13:07:33.898460Z I tcp-line-server disconnected [ip=192.168.65.2, fd=151, src=queue]
1

There are 1 answers

0
Jaromir Hamala On

This is likely due to a single message being so long it does not fit into a server protocol buffer. The error message contains a hint: line.tcp.msg.buffer.size=32768 - this is the buffer size in bytes.

You can increase this value in server.conf. Open server.conf and set the following key option: line.tcp.msg.buffer.size=65536 if that does not help try to double it further.