From 5eb522193cf206a36c1663d909b9e53ae93b2b6a Mon Sep 17 00:00:00 2001 From: Michael Pratt Date: Fri, 22 Nov 2019 15:21:31 -0800 Subject: Force timezone initialization before filter installation The first use of time.Local (usually via time.Time.Date, et. al) performs initialization of the local timezone, which involves open several tzdata files from the host. Since filter installation disallows open, we should explicitly force this initialization rather than implicitly depending on the first logging (or other time) call occurring before filter installation. PiperOrigin-RevId: 282053121 --- runsc/main.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'runsc/main.go') diff --git a/runsc/main.go b/runsc/main.go index 711f60d4f..4682b308c 100644 --- a/runsc/main.go +++ b/runsc/main.go @@ -26,6 +26,7 @@ import ( "path/filepath" "strings" "syscall" + "time" "flag" @@ -237,6 +238,18 @@ func main() { log.SetLevel(log.Debug) } + // Logging will include the local date and time via the time package. + // + // On first use, time.Local initializes the local time zone, which + // involves opening tzdata files on the host. Since this requires + // opening host files, it must be done before syscall filter + // installation. + // + // Generally there will be a log message before filter installation + // that will force initialization, but force initialization here in + // case that does not occur. + _ = time.Local.String() + subcommand := flag.CommandLine.Arg(0) var e log.Emitter -- cgit v1.2.3