Browse code

Ensure parent dir exists for mount cleanup file

While investigating a test failure, I found this in the logs:

```
time="2019-07-04T15:06:32.622506760Z" level=warning msg="Error while setting daemon root propagation, this is not generally critical but may cause some functionality to not work or fallback to less desirable behavior" dir=/go/src/github.com/docker/docker/bundles/test-integration/d1285b8250308/root error="error writing file to signal mount cleanup on shutdown: open /tmp/dxr/d1285b8250308/unmount-on-shutdown: no such file or directory"
```

This path is generated from the daemon's exec-root, which appears to not
exist yet. This change just makes sure it exists before we try to write
a file.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
(cherry picked from commit 7725b88edc5b7c74c1599e0180d654e8aac47598)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

Brian Goff authored on 2019/07/12 05:30:36
Showing 1 changed files
... ...
@@ -1265,6 +1265,10 @@ func setupDaemonRootPropagation(cfg *config.Config) error {
1265 1265
 		return nil
1266 1266
 	}
1267 1267
 
1268
+	if err := os.MkdirAll(filepath.Dir(cleanupFile), 0700); err != nil {
1269
+		return errors.Wrap(err, "error creating dir to store mount cleanup file")
1270
+	}
1271
+
1268 1272
 	if err := ioutil.WriteFile(cleanupFile, nil, 0600); err != nil {
1269 1273
 		return errors.Wrap(err, "error writing file to signal mount cleanup on shutdown")
1270 1274
 	}