-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
pasta: IPv4 large transfer loopback: socat waitpid no child process #23482
Comments
The test actually succeeds, but we include socat's stderr in the output string. That waitpid() doing nothing appears harmless to me, so I wonder if we should just drop socat's stderr here. Redirecting socat's stderr to /dev/null is not great, though, because if there's an actual error we would have a hard time finding it. I wonder if we should use another variable other than run_podman()'s $output, or tweak run_podman() to avoid merging stderr and stdout (my understanding of it is that it does that, at the moment). |
the merging of But in general the question is why do we get this warning in the first place? Is this a bug in socat? |
I didn't reproduce this, so it's all a bit tentative, but I think xioshutdown() (other waitpid() warnings are printed differently) is called "too late", once the receiving child process (in the container) already terminated. Which is fine, as xioshutdown() just needs to ensure that the child process terminates... but yes, it prints a warning. Perhaps we could fix this in socat by omitting that warning if the error is ECHILD, say:
but I would need to find out how to reproduce this, before being confident enough that the patch is correct. |
right but in order to fail with ECHILD it means socat must have called waitpid more often than it has child processes which sounds like the real bug to me. OF course hiding the warning on ECHILD is simple. As far as reproducing goes check out PR #23275 and run I see #23471 (maybe directly related?) on basically every run locally on my 12 thread laptop. I think I might have seen this issue as well but not in the few runs I tried today so this one might be a bit more difficult to trigger. And @edsantiago I am also seeing a ton of |
Tried this (on commit So, I don't really enough information to guess what's going wrong here. @Luap99 any chance you could try to get an |
Still happening with pasta 08-21 |
Yeah I don't think this has anything to do with the podman or pasta version. To me this sounds like a bug in socat where it tries to reap the child process twice. Looking at the socat code there is both a signal handler for SIGCHLD that reaps childs and then the waitpid call on shutdown for the exec pid which reaps again. Thus I would assume if the handler runs before the waipid call on shutdown we see this warning. So I agree with @sbrivio-rh patch above as this is harmless and we likely should just work around that for now in the tests. |
Workaround (NOT A FIX) for pasta issue containers#23482, wherein podman logs includes a waitpid: ESRCH warning. Consensus seems to be that this is a bug in socat. Signed-off-by: Ed Santiago <[email protected]>
Only in my parallel-systest PR
The text was updated successfully, but these errors were encountered: