One of our custmers noticed that our server doesn't responsd sometimes if body of the request is 2048, or 4096 ...

it turns out that patch I've submitted 2 years ago to fix bug with select on TCP/IP (IO::Socket::INET) socket and sysread from IO::Socket::SSL.

We did a chunck read with buffer 2048 bytes with exit from the loop if no data or less then 2048 were read from the socket.

Guess what? There was no exit from the loop and read beame blocking again if the data size is 2048 or 2048X bytes.

Luckily there is a sources and example of how to reproduce the bug

dd if=/dev/zero of=2048.zero bs=4096 count=1
curl -v -k -H 'Content-type: text/xml' --data-binary @2048.zero https://localhost:4443
after 20 minutes of looking into the code, 2 hours of polishing the patch and 3 hours of writing bug example

we can tell, that there is less bugs in CPAN 8-)
and the patch is short and simple