-
-
Notifications
You must be signed in to change notification settings - Fork 15.5k
nixos/rtkit: Disable debug logging and fix sd_notify #180102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
dasJ
wants to merge
1
commit into
NixOS:master
Choose a base branch
from
helsinki-systems:feat/rtkit-no-debug-log
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This feels like a terrible hack. Is this the right way to go considering this service is type
dbus
, so sd_notify doesn't really change the status anyway?See https://github.com/heftig/rtkit/blob/c295fa849f52b487be6433e69e08b46251950399/rtkit-daemon.service.in#L23
According to service docs the notification is only interesting in case of
Type=notify
.On fedora for example this works without log spam and without specific socket mapping.
Or from a different angle: What does having a "Status" line do for us in a service which is actively managed through a specified dbus topic?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sd_notify works with non-notify services as well. The reason to use
Type=notify
is startup notifications, not whethersd_notify()
works. That is controlled byNotifyAccess=
.The
Status:
line isStatus: "Supervising 0 threads of 0 processes of 0 users."
, which is the same as the debug message that is logged constantly.Fixing the status line is pretty irrelevant to me, I don't care about it at all, I just implemented it so people who care about the info that is being logged constantly have a way of accessing it that isn't annoying.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Digging into this more, adding notification won't influence the logs, since they're both sent anyway: https://github.com/heftig/rtkit/blob/c295fa849f52b487be6433e69e08b46251950399/rtkit-daemon.c#L1435-L1446
I think bumping up the log level is a good idea, but otherwise the behaviour should be either fixed upstream or patched. The whole
chroot("/proc")
could be replaced with a strict filesystem protection at service level anyway which would unbreak the status notification. (disable do_chroot) But messing with mounting over random/proc
directories is just... yuck.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree but it was disabling chroot() vs messing with /proc and while I agree with you that this is very ugly, it's the solution that doesn't lower security.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or to make it more clear: I'm not happy with this solution at all but it shuts up the daemon while not supressing info that was available previously. And upstream does not seem to care at all: heftig/rtkit#26
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can replicate the chroot with TemporaryFileSystem and BindPaths and then disable the chroot the application creates itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Something like this should work:
(not tested)