tests: size of linux pipes is limited
We use pipes in TimeoutAqlTest
: The child spawns an aql interpreter which runs and the parent monitors it for timeouts. The childs stdout is redirected into a pipe with the second end of the pipe being managed (read) by parent.
The parents waits in select(2)
and does not read until child terminates. If the child wrote more than pipe buffer length bytes then the pipe might get full and a write call could block (and the child could timeout) until we read something out of the pipe.
See https://man7.org/linux/man-pages/man2/fcntl.2.html, section Changing the capacity of a pipe
.
So we need to come up with a way how to continuously read from the pipe while waiting in select because of the timeout monitoring. Perhaps another thread which reads the data?