diff options
author | Atemu <atemu.main@gmail.com> | 2024-03-25 19:15:14 +0100 |
---|---|---|
committer | Atemu <atemu.main@gmail.com> | 2024-03-26 17:56:01 +0100 |
commit | 70fa188e175ab9d1034416374b2af15ad94decbc (patch) | |
tree | ce4305bb50a80f7791c3718bf3fcd25f4fac3a41 /nixos | |
parent | b06025f1533a1e07b6db3e75151caa155d1c7eb3 (diff) |
nixos/paperless: set OMP_NUM_THREADS=1 by default
Fixes https://github.com/NixOS/nixpkgs/issues/240591
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/misc/paperless.nix | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/nixos/modules/services/misc/paperless.nix b/nixos/modules/services/misc/paperless.nix index 9314c4f3848d8..9301d1f687254 100644 --- a/nixos/modules/services/misc/paperless.nix +++ b/nixos/modules/services/misc/paperless.nix @@ -27,6 +27,8 @@ let name = "paperless_ngx_nltk_data"; paths = pkg.nltkData; }; + } // optionalAttrs (cfg.openMPThreadingWorkaround) { + OMP_NUM_THREADS = "1"; } // (lib.mapAttrs (_: s: if (lib.isAttrs s || lib.isList s) then builtins.toJSON s else if lib.isBool s then lib.boolToString s @@ -199,6 +201,20 @@ in }; package = mkPackageOption pkgs "paperless-ngx" { }; + + openMPThreadingWorkaround = mkEnableOption '' + a workaround for document classifier timeouts. + + Paperless uses OpenBLAS via scikit-learn for document classification. + + The default is to use threading for OpenMP but this would cause the + document classifier to spin on one core seemingly indefinitely if there + are large amounts of classes per classification; causing it to + effectively never complete due to running into timeouts. + + This sets `OMP_NUM_THREADS` to `1` in order to mitigate the issue. See + https://github.com/NixOS/nixpkgs/issues/240591 for more information. + '' // mkOption { default = true; }; }; config = mkIf cfg.enable { |