NixOS / NixOS/hydra

Mixed Nix versions from host and hydra can cause forced upgrades to the Nix database.

Open
#43 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PLpgSQL
Stars
1.6k
Forks
358
Avg merge
20h 30m
Merged PRs (30d)
27

Description

I am running Hydra on "Ubuntu 10.04.4 LTS" (lucid). The host has Nix 1.1-1 installed from the 1.1 release page, downloaded as a .deb for 10.04.

There is a mismatch between the libsqlite3 library used by the host Nix and the Nix inside the Hydra closure.

The "host" Nix links dynamically against libsqlite3.so version 3.6.22-1, as provided by Ubuntu 10.04.

The Nix inside the Hydra closure links against libsqlite3.so version 3.7.13.

After 3.7.0, sqlite3 supports Write-Ahead Logging, and this is incompatible with older versions of sqlite3.

AFAICT, installing and running Hydra will upgrade the sqlite3 datastore, rendering the host Nix installation unusable.

The simple workaround, just installing the Nix from Hydra's closure into the user-specific Nix profile works just fine, of course, but it's a bit surprising that this is necessary. I didn't see any prominently displayed warning about this breaking upgrade when I started the Hydra services.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Start by tracing how Hydra services select the host Nix versus the Nix in the closure and how the SQLite datastore is opened, comparing SQLite 3.6.22 with 3.7.13. Done should prevent an unexpected database upgrade or provide a prominent warning about the incompatibility.

Written by the indexing model from the issue text.

Assessment

Tech stack
sqlite
Domain
build-system, databases, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.