Merge pull request #7120 from QiWang19/preserve-fd

Fix close fds of run --preserve-fds
This commit is contained in:
OpenShift Merge Robot 2020-07-31 08:25:05 -04:00 committed by GitHub
commit 3cf8237bc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 9 deletions

View File

@ -954,9 +954,12 @@ func (r *ConmonOCIRuntime) createOCIContainer(ctr *Container, restoreOptions *Co
return err return err
} }
var filesToClose []*os.File
if ctr.config.PreserveFDs > 0 { if ctr.config.PreserveFDs > 0 {
for fd := 3; fd < int(3+ctr.config.PreserveFDs); fd++ { for fd := 3; fd < int(3+ctr.config.PreserveFDs); fd++ {
cmd.ExtraFiles = append(cmd.ExtraFiles, os.NewFile(uintptr(fd), fmt.Sprintf("fd-%d", fd))) f := os.NewFile(uintptr(fd), fmt.Sprintf("fd-%d", fd))
filesToClose = append(filesToClose, f)
cmd.ExtraFiles = append(cmd.ExtraFiles, f)
} }
} }
@ -1052,14 +1055,10 @@ func (r *ConmonOCIRuntime) createOCIContainer(ctr *Container, restoreOptions *Co
} }
} }
if ctr.config.PreserveFDs > 0 { // These fds were passed down to the runtime. Close them
for fd := 3; fd < int(3+ctr.config.PreserveFDs); fd++ { // and not interfere
// These fds were passed down to the runtime. Close them for _, f := range filesToClose {
// and not interfere errorhandling.CloseQuiet(f)
if err := os.NewFile(uintptr(fd), fmt.Sprintf("fd-%d", fd)).Close(); err != nil {
logrus.Debugf("unable to close file fd-%d", fd)
}
}
} }
return nil return nil