Skip to content

Regression in autofs: cannot open mount module nfs (/nix/store/…-autofs-5.1.3/lib/autofs/mount_nfs.so: undefined symbol: xdr_exports) #28282

@sometimes-i-send-pull-requests

Description

Issue description

autofs is broken and unable to mount NFS shares on nixos-unstable. It works on channels/nixos-17.03. Upon trying to mount a share, it gets these errors:

automount: open_mount:294: parse(sun): cannot open mount module nfs (/nix/store/…-autofs-5.1.3/lib/autofs/mount_nfs.so: undefined symbol: xdr_exports)
automount: lookup(file): failed to open parse context

Steps to reproduce

Stick this test in nixpkgs/nixos/tests/nfs-autofs.nix and run it:

import ./make-test.nix {
  name = "nfs-autofs";
  nodes = {
    server = { pkgs, ... }:
      { services.nfs.server =
          { enable = true;
            exports = "/data/foo 192.168.1.0/255.255.255.0(rw,no_root_squash,no_subtree_check,fsid=0)";
            createMountPoints = true;
          };
        networking.firewall.enable = false;
      };
    client = { pkgs, ... }:
      { boot.supportedFilesystems = [ "nfs" ];
        services.autofs =
          {
            enable = true;
            autoMaster =
              let
                autoData = pkgs.writeText "auto.data"
                  ''
                    * server:/data/&
                  '';
              in
                ''
                  /data file:${autoData}
                '';
          };
        networking.firewall.enable = false;
      };
  };
  testScript =
    ''
      $server->waitForUnit("nfs-server.service");
      $server->succeed("systemctl start network-online.target");
      $server->waitForUnit("network-online.target");
      $server->succeed("test -d /data/foo");
      $server->succeed("exportfs -v | grep /data/foo");

      $client->succeed("mkdir -p /data");  # but not /data/foo; autofs is responsible for creating that
      $client->succeed("systemctl start network-online.target");
      $client->waitForUnit("network-online.target");
      $client->succeed("systemctl restart autofs.service");
      $client->waitForUnit("autofs.service");

      $client->fail("mount | grep /data/foo");
      $client->succeed("echo bla > /data/foo/bar");
      $client->succeed("mount | grep /data/foo");
      $server->succeed("test -e /data/foo/bar");
    '';
}

Technical details

  • System: Host system is 17.09.git.f0fac3b (Hummingbird), but probably irrelevant (using own clone of nixpkgs for tests)
  • Nix version: nix-env (Nix) 1.11.8
  • Nixpkgs version: OK in: 17.03pre-git (51a8326); broken in: 17.09pre-git (129f8d7)
  • Sandboxing enabled: build-use-sandbox = false

Metadata

Metadata

Assignees

No one assigned

    Labels

    0.kind: regressionSomething that worked before working no longer

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions