If I understand it correctly, this issue is not multilang protocol related. `ShellSpout` is a normal Storm spout, so the method `fail`, `nextTuple`, `ack` may be invoked by storm-core concurrently, so it seems that we need to synchronize the call to method `querySubprocess`? how do you think @nathanmarz ?