You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I hit one case in cri-containerd restart test that:
The test stops a container;
cri-containerd handles TaskExit event and task.Delete the task;
task.Delete closes the task io, which deletes the fifo directory here
containerd/cri-containerd gets restarted before task is actually deleted here.
After cri-containerd/containerd is up, we'll never be able to load the task and attaching FIFOs. Because the fifo directory has been removed, even we do OpenFifo in ioAttach we'll get the error that the directory is not found.
There are 2 options:
Option 1: Do not try to attach io to a stopped task. The problems is that we usually attach io when loading task, but with the current client we can only know the task status after loading the task. It means that to reliably load a task and attach io, we have to 1) load task without IO first -> 2) check status -> 3) load task with IO. This is pretty troublesome.
Option 2: Ensure fifo directory exists in loadTask when ioAttach is specified.
I hit one case in cri-containerd restart test that:
TaskExitevent andtask.Deletethe task;task.Deletecloses the task io, which deletes the fifo directory hereOpenFifoinioAttachwe'll get the error that the directory is not found.There are 2 options:
loadTaskwhenioAttachis specified.I feel like option 2 seems simpler.
/cc @dnephin