I'm using tcp input to accept logs in json from other services. There is a bug, if you leave parameter -b default, and try send to socket 40-50k json logs w/o any timeouts, you will get a few invalid jsons and json parse error in logstash. Looks like tcp input don't finish with reading whole line till \n and concatenate it with the next one line till the next one \n
Looks like you have also raised it here - https://github.com/logstash-plugins/logstash-input-tcp/issues/51