<div dir="ltr">Hi,<div><br></div><div>I've encountered a strange problem with os:cmd when running tar and lbzip2. Steps to reproduce:</div><div><br></div><div><pre class="inbox-inbox-code-java" style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;white-space:pre-wrap;word-wrap:normal;color:rgb(51,51,51);font-size:12px;background-color:rgb(245,245,245)"># create some lbzip2 compressed data</pre><pre class="inbox-inbox-code-java" style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;white-space:pre-wrap;word-wrap:normal;color:rgb(51,51,51);font-size:12px;background-color:rgb(245,245,245)">dd <span class="inbox-inbox-code-keyword" style="color:rgb(0,0,145)">if</span>=/dev/urandom of=/tmp/testfile count=10
tar -cf - -C /tmp testfile | lbzip2 -6 -n 4 | dd of=/tmp/tartest status=none</pre><pre class="inbox-inbox-code-java" style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;white-space:pre-wrap;word-wrap:normal;color:rgb(51,51,51);font-size:12px;background-color:rgb(245,245,245)"><br></pre><pre class="inbox-inbox-code-java" style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;white-space:pre-wrap;word-wrap:normal;color:rgb(51,51,51);background-color:rgb(245,245,245)"># try to extract the archive from Erlang with os:cmd</pre><pre class="inbox-inbox-code-java" style="margin-top:0px;margin-bottom:0px;padding:0px;max-height:30em;overflow:auto;word-wrap:normal;background-color:rgb(245,245,245)"><font color="#333333"><span style="white-space:pre-wrap">erl -noinput -eval 'os:cmd("tar -C /tmp/ -xf /tmp/tartest --use-compress-program=lbzip2"), init:stop().'</span></font></pre><br class="inbox-inbox-Apple-interchange-newline">This worked fine with OTP 17.5.6.7, but with OTP 18.3.4.5 the command hangs: lbzip2 just sits in a rt_sigsuspend syscall waiting for a USR2, PIPE or XFSZ signal. And its parent, the tar process waits in a wait4 syscall for lbzip2 to terminate.</div><div><br></div><div>I don't have at the moment any newer OTP version installed, I'm not sure how OTP 19 or 20 would behave.</div><div><br></div><div>I tried to strace the processes, but there's too much noise, I couldn't yet figure out anything interesting there.</div><div><br></div><div>I also tried to diff OTP 17 & 18, but os:cmd/1 and friends didn't change. I'm not sure about the port code, but at least the release notes didn't mention anything major. Or did I miss something? Does anyone have an idea what may have changed between these OTP versions?</div><div><br></div><div>Thanks,</div><div>Daniel</div></div>