`daemonize` API breakage when upgrading from Twisted <= 13.1 to >= 13.2
Due to a bug in the M-Lab installation procedure (see ooni-support pull request #43), we have run oonib
against Twisted 14.0 on the M-Lab test slice.
In doing so, we uncovered a bug due to a changing API postcondition for the daemonize
function/method in twisted.scripts._twistd_unix
.
The details are thoroughly documented here:
https://github.com/m-lab-tools/ooni-support/issues/28#issuecomment-49205636
Note: twisted is very careful to provide well tested backwards compatibility for the public APIs, but this is a case of relying on a "private" API. An ideal solution would redesign Ooni to use only public twisted APIs. (I'm not sure of the rationale for the current design; can we document it / link to it here?)
A short term fix is to specify a constraint of twisted <= 13.1. A middle ground fix is to specify twisted >= 13.2 and cut'n'paste the relevant portions from the twisted code.
Trac:
Username: nathan-at-least