[erlang-questions] os:cmd hang on OTP 18
Wed Jul 26 21:27:48 CEST 2017
I've encountered a strange problem with os:cmd when running tar and lbzip2.
Steps to reproduce:
# create some lbzip2 compressed data
dd if=/dev/urandom of=/tmp/testfile count=10
tar -cf - -C /tmp testfile | lbzip2 -6 -n 4 | dd of=/tmp/tartest status=none
# try to extract the archive from Erlang with os:cmd
erl -noinput -eval 'os:cmd("tar -C /tmp/ -xf /tmp/tartest
This worked fine with OTP 220.127.116.11, but with OTP 18.104.22.168 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.
I don't have at the moment any newer OTP version installed, I'm not sure
how OTP 19 or 20 would behave.
I tried to strace the processes, but there's too much noise, I couldn't yet
figure out anything interesting there.
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?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions