Skip to content
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

nixos/oxidized: Use symlinks for config files #66612

Merged
merged 1 commit into from Aug 14, 2019

Conversation

fadenb
Copy link
Contributor

@fadenb fadenb commented Aug 14, 2019

The old cp suffers from a permission issue on the 2nd start of the service.
The files were copied from the read-only nix store. On the 2nd start of the service the cp failed.
The new version force creates a symlink which does not suffer from this.

Motivation for this change

The oxidized service did only start for the first time. All other startup attempts failed:

-- Unit oxidized.service has begun starting up.
Aug 14 08:44:40 omniIT-pg02 krg794lqb6z8sbvg5waj2ck1yk5cpr25-unit-script-oxidized-pre-start[1172]: '/nix/store/52knh7571lwsil8j3knyk6wk2dv1fkg4-oxidized-router.db' -> '/var/lib/oxidized/.config/oxidized/router.db'
Aug 14 08:44:40 omniIT-pg02 krg794lqb6z8sbvg5waj2ck1yk5cpr25-unit-script-oxidized-pre-start[1172]: cp: cannot create regular file '/var/lib/oxidized/.config/oxidized/router.db': Permission denied
Aug 14 08:44:40 omniIT-pg02 systemd[1]: oxidized.service: Control process exited, code=exited, status=1/FAILURE
Aug 14 08:44:40 omniIT-pg02 systemd[1]: oxidized.service: Failed with result 'exit-code'.
Aug 14 08:44:40 omniIT-pg02 systemd[1]: Failed to start oxidized.service.
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
Notify maintainers

cc @WilliButz

The old `cp` suffers from a permission issue on the 2nd start of the
service. The files were copied from the read-only nix store. On the 2nd
start of the service the `cp` failed.
The new version force creates a symlink which does not suffer from this.
Copy link
Member

@WilliButz WilliButz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you 👍

@WilliButz WilliButz merged commit ddf15d3 into NixOS:master Aug 14, 2019
@fadenb fadenb deleted the oxidized_permission_issue branch August 14, 2019 09:59
@WilliButz
Copy link
Member

backported in 364e1a8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants