-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Perl CPAN Support, Frozen cpanm Command, Broken I/O Handling In execmd() #1522
Comments
I'm not seeing this other issue (CentOS 7). I've pushed again to https://github.com/liger1978/fpm/tree/1519 which adds the extra required |
@liger1978
|
What OS are you using? I'll spin up a Docker container running the same as you. |
|
@wbraswell Thanks William. I see you're on CentOS 7 as well. The only difference is that my container is CentOS 7.5. I'm just trying to build your package at the moment. It's a big one, so it is taking some time! :) |
The place where it freezes due to this issue 1522 is confusing and mysterious: |
@jordansissel I give up with this. What @wbraswell says is correct. |
@liger1978 |
As with #1519, this issue is solved by PR #1955 by @NicholasBHubbard, great job everyone! :-) |
@liger1978
Discussion of this issue started here: #1519
Specifically, these two comments:
#1519 (comment)
#1519 (comment)
Essentially, this issue causes 2 different negative situations.
First, we can not see any of the output of the
cpanm
commands, including the critically important configure & build processes such asMakefile.PL
andBuild.PL
andmake
andgcc
andas
etc etc. If I don't know what is happening withcpanm
then I really have no idea what is happening at all.Second, we experience an actual freeze/hang during one of the
gcc
and/oras
commands, as shown in the comments linked above.I have tracked this problem to one line:
https://github.com/wbraswell/fpm/blob/master/lib/fpm/util.rb#L165
If I simply replace this line with
if false
then both parts of this issue appear to be solved! I can now see all the output generated in real time, and the mysterious hanging gcc/as processes no longer hang! Unfortunately, by doing so I also re-introduce the previous bug 1519, because we need an empty STDIN to be present for any possible interactive processes:#1519
So, in order to achieve a hybrid solution I actually have to disable all the STDOUT and STDERR parts, while leaving the STDIN parts in tact. I have done this in my latest commit:
wbraswell@3171ee9
Since I am not familiar with the
execmd()
subroutine and how Ruby handles all the I/O magic, I will not presume that my temporary solution is correct enough to create a pull request. In fact, I assume this would be a not-entirely-correct solution, and that we need to somehow figure out why the hanging is actually happening in order to create a permanent solution.The text was updated successfully, but these errors were encountered: