-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Revert container states #470
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
Conversation
|
The tests now pass on Docker |
|
LGTM |
|
I am okay with this but thinking whether triaging/fixing the issue is a better option. @crosbymichael WDYT? |
|
I'm never fan of reverting big patch sets, since we still have more than two weeks bugfix window before 1.10, can we try to address the failed case and fix it? |
|
@hqhq I'll do my best (some help from @crosbymichael would be nice, since he wrote it), but I'm a bit worried about the fact that we can't seem to reproduce this on the CLI (and the test failures are quite ... weird in nature). Can we at least agree that if we don't solve this soon, we apply this quite a ways before 1.10 (quite a few PRs are waiting for the tests to be fixed -- including security fixes, the PIDs cgroup stuff, some userns stuff, and other things that are all tagged for the milestone). |
Sure. |
|
Let me look into the failures and see if we can fix the issues instead of reverting the changes. |
|
@crosbymichael @cyphar I've just vendored latest runC master into Docker and I only get one test failing @cyphar is this the same error you were getting?. Because in your original PR I think I saw several errors. |
|
@marcosnils No, that error is because your kernel doesn't support OOMDisable. It also looks like it doesn't support swap limiting as well. The errors we're talking about can be reproduced with the Jenkins CI (which supports all of the latest Docker-related kernel features other than the PIDs cgroup AFAIK). There are several test errors (which are consistent on Jenkins) that are fixed with this PR. If you want to see what the errors look like, here's the console output: https://jenkins.dockerproject.org/job/Docker-PRs/22345/console. The |
|
@cyphar I didn't get any errors when running the tests with the latest runC version. In fact, they all passed except for the OOM which seems to be a missing kernel feature as you mentioned. Here's my output: |
|
@marcosnils Are you sure? I'm fairly sure that this test simply must unambiguously fail (the code just doesn't exist in runc for it to work). In any case, what we're testing is whether the test suite running on the "official" Janky servers. I can't reproduce the errors on my local machine either (but @LK4D4 can reproduce them on his machine), so I can't comment why you're not seeing the errors. The fact that this test is skipped might have something to do with why you don't see one of the errors: |
|
@cyphar thanks. I'm aware that tests need to pass on janky, just wanted to remark that some env stuff is going on here as tests do not fail consistently. 😄. FWIW I ran them in a clean/stock ubuntu 14.04 env. |
|
I'm going to try to re-run the tests on my local machine with |
|
@cyphar i can repo locally and will be working on this today |
|
@crosbymichael How's this going? Do you think #476 fixed this for Docker? |
|
@jimmidyson The bug we're investigating is related to state transition stuff. The resource pointer stuff was related to backwards compatibility with old configurations. |
|
@cyphar OK was just a bit confused by the comment in moby/moby#19469 (comment) - sorry! |
|
Ah, right. It took me a bit to figure out that that PR vendors a branch of EDIT: It's now been merged. Brilliant. /s |
|
@cyphar No need to be rude just because things don't work the way you think they should. |
|
@crosbymichael Sorry, I was in a bad mood at the time. Mainly, I don't like the fact that it'll make bisecting Docker to figure out what patches to backport much more annoying than it currently is. However, I also think it's incredibly rude to not even acknowledge grievances (that are IMO valid) about a patch from a member of the community that's been working on Docker for quite a while. I understand that Docker doesn't care about backporting fixes to older versions, so I understand why that was a valid compromise for you. But can you see the other side of the argument? Someone in a few months is going to be bisecting Docker and will hit a 50-patch window where |
|
@cyphar no problem we will get it fixed. I almost of the state stuff done but am willing to revert it but we should do your fix and the state stuff in two prs. right now there are other things broken in master, for the exec tests we are getting a file not found now. We vendored a commit on a branch because it's not wise to vendor master right now while docker is in a code freeze so we are just cherry picking in bug fixes that are needed at the moment until we can get things working again. So even if we merged this, it is still a risky move to vendor all of libcontainer at the moment. |
|
@cyphar can you split this PR up into two? |
|
@crosbymichael Sure. I'll move the memcg fixes to another PR (#495). |
This reverts commit fa24ebf, reversing changes made to 5a398b5. The Docker test suite fails if this set of commits are in runC, so reverse them as a temporary measure until the underlying issue is solved. It appears as though processes are not being killed properly. Cc: Michael Crosby <[email protected]> Signed-off-by: Aleksa Sarai <[email protected]>
These are optional on multiple platforms and should be left up to the runtime/host system for validation. Closes opencontainers#470 Signed-off-by: Michael Crosby <[email protected]>
There are two sets of tests failing in Docker with the current state of
runc. This PR solves the container states part by reverting it:docker psto fail. This was caused by @crosbymichael's commitfa24ebf26c0a0c26880bd8375b81df8f91a0bbb4.The other issue is fixed by #495:
docker updatetests to fail. This was caused by my commitf36ed4b174bb7e8951db6b61e2202a45a7251e30.We should merge both in order to vendor
libcontainerintodocker.