In the past, "ksv" didn't start properly and hanged sometimes, making it
necessary to restart the app a few times to get things working. Now this
didn't help anymore and the reason was too many debugging output
generated by "ksc" because of some forgotten "println"-statements. The
official docs suggest that on too many data especially on STDERR things
deadlock unless pipes are read in parallel and that capture3 should be
used instead.
As the former implementation simply blocked as well, there shouldn't be
any downside to switching to capture3. This solved the hanging app for
me and printed a JSON parse error, which made me recognize the forgotten
"println".
In the past, "ksv" didn't start properly and hanged sometimes, making it necessary to restart the app a few times to get things working. Now this didn't help anymore and the reason was too many debugging output generated by "ksc" because of some forgotten "println"-statements. The official docs suggest that on too many data especially on STDERR things deadlock unless pipes are read in parallel and that capture3 should be used instead.
As the former implementation simply blocked as well, there shouldn't be any downside to switching to capture3. This solved the hanging app for me and printed a JSON parse error, which made me recognize the forgotten "println".
https://www.rubydoc.info/stdlib/open3/Open3#popen3-class_method