Skip to content

Commit f99e863

Browse files
author
Evan Lezar
committed
Merge branch 'CNT-4142/xorg-missing-not-fatal' into 'main'
Make discovery of Xorg libraries optional See merge request nvidia/container-toolkit/container-toolkit!368
2 parents dcc21ec + 2136266 commit f99e863

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
* Update `update-ldcache` hook to only update ldcache if it exists.
66
* Update `update-ldcache` hook to create `/etc/ld.so.conf.d` folder if it doesn't exist.
7+
* Fix failure when libcuda cannot be located during XOrg library discovery.
78

89
## v1.13.0
910

internal/discover/graphics.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ func NewGraphicsDiscoverer(logger *logrus.Logger, devices image.VisibleDevices,
4646

4747
drmByPathSymlinks := newCreateDRMByPathSymlinks(logger, drmDeviceNodes, cfg)
4848

49-
xorg, err := newXorgDiscoverer(logger, driverRoot, cfg.NvidiaCTKPath)
50-
if err != nil {
51-
return nil, fmt.Errorf("failed to create Xorg discoverer: %v", err)
52-
}
49+
xorg := optionalXorgDiscoverer(logger, driverRoot, cfg.NvidiaCTKPath)
5350

5451
discover := Merge(
5552
Merge(drmDeviceNodes, drmByPathSymlinks),
@@ -259,6 +256,17 @@ type xorgHooks struct {
259256

260257
var _ Discover = (*xorgHooks)(nil)
261258

259+
// optionalXorgDiscoverer creates a discoverer for Xorg libraries.
260+
// If the creation of the discoverer fails, a None discoverer is returned.
261+
func optionalXorgDiscoverer(logger *logrus.Logger, driverRoot string, nvidiaCTKPath string) Discover {
262+
xorg, err := newXorgDiscoverer(logger, driverRoot, nvidiaCTKPath)
263+
if err != nil {
264+
logger.Warnf("Failed to create Xorg discoverer: %v; skipping xorg libraries", err)
265+
return None{}
266+
}
267+
return xorg
268+
}
269+
262270
func newXorgDiscoverer(logger *logrus.Logger, driverRoot string, nvidiaCTKPath string) (Discover, error) {
263271
libCudaPaths, err := cuda.New(
264272
cuda.WithLogger(logger),

0 commit comments

Comments
 (0)