On Wed, Jun 17, 2009 at 1:41 PM, Alex Clemesha<cleme...@gmail.com> wrote: > Hi, > > Just type "sudo twistd" and the errors will go away. > (You may already know of this work-around) > > I agree with you that it would be nice for these to never show up in > the first place. > I looked at the ticket you mention, but it seems that the cleaner solution > would be to resolve these issues at install/upgrade time.
Just to follow up on this a bit more, reading from here: http://twistedmatrix.com/projects/core/documentation/howto/plugin.html in the section "Plugin Caching", there is this quote: """ [snip]... when installing or removing software which provides Twisted plugins, the site administrator should be sure the cache is regenerated. Well-behaved package managers for such software should take this task upon themselves, since it is trivially automatable. """ The way I read this, requiring the site admin to run "sudo twistd" to regenerate the cache file is a feature, not a bug. Twisted devs: is this the case? Still maybe the install should do the "trivially automatable" bit? I don't have a strong opinion either way, as I'm just now learning about the details of all this. thanks, Alex > > > -Alex > > > On Wed, Jun 17, 2009 at 12:47 PM, Rutt, Benjamin<benjamin.r...@gs.com> wrote: >> I recently installed python-2.6.1 and then twisted-8.2.0 (outside of the >> python tree). One of my users is complaining that when he uses trial to >> test some twisted programs, although his test passes, he has to stare at a >> stack trace like this which mentions dropin.cache.new failing to be written: >> >> $ cat foo.py >> #!/sw/external/python-2.6.1/bin/python >> >> from twisted.trial import unittest >> >> class MyTestClass(unittest.TestCase): >> def test_foobar(self): >> print 'hello, world!' >> self.failUnless(1 == 1) >> $ /sw/external/twisted-8.2.0/bin/trial ./foo.py >> /sw/external/twisted-8.2.0/lib/python/twisted/persisted/sob.py:12: >> DeprecationWarning: the md5 module is deprecated; use hashlib instead >> >> import os, md5, sys >> /sw/external/twisted-8.2.0/lib/python/twisted/python/filepath.py:12: >> DeprecationWarning: the sha module is deprecated; use the hashlib module >> instead >> >> import sha >> /sw/external/twisted-8.2.0/lib/python/twisted/web/microdom.py:181: >> SyntaxWarning: assertion is always true, perhaps remove parentheses? >> >> assert (oldChild.parentNode is self, >> Traceback (most recent call last): >> File "/sw/external/twisted-8.2.0/lib/python/twisted/python/usage.py", line >> 241, in parseOptions >> self.postOptions() >> File "/sw/external/twisted-8.2.0/lib/python/twisted/scripts/trial.py", >> line 293, in postOptions >> self['reporter'] = self._loadReporterByName(self['reporter']) >> File "/sw/external/twisted-8.2.0/lib/python/twisted/scripts/trial.py", >> line 279, in _loadReporterByName >> for p in plugin.getPlugins(itrial.IReporter): >> File "/sw/external/twisted-8.2.0/lib/python/twisted/plugin.py", line 200, >> in getPlugins >> allDropins = getCache(package) >> --- <exception caught here> --- >> File "/sw/external/twisted-8.2.0/lib/python/twisted/plugin.py", line 179, >> in getCache >> dropinPath.setContent(pickle.dumps(dropinDotCache)) >> File "/sw/external/twisted-8.2.0/lib/python/twisted/python/filepath.py", >> line 623, in setContent >> f = sib.open('w') >> File "/sw/external/twisted-8.2.0/lib/python/twisted/python/filepath.py", >> line 433, in open >> return open(self.path, mode+'b') >> exceptions.IOError: [Errno 30] Read-only file system: >> '/sw/external/twisted-8.2.0/lib/python/twisted/plugins/dropin.cache.new' >> >> foo >> MyTestClass >> test_foobar ... hello, world! >> [OK] >> >> ------------------------------------------------------------------------------- >> Ran 1 tests in 0.023s >> >> PASSED (successes=1) >> >> I would consider this to be an install bug. Evidently, trial uses plugins, >> which upon reading >> http://twistedmatrix.com/projects/core/documentation/howto/plugin.html#auto3 >> I find that plugins need up-to-date dropin.cache files to be built, or else >> they'll be built dynamically; the latter step fails in my case due to my >> site-wide install being on a read-only directory. The docs say "when >> installing or removing software which provides Twisted plugins, the site >> administrator should be sure the cache is regenerated"; however all I did >> was install twisted itself, not any specific plugins. All I did to install >> twisted was 'python setup.py install --home=...' and at no later point did I >> ever add new plugins to it. Why can't the install take care of initial >> dropin.cache generation for me? >> >> I see a related issue http://twistedmatrix.com/trac/ticket/2409. >> >> Regardless of whether ticket 2409 goes anywhere, should I raise an issue >> that the install should really take care of initial dropin.cache generation, >> much like python install takes care of std lib .py->.pyc generation? >> >> Thanks. >> >> _______________________________________________ >> Twisted-Python mailing list >> Twisted-Python@twistedmatrix.com >> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python >> >> > > > > -- > Alex Clemesha > clemesha.org > -- Alex Clemesha clemesha.org _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python