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/kubo: fix potential panic on startup #272041

Merged
merged 1 commit into from
Dec 15, 2023

Commits on Dec 15, 2023

  1. nixos/kubo: fix potential panic on startup

    This fixes a panic of the kubo daemon which could occur under certain conditions when the daemon was starting.
    It was caused by the `ipfs.service` unit not depending on the `ipfs-api.socket` and `ipfs-gateway.socket` units with `Wants=`. This allows the `ipfs.service` to be started manually or by `nixos-rebuild` without the sockets being set up before that. When that happens, the daemon won't know about these sockets and will only use what is set in `services.kubo.settings.Addresses.Gateway` and `services.kubo.settings.Addresses.API`. By default the `API` is an empty list in NixOS though. The daemon doesn't like this at all and panics on startup, see ipfs/kubo#10056.
    With this commit, starting `ipfs.service` will first set up the two sockets before starting the actual service.
    Adding the `Sockets=` option implicitly adds a `Wants=` for the sockets and this is exactly what we need. See https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html#Implicit%20Dependencies . This can be checked with `systemctl show ipfs.service`.
    
    This should probably be upstreamed to the unit file in the Kubo repo.
    
    The problem can be reproduced in the following way:
    - Add `services.kubo.enable = true` to `/etc/nixos/configuration.nix`
    - `sudo nixos-rebuild switch` (this may already fail, not sure why it's not deterministic for me)
    - `sudo systemctl stop ipfs-api.socket`
    - `sudo systemctl stop ipfs-gateway.socket`
    - `sudo systemctl stop ipfs.service`
    - `sudo systemctl start ipfs.service`
    
    Fixes NixOS#248447.
    Luflosi committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    d4fcb44 View commit details
    Browse the repository at this point in the history