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

bitwarden_rs: remove failing integration test #118072

Closed
wants to merge 1 commit into from

Conversation

Munksgaard
Copy link
Contributor

@Munksgaard Munksgaard commented Mar 30, 2021

This test is hitting a timeout because it's trying to build
firefox-unwrapped. The idea is good, test that the web service works with
different database backends, but building firefox is way too big a task for a
small service like this.

Here's the logs from one of the failing tests:

https://hydra.nixos.org/build/140338120

From the looks of it, the only other test to use firefox-unwrapped and selenium
in the same way is nginx-etag, which also times out:

https://hydra.nixos.org/build/140337879

If there is no alternative way of automating the integration tests, I therefore
propose that we delete them. Right now, the only purpose they serve is to block
newer releases on unstable.

If you want me to, I can also create a PR to remove the failing nginx-etag test.

Motivation for this change
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • 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 nixpkgs-review --run "nixpkgs-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.

This test is hitting a timeout because it's trying to build
firefox-unwrapped. The idea is good, test that the web service works with
different database backends, but building firefox is way too big a task for a
small service like this.

Here's the logs from one of the failing tests:

https://hydra.nixos.org/build/140338120

From the looks of it, the only other test to use firefox-unwrapped and selenium
in the same way is nginx-etag, which also times out:

https://hydra.nixos.org/build/140337879

If there is no alternative way of automating the integration tests, I therefore
propose that we delete them. Right now, the only purpose they serve is to block
newer releases on unstable.
@Munksgaard
Copy link
Contributor Author

@SuperSandro2000 I think I figured out why the bitwarden_rs tests were failing.

@SuperSandro2000
Copy link
Member

Maybe firefox-unwrapped was not cached?

@mweinelt
Copy link
Member

mweinelt commented Mar 30, 2021

I feel very strongly that this is the wrong way to tackle this issue. The test isn't even part of the tested set, so I don't see how it could block anything.

Firefox should mostly come from the cache: https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.firefox-unwrapped.x86_64-linux/all

The bitwarden tests fail regardless.

https://hydra.nixos.org/job/nixos/trunk-combined/nixos.tests.bitwarden.sqlite.x86_64-linux/all
https://hydra.nixos.org/job/nixos/trunk-combined/nixos.tests.bitwarden.postgresql.x86_64-linux/all
https://hydra.nixos.org/job/nixos/trunk-combined/nixos.tests.bitwarden.mysql.x86_64-linux/all

@Munksgaard
Copy link
Contributor Author

Munksgaard commented Mar 30, 2021

Firefox should mostly come from the cache: https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.firefox-unwrapped.x86_64-linux/all

Ah, it actually seems like the x86_64 tests are now passing!

However, aarch64 is still failing.

Maybe the problem is that firefox is not cached for aarch64? https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.firefox-unwrapped.aarch64-linux/all

@Munksgaard
Copy link
Contributor Author

The test isn't even part of the tested set, so I don't see how it could block anything.

I'm not sure what you mean by this?

@mweinelt
Copy link
Member

The test isn't even part of the tested set, so I don't see how it could block anything.

I'm not sure what you mean by this?

The list of tests that decide whether a channel bump can occur.

tested =
let
onFullSupported = x: map (system: "${x}.${system}") supportedSystems;
onAllSupported = x: map (system: "${x}.${system}") (supportedSystems ++ limitedSupportedSystems);
onSystems = systems: x: map (system: "${x}.${system}")
(pkgs.lib.intersectLists systems (supportedSystems ++ limitedSupportedSystems));
in pkgs.releaseTools.aggregate {
name = "nixos-${nixos.channel.version}";
meta = {
description = "Release-critical builds for the NixOS channel";
maintainers = with pkgs.lib.maintainers; [ eelco fpletz ];
};
constituents = pkgs.lib.concatLists [
[ "nixos.channel" ]
(onFullSupported "nixos.dummy")
(onAllSupported "nixos.iso_minimal")
(onSystems ["x86_64-linux" "aarch64-linux"] "nixos.amazonImage")
(onSystems ["x86_64-linux"] "nixos.iso_plasma5")
(onSystems ["x86_64-linux"] "nixos.iso_gnome")
(onFullSupported "nixos.manual")
(onSystems ["x86_64-linux"] "nixos.ova")
(onSystems ["aarch64-linux"] "nixos.sd_image")
(onSystems ["x86_64-linux"] "nixos.tests.boot.biosCdrom")
(onSystems ["x86_64-linux"] "nixos.tests.boot.biosUsb")
(onFullSupported "nixos.tests.boot-stage1")
(onSystems ["x86_64-linux"] "nixos.tests.boot.uefiCdrom")
(onSystems ["x86_64-linux"] "nixos.tests.boot.uefiUsb")
(onSystems ["x86_64-linux"] "nixos.tests.chromium")
(onFullSupported "nixos.tests.containers-imperative")
(onFullSupported "nixos.tests.containers-ip")
(onSystems ["x86_64-linux"] "nixos.tests.docker")
(onFullSupported "nixos.tests.ecryptfs")
(onFullSupported "nixos.tests.env")
(onFullSupported "nixos.tests.firefox-esr")
(onFullSupported "nixos.tests.firefox")
(onFullSupported "nixos.tests.firewall")
(onFullSupported "nixos.tests.fontconfig-default-fonts")
(onFullSupported "nixos.tests.gnome3")
(onFullSupported "nixos.tests.gnome3-xorg")
(onSystems ["x86_64-linux"] "nixos.tests.hibernate")
(onFullSupported "nixos.tests.i3wm")
(onSystems ["x86_64-linux"] "nixos.tests.installer.btrfsSimple")
(onSystems ["x86_64-linux"] "nixos.tests.installer.btrfsSubvolDefault")
(onSystems ["x86_64-linux"] "nixos.tests.installer.btrfsSubvols")
(onSystems ["x86_64-linux"] "nixos.tests.installer.luksroot")
(onSystems ["x86_64-linux"] "nixos.tests.installer.lvm")
(onSystems ["x86_64-linux"] "nixos.tests.installer.separateBootFat")
(onSystems ["x86_64-linux"] "nixos.tests.installer.separateBoot")
(onSystems ["x86_64-linux"] "nixos.tests.installer.simpleLabels")
(onSystems ["x86_64-linux"] "nixos.tests.installer.simpleProvided")
(onSystems ["x86_64-linux"] "nixos.tests.installer.simpleUefiSystemdBoot")
(onSystems ["x86_64-linux"] "nixos.tests.installer.simple")
(onSystems ["x86_64-linux"] "nixos.tests.installer.swraid")
(onFullSupported "nixos.tests.ipv6")
(onFullSupported "nixos.tests.keymap.azerty")
(onFullSupported "nixos.tests.keymap.colemak")
(onFullSupported "nixos.tests.keymap.dvorak")
(onFullSupported "nixos.tests.keymap.dvp")
(onFullSupported "nixos.tests.keymap.neo")
(onFullSupported "nixos.tests.keymap.qwertz")
(onFullSupported "nixos.tests.latestKernel.login")
(onFullSupported "nixos.tests.lightdm")
(onFullSupported "nixos.tests.login")
(onFullSupported "nixos.tests.misc")
(onFullSupported "nixos.tests.mutableUsers")
(onFullSupported "nixos.tests.nano")
(onFullSupported "nixos.tests.nat.firewall-conntrack")
(onFullSupported "nixos.tests.nat.firewall")
(onFullSupported "nixos.tests.nat.standalone")
(onFullSupported "nixos.tests.networking.scripted.bond")
(onFullSupported "nixos.tests.networking.scripted.bridge")
(onFullSupported "nixos.tests.networking.scripted.dhcpOneIf")
(onFullSupported "nixos.tests.networking.scripted.dhcpSimple")
(onFullSupported "nixos.tests.networking.scripted.link")
(onFullSupported "nixos.tests.networking.scripted.loopback")
(onFullSupported "nixos.tests.networking.scripted.macvlan")
(onFullSupported "nixos.tests.networking.scripted.privacy")
(onFullSupported "nixos.tests.networking.scripted.routes")
(onFullSupported "nixos.tests.networking.scripted.sit")
(onFullSupported "nixos.tests.networking.scripted.static")
(onFullSupported "nixos.tests.networking.scripted.virtual")
(onFullSupported "nixos.tests.networking.scripted.vlan")
(onFullSupported "nixos.tests.networking.networkd.bond")
(onFullSupported "nixos.tests.networking.networkd.bridge")
(onFullSupported "nixos.tests.networking.networkd.dhcpOneIf")
(onFullSupported "nixos.tests.networking.networkd.dhcpSimple")
(onFullSupported "nixos.tests.networking.networkd.link")
(onFullSupported "nixos.tests.networking.networkd.loopback")
# Fails nondeterministically (https://github.com/NixOS/nixpkgs/issues/96709)
#(onFullSupported "nixos.tests.networking.networkd.macvlan")
(onFullSupported "nixos.tests.networking.networkd.privacy")
(onFullSupported "nixos.tests.networking.networkd.routes")
(onFullSupported "nixos.tests.networking.networkd.sit")
(onFullSupported "nixos.tests.networking.networkd.static")
(onFullSupported "nixos.tests.networking.networkd.virtual")
(onFullSupported "nixos.tests.networking.networkd.vlan")
(onFullSupported "nixos.tests.systemd-networkd-ipv6-prefix-delegation")
(onFullSupported "nixos.tests.nfs3.simple")
(onFullSupported "nixos.tests.nfs4.simple")
(onFullSupported "nixos.tests.openssh")
(onFullSupported "nixos.tests.pantheon")
(onFullSupported "nixos.tests.php.fpm")
(onFullSupported "nixos.tests.php.httpd")
(onFullSupported "nixos.tests.php.pcre")
(onFullSupported "nixos.tests.plasma5")
(onFullSupported "nixos.tests.predictable-interface-names.predictableNetworkd")
(onFullSupported "nixos.tests.predictable-interface-names.predictable")
(onFullSupported "nixos.tests.predictable-interface-names.unpredictableNetworkd")
(onFullSupported "nixos.tests.predictable-interface-names.unpredictable")
(onFullSupported "nixos.tests.printing")
(onFullSupported "nixos.tests.proxy")
(onFullSupported "nixos.tests.sddm.default")
(onFullSupported "nixos.tests.shadow")
(onFullSupported "nixos.tests.simple")
(onFullSupported "nixos.tests.switchTest")
(onFullSupported "nixos.tests.udisks2")
(onFullSupported "nixos.tests.xfce")
(onSystems ["i686-linux"] "nixos.tests.zfs.installer")
(onFullSupported "nixpkgs.emacs")
(onFullSupported "nixpkgs.jdk")
["nixpkgs.tarball"]
];
};

@Munksgaard
Copy link
Contributor Author

Interesting, I didn't know about that.

Then why is bitwarden_rs still in version v1.17.0 on unstable?

https://search.nixos.org/packages?channel=unstable&show=bitwarden_rs&from=0&size=50&sort=relevance&query=bitwarden

@mweinelt
Copy link
Member

@mweinelt
Copy link
Member

See NixOS/nixos-search#295

@JJJollyjim
Copy link
Member

Thanks mweinelt, I agree there is no issue here. The test is not "building firefox", it depends on firefox, like it depends on linux and systemd.

@JJJollyjim JJJollyjim closed this Mar 30, 2021
@Munksgaard
Copy link
Contributor Author

Thank you all for helping out ❤️

@Munksgaard Munksgaard deleted the remove-bitwarden-test branch March 30, 2021 19:12
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

4 participants