Skip to content

Commit da95f80

Browse files
authored
fix: skip ENOENT errors during home/workspace directory chown walk (#498)
1 parent 9a697d4 commit da95f80

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

envbuilder.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -812,10 +812,16 @@ func run(ctx context.Context, opts options.Options, execArgs *execArgsInfo) erro
812812
// We need to change the ownership of the files to the user that will
813813
// be running the init script.
814814
if chownErr := filepath.Walk(opts.WorkspaceFolder, func(path string, _ os.FileInfo, err error) error {
815+
if errors.Is(err, fs.ErrNotExist) {
816+
return nil
817+
}
815818
if err != nil {
816819
return err
817820
}
818-
return os.Lchown(path, execArgs.UserInfo.uid, execArgs.UserInfo.gid)
821+
if err := os.Lchown(path, execArgs.UserInfo.uid, execArgs.UserInfo.gid); err != nil && !errors.Is(err, fs.ErrNotExist) {
822+
return err
823+
}
824+
return nil
819825
}); chownErr != nil {
820826
opts.Logger(log.LevelError, "chown %q: %s", execArgs.UserInfo.user.HomeDir, chownErr.Error())
821827
endStage("⚠️ Failed to the ownership of the workspace, you may need to fix this manually!")
@@ -829,10 +835,16 @@ func run(ctx context.Context, opts options.Options, execArgs *execArgsInfo) erro
829835
if execArgs.UserInfo.uid != 0 {
830836
endStage := startStage("🔄 Updating ownership of %s...", execArgs.UserInfo.user.HomeDir)
831837
if chownErr := filepath.Walk(execArgs.UserInfo.user.HomeDir, func(path string, _ fs.FileInfo, err error) error {
838+
if errors.Is(err, fs.ErrNotExist) {
839+
return nil
840+
}
832841
if err != nil {
833842
return err
834843
}
835-
return os.Lchown(path, execArgs.UserInfo.uid, execArgs.UserInfo.gid)
844+
if err := os.Lchown(path, execArgs.UserInfo.uid, execArgs.UserInfo.gid); err != nil && !errors.Is(err, fs.ErrNotExist) {
845+
return err
846+
}
847+
return nil
836848
}); chownErr != nil {
837849
opts.Logger(log.LevelError, "chown %q: %s", execArgs.UserInfo.user.HomeDir, chownErr.Error())
838850
endStage("⚠️ Failed to update ownership of %s, you may need to fix this manually!", execArgs.UserInfo.user.HomeDir)

0 commit comments

Comments
 (0)