[tahoe-lafs-trac-stream] [Tahoe-LAFS] #2846: nevow error against twisted-trunk

Tahoe-LAFS trac at tahoe-lafs.org
Thu Dec 8 19:05:41 UTC 2016


#2846: nevow error against twisted-trunk
-------------------------------+------------------------
 Reporter:  warner             |          Owner:
     Type:  defect             |         Status:  new
 Priority:  normal             |      Milestone:  1.12.0
Component:  code-frontend-web  |        Version:  1.11.0
 Keywords:                     |  Launchpad Bug:
-------------------------------+------------------------
 The "deprecations" buildbot picked up a test failure (which will probably
 also be a runtime error) when running against Twisted trunk:

 {{{
 [ERROR]
 Traceback (most recent call last):
   File "/home/bb-tahoe/bb-tahoe/deprecations/build/.tox/upcoming-
 deprecations/local/lib/python2.7/site-packages/twisted/internet/defer.py",
 line 150, in maybeDeferred
     result = f(*args, **kw)
   File "/home/bb-tahoe/bb-tahoe/deprecations/build/.tox/upcoming-
 deprecations/local/lib/python2.7/site-packages/nevow/static.py", line 311,
 in renderHTTP
     if request.setLastModified(self.fp.getmtime()) is http.CACHED:
 exceptions.AttributeError: 'FilePath' object has no attribute 'getmtime'

 allmydata.test.test_system.SystemTest.test_filesystem
 allmydata.test.web.test_web.Web.test_CSS_FILE
 }}}

 (see the log in https://tahoe-lafs.org/buildbot-tahoe-
 lafs/builders/deprecations/builds/140/steps/upcoming-
 deprecations/logs/stdio)

 This is using tahoe at [5a5da0de2a4b23c6b9b5540e4675ee532a8addb2], Twisted
 at "1.6.0dev0" (they don't use Versioneer, but it's probably
 [https://github.com/twisted/twisted/commit/0384682cad94bfa1d16a6fc80e795fa6765d7454
 0384682cad94bfa1d16a6fc80e795fa6765d7454]), and Nevow-0.14.2 .

 Twisted just removed several methods from `FilePath` which had been
 (informally) deprecated back in 2007 (twisted
 [https://github.com/twisted/twisted/commit/a8805a0162d8c67830c5353caa18b5e387cf8ea6
 a8805a0162d8c67830c5353caa18b5e387cf8ea6]), which would be the
 Twisted-2.6/8.0 era. Unfortunately, it appears that no actual
 `DeprecationWarning` was raised for these methods, so we didn't see any
 notice that they'd be going away: the only indication was in the
 docstring. The specific method that Nevow-0.14.2 is using is `getmtime`,
 which was replaced with a higher-precision variant named
 `getModificationTime`.

 (interesting trivia note: they replaced `getctime` with
 `getStatusChangeTime`, which would help correct my perpetual misbelief
 that the `c` stands for `creation`).

 This is a Nevow bug, but it's present in the most recent release (0.14.2),
 and the [https://github.com/twisted/nevow/ Nevow repo] has no further
 commits. So either we need to help get a fixed Nevow release out ASAP, or
 Tahoe needs to avoid using Nevow in a way that triggers this code path.
 Otherwise Tahoe will stop working as soon as the next Twisted release
 comes out.

--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2846>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list