From 8416b6f2fcb6096e1fc34781d3e81454a9dfd956 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone <exarkun@twistedmatrix.com> Date: Thu, 26 Sep 2019 15:42:15 -0400 Subject: [PATCH] get a version of twisted with logging for gai errors only useful for debugging failed test runs --- nixos/modules/overlays.nix | 17 +++++++++++++---- nixos/pkgs/twisted.nix | 7 +++++++ nixos/pkgs/twisted.patch | 23 +++++++++++++++++++++++ 3 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 nixos/pkgs/twisted.nix create mode 100644 nixos/pkgs/twisted.patch diff --git a/nixos/modules/overlays.nix b/nixos/modules/overlays.nix index ad41b406..e510fbd7 100644 --- a/nixos/modules/overlays.nix +++ b/nixos/modules/overlays.nix @@ -1,11 +1,20 @@ +let + pythonTwistedOverride = python-self: python-super: { + twisted = python-super.callPackage ../pkgs/twisted.nix { inherit (python-super) twisted; }; + }; +in self: super: { - privatestorage = super.python27.buildEnv.override + privatestorage = self.python27.buildEnv.override { extraLibs = - [ super.python27Packages.tahoe-lafs - super.python27Packages.zkapauthorizer + [ self.python27Packages.tahoe-lafs + self.python27Packages.zkapauthorizer ]; # Twisted's dropin.cache always collides between different # plugin-providing packages. - ignoreCollisions = true; + # ignoreCollisions = true; }; + + python27 = super.python27.override (old: { + packageOverrides = super.lib.composeExtensions old.packageOverrides pythonTwistedOverride; + }); } diff --git a/nixos/pkgs/twisted.nix b/nixos/pkgs/twisted.nix new file mode 100644 index 00000000..32fb3437 --- /dev/null +++ b/nixos/pkgs/twisted.nix @@ -0,0 +1,7 @@ +{ twisted }: +twisted.overrideAttrs (old: { + version = old.version + "-0"; + prePatch = old.patchPhase; + patchPhase = null; + patches = (if old ? "patches" then old.patches else []) ++ [ ./twisted.patch ]; +}) diff --git a/nixos/pkgs/twisted.patch b/nixos/pkgs/twisted.patch new file mode 100644 index 00000000..9f50368c --- /dev/null +++ b/nixos/pkgs/twisted.patch @@ -0,0 +1,23 @@ +diff --git a/src/twisted/internet/_resolver.py b/src/twisted/internet/_resolver.py +index 1c16174a2..8c8249db4 100644 +--- a/src/twisted/internet/_resolver.py ++++ b/src/twisted/internet/_resolver.py +@@ -74,6 +74,8 @@ class GAIResolver(object): + L{getaddrinfo} in a thread. + """ + ++ _log = Logger() ++ + def __init__(self, reactor, getThreadPool=None, getaddrinfo=getaddrinfo): + """ + Create a L{GAIResolver}. +@@ -124,6 +126,9 @@ class GAIResolver(object): + socketType) + except gaierror: + return [] ++ except Exception as e: ++ self._log.failure("Problem resolving {hostName}", hostName=hostName) ++ return [] + d = deferToThreadPool(self._reactor, pool, get) + resolution = HostResolution(hostName) + resolutionReceiver.resolutionBegan(resolution) -- GitLab