-
Notifications
You must be signed in to change notification settings - Fork 59
networkstatic/iperf3 containers fails to run with cors #152
Comments
This is looking like a 9p bug. I created a test program (attached) that makes the following calls (similar to what
A workaround is to run the following in the container before starting the app:
|
Problem is similar to #47. |
just an update. Yes, I believe the problem is similar to #47, but different as #47 did unlink-fstat, and this one is doing unlink-ftruncate . Same fundamental issue likely (that at some point in the code path the lookup is done by the pathname and not the fd/handle and thus fails to find the unlinked file), but through a slightly different code path. |
@anthonyzxu do you have any comments on this issue? |
For the record. After chasing this down for rkt/rkt#3475, there was a patch set in test that would fix this: but a race condition still exists, and those patches are still in flight and not upstreamed yet. |
As this is well understood, and I believe we should be able to use a |
@grahamwhaley - I concur. The problem is that the As such, we'll have to document this limitation carefully. In fact, I almost wonder if we should generate some sort of warning message if these problematic 9p calls (via a patch). That way, we could audit the scope of the problem in say the top 100 images (#226). As and when a full solution is available, we can drop the 9p audit patch. |
For completeness, here's some sample
|
@jcvenegas are any updates about this? |
@GabyCT not so far, I did not take a look, I think the last update is @grahamwhaley research. |
Right, I peeked at this issue last week and thought we should be able to 'fix' it by taking the latest kernel and QEMU patchsets for the 9pfs unlink fixes. @GabyCT , if you want to develop the tests then I think you could use the ramfs tmp mount 'trick' listed early in the ticket. I'll at least open an Issue to note we need to check and probably update the 9pfs code. |
This sounds like a gnarly one to fix. But how about we downgrade to P2 given that there is a workaround of sorts? |
I could agree to downgrade to P2. I'm not going to get to look at the patch upgrades in the immediate future. Worth pulling in @anthonyzxu for his thoughts in case it is a work in progress already? |
Can you test with the following changes in /usr/share/defaults/cc-oci-runtime/hypervisor.args: In the qemu command line, following option is being used: Instead please use the following: Manohar saw the issue being fixed with the above change. |
@rarindam no, this issue still exists after your suggested method is used. -fsdev local,id=extra-9p-hyperShared,path=/tmp/hyper/shared/pods/7cefd7d5746cef74f9fb04c9f246b05bf6ac7e0bc38c0457115f4d443307546e,security_model=none |
Hi @wuzhy ,
-fsdev local should be -fsdev handle.
That is what fixed the issue for Manohar.
|
@rarindam Sorry for the late reply, Just i tried, and found that Clear Container failed when "-fsdev handle" was used. Below is the log: 2017-08-01 01:38:22.896147955 +0800 CST:7266:cc-runtime:error:Container still running, should be stopped |
@wuzhy, it has be some other issue other than the option I provided. You have to remove security_model option if using handle, instead of local. Please try it out.
@mcastelino
[ 26.551849] 9pnet: (00000550) >>> TSETATTR fid 4 But if we use 9p-handle as server, everything works fine: |
execve("./test_iperf3-manohar", ["./test_iperf3-manohar"], [/* 25 vars */]) = 0 |
Fixes intel/cc-oci-runtime#152 Fixes intel/cc-oci-runtime#1062 Signed-off-by: Julio Montes <[email protected]>
still occurs using device driver overlay2 |
@devimc , have you tested this with 9p-handle instead of 9p-local? |
@rarindam nop, but I can try |
./test_iperf3-manohar Kernel 4.14, Qemu 2.10: execve("./test_iperf3-manohar", ["./test_iperf3-manohar"], [/* 28 vars */]) = 0 |
@rarindam in clear containers this is the cmdline:
|
@devimc |
If you try to run iperf3 with runc as the runtime it works.
However if the same container is run with cor as a runtime it will fail with the error
iperf3: error - unable to create a new stream: No such file or directory
This may have something to do with the setup of /tmp or an environment variable in cor.
The text was updated successfully, but these errors were encountered: