Package: python-moinmoin
Version: 1.9.1-1
Severity: important
Tags: patch
Hi Jonas,
when xapian is used for indexing/searching contents in the wiki, the
request may end in a NameError, for example when a pdf file should be
attached to a wiki page (see attached python traceback).
As Franklin already pointed out in bug#565854, MoinMoin/util/Subprocess.py
has to be patched, in order to solve this issue.
The attached patch, from the upstream repo, solves this issue.
BTW: Thanks for providing the python-xappy package. :-)
Regards,
Pascal
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (500, 'testing'), (50, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-trunk-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages python-moinmoin depends on:
ii python 2.5.4-5 An interactive high-level object-o
ii python-parsedatetime 0.8.7-1 Python module to parse human-reada
ii python-pygments 1.2.2+dfsg-1 syntax highlighting package writte
ii python-support 1.0.6 automated rebuilding support for P
ii python-werkzeug 0.5.1-1 collection of utilities for WSGI a
Versions of packages python-moinmoin recommends:
pn fckeditor <none> (no description available)
ii postfix [mail-transport-agent 2.6.5-3 High-performance mail transport ag
ii python-xapian 1.0.17-1 Xapian search engine interface for
ii python-xappy 0.5-2 easy-to-use interface to the Xapia
Versions of packages python-moinmoin suggests:
pn antiword <none> (no description available)
ii apache2 2.2.14-5 Apache HTTP Server metapackage
ii apache2-mpm-worker [httpd 2.2.14-5 Apache HTTP Server - high speed th
pn catdoc <none> (no description available)
pn docbook-dsssl <none> (no description available)
ii miscfiles [wordlist] 1.4.2.dfsg.1-9 Dictionaries and other interesting
ii poppler-utils [xpdf-utils 0.12.2-2 PDF utilitites (based on libpopple
pn python-4suite-xml <none> (no description available)
ii python-docutils 0.6-3 utilities for the documentation of
pn python-flup <none> (no description available)
pn python-gdchart <none> (no description available)
pn python-ldap <none> (no description available)
ii python-mysqldb 1.2.2-10 A Python interface to MySQL
pn python-openid <none> (no description available)
pn python-pyxmpp <none> (no description available)
ii python-tz 2009u-1 Python version of the Olson timezo
pn python-xml <none> (no description available)
pn smbfs <none> (no description available)
ii wamerican-huge [wordlist] 6-3 American English dictionary words
ii wngerman [wordlist] 20091006-3 New German orthography wordlist
-- no debconf information
-- debsums errors found:
debsums: changed file /usr/share/pyshared/MoinMoin/util/SubProcess.py (from
python-moinmoin package)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] mod_wsgi (pid=20448):
Exception occurred processing WSGI script
'/srv/www/wiki.example.com/path/to/moin.wsgi'.
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] Traceback (most recent
call last):
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/werkzeug/utils.py", line 248, in __call__
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] return
self.app(environ, start_response)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/wsgiapp.py", line 281, in __call__
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] response = run(context)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/wsgiapp.py", line 88, in run
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] response =
dispatch(request, context, action_name)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/wsgiapp.py", line 136, in dispatch
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] response =
handle_action(context, pagename, action_name)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/wsgiapp.py", line 195, in handle_action
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1]
handler(context.page.page_name, context)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/action/AttachFile.py", line 506, in
execute
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] msg =
handler(pagename, request)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/action/AttachFile.py", line 570, in
_do_upload
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] target, bytes =
add_attachment(request, pagename, target, file_upload.stream,
overwrite=overwrite)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/action/AttachFile.py", line 226, in
add_attachment
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] send_event(event)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/events/__init__.py", line 257, in
send_event
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] retval = handle(event)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/events/xapian_index.py", line 81, in
handle
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1]
handle_attachment_change(event)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/events/xapian_index.py", line 68, in
handle_attachment_change
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1]
index.update_item(event.pagename, event.filename)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/search/builtin.py", line 147, in
update_item
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1]
self.do_queued_updates()
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/search/Xapian/indexing.py", line 218, in
do_queued_updates
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1]
self._index_attachment(request, connection, pagename, attachmentname,
mode='update')
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/search/Xapian/indexing.py", line 467, in
_index_attachment
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] mimetype, att_content
= self.contentfilter(filename)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/search/builtin.py", line 203, in
contentfilter
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] data = execute(self,
filename)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/filter/application_pdf.py", line 20, in
execute
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] return
execfilter("pdftotext -q -enc UTF-8 %s -", filename)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/filter/__init__.py", line 44, in
execfilter
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] data, errors, rc =
exec_cmd(filter_cmd, timeout=300)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/util/SubProcess.py", line 235, in
exec_cmd
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] data, errors =
p.communicate(input, timeout=timeout)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/util/SubProcess.py", line 88, in
communicate
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] return
self._communicate(input)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] File
"/usr/lib/pymodules/python2.5/MoinMoin/util/SubProcess.py", line 170, in
_communicate
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] rlist, wlist, xlist =
select.select(read_set, write_set, [], timeout)
[Mon Jan 25 18:14:46 2010] [error] [client 10.1.1.1] NameError: global name
'timeout' is not defined
# HG changeset patch
# User Thomas Waldmann <tw AT waldmann-edv DOT de>
# Date 1263941977 -3600
# Node ID 3e6b8234861cbbbec3028552eff2c888ad669882
# Parent 9652b2e16a10611478fdb1215bffcc43d56be60f
partially revert 0dd02729b3b5 (self.timeout related changes caused
AttributeError)
diff -r 9652b2e16a10 -r 3e6b8234861c MoinMoin/util/SubProcess.py
--- a/MoinMoin/util/SubProcess.py Tue Jan 19 00:46:31 2010 +0100
+++ b/MoinMoin/util/SubProcess.py Tue Jan 19 23:59:37 2010 +0100
@@ -67,6 +67,8 @@
communicate() returns a tuple (stdout, stderr)."""
+ self.timeout = timeout
+
# Optimization: If we are only using one pipe, or no pipe at
# all, using select() or threads is unnecessary.
if [self.stdin, self.stdout, self.stderr].count(None) >= 2:
@@ -111,9 +113,9 @@
self.stdin.close()
if self.stdout:
- stdout_thread.join(timeout)
+ stdout_thread.join(self.timeout)
if self.stderr:
- stderr_thread.join(timeout)
+ stderr_thread.join(self.timeout)
# if the threads are still alive, that means the thread join timed
out
timed_out = (self.stdout and stdout_thread.isAlive() or
@@ -167,7 +169,7 @@
input_offset = 0
while read_set or write_set:
try:
- rlist, wlist, xlist = select.select(read_set, write_set,
[], timeout)
+ rlist, wlist, xlist = select.select(read_set, write_set,
[], self.timeout)
except select.error, e:
if e.args[0] == errno.EINTR:
continue