From f57a47fe2c700c3a37400f84114823c102684cd2 Mon Sep 17 00:00:00 2001 From: Henry Wang Date: Wed, 26 Aug 2026 14:13:48 -0700 Subject: [PATCH] Make update-application-profile hook to ignore read-only fs error Signed-off-by: Henry Wang --- .../update-application-profile.go | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/cmd/nvidia-cdi-hook/update-application-profile/update-application-profile.go b/cmd/nvidia-cdi-hook/update-application-profile/update-application-profile.go index 2c03c82ae..1eff75940 100644 --- a/cmd/nvidia-cdi-hook/update-application-profile/update-application-profile.go +++ b/cmd/nvidia-cdi-hook/update-application-profile/update-application-profile.go @@ -19,9 +19,11 @@ package updateapplicationprofile import ( "context" + "errors" "fmt" "os" "regexp" + "syscall" "github.com/urfave/cli/v3" @@ -125,12 +127,19 @@ func run(_ context.Context, _ *cli.Command, cfg *options, logger logger.Interfac return nil } - if err := containerRoot.MkdirAll(applicationProfileDir, 0555); err != nil { - return fmt.Errorf("failed to create application profiles directory: %w", err) - } - - if err := containerRoot.WriteFile(applicationProfileFile, buildApplicationProfileConfig(mask), 0444); err != nil { - return fmt.Errorf("failed to write application profile: %w", err) + if err = func() error { + if err := containerRoot.MkdirAll(applicationProfileDir, 0555); err != nil { + return fmt.Errorf("failed to create application profiles directory: %w", err) + } + if err := containerRoot.WriteFile(applicationProfileFile, buildApplicationProfileConfig(mask), 0444); err != nil { + return fmt.Errorf("failed to write application profile: %w", err) + } + return nil + }(); err != nil { + if !errors.Is(err, syscall.EROFS) { + return err + } + logger.Warningf("Ignoring read-only filesystem error: %v", err) } return nil