[DCV] Fix Xdcv segfault on RHEL9 and Rocky9 caused by DCV attempting GL initialization when GPU acceleration is not supported.#3156
Open
gmarciani wants to merge 1 commit intoaws:developfrom
Conversation
b559c73 to
c7e5c79
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #3156 +/- ##
========================================
Coverage 75.65% 75.65%
========================================
Files 24 24
Lines 2481 2481
========================================
Hits 1877 1877
Misses 604 604
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
himani2411
reviewed
Apr 10, 2026
| # second that are sent to the client. A higher value consumes more bandwidth | ||
| # and resources. By default it is set to 25. Set to 0 for no limit | ||
| #target-fps = 30 | ||
| <% unless node['cluster']['dcv']['is_graphic_instance'] %> |
Contributor
There was a problem hiding this comment.
IS this an attribute we set, i cant find it being mentioned anywhere so we add these display-encodes for all instances regardless it is GPU or not? Or is this an ExtraChefAttribute?
himani2411
reviewed
Apr 10, 2026
| it { should be_mode 0755 } | ||
|
|
||
| unless instance.graphic? && instance.nvidia_installed? && instance.dcv_gpu_accel_supported? | ||
| its('content') { should match /enable-gl-in-virtual-sessions\s*=\s*"always-off"/ } |
Contributor
There was a problem hiding this comment.
Can you also add the check for display-encoders?
Contributor
Author
There was a problem hiding this comment.
Good catch! Addressed
…GL initialization even when GPU acceleration is not supported. To prevent Xdcv from segfaulting during GLX initialization, we disabled in dcv.conf the use of dcv-gl (parameter enable-gl-in-virtual-sessions) and hardware encoding (parameter display-encoders) for instances where GPU acceleration is not supported.
c7e5c79 to
a540e27
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of changes
Disable DCV-GL on instance types not supporting GPU acceleration.
Before this change we used to keep DCV-GL always-on in DCV configuration even for instance types not supporting GPIU acceleration, such as g5g. In certain OSs. This was causing intermittent failures in the setup of dcv connection
Fix Xdcv segfault on RHEL9 and Rocky9 caused by DCV attempting GL initialization when GPU acceleration is not supported. We did it by explicitly disabling dcv-gl in dcv.conf on instances where GPU acceleration is not supported, preventing Xdcv from segfaulting during GLX initialization. The fix is applied to all OSs, because it is correct to keep dcv-gl disabledeven if on other OSs it seems that
Tests
test_dcv_configurationexecuted on all OSsBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.