(no commit message)
[ikiwiki] / doc / bugs / rst_plugin_hangs_when_used_with_Python_3.mdwn
1 During ikiwiki make phase the rst process hangs:  
2 [ps output](http://dpaste.com/21TQQKT)  
3 [gdb backtrace 1](http://dpaste.com/0VQBW6D)   
4 [gdb backtrace 1](http://dpaste.com/1VHS88Y)  
5   
6 working with python 2.7  
7 [http://dpaste.com/0985A91](http://dpaste.com/0985A91)  
8 not working with python3.3~3.4  
9 [http://dpaste.com/0ACNK3W](http://dpaste.com/0ACNK3W)  
10   
11 > Retitled this bug report since it seems to be specific to Python 3.
12 >
13 > The `rst` plugin is probably more commonly used with Python 2.
14 > It seems likely that there is some Python-3-specific bug in `proxy.py`,
15 > perhaps introduced by [commit 154c4ea
16  "properly encode and decode from/to utf8 when sending rpc to ikiwiki"](
17 http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=154c4ea9e65d033756330a7f8c5c0fa285380bf0).
18 >
19 > I can reproduce this on Debian by installing `python3-docutils`
20 > and changing the first line of `plugins/proxy.py`, the first
21 > line of `plugins/pythondemo`, the first line of `plugins/rst`
22 > and the `system()` call in `t/rst.t` to use `python3` instead
23 > of `python`. --[[smcv]]
24
25 looks like the problem is in proxy.py  
26 ml = _IkiWikiExtPluginXMLRPCHandler._read(in_fd).decode('utf8')  
27
28 without decode('utf8') is working
29
30 > That call was introduced
31 > [[to fix a bug under Python 2|bugs/crashes_in_the_python_proxy_even_if_disabled]]
32 > so it cannot just be removed, but I've put a proposed branch on
33 > [[this related bug|bugs/pythonproxy-utf8_again]]. [[!tag patch]] --smcv
34
35 tested and fixed with patch [http://git.pseudorandom.co.uk/smcv/ikiwiki.git/commitdiff/38bd51bc1bab0cabd97dfe3cb598220a2c02550a](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/commitdiff/38bd51bc1bab0cabd97dfe3cb598220a2c02550a) and patch [http://git.pseudorandom.co.uk/smcv/ikiwiki.git/commitdiff/81506fae8a6d5360f6d830b0e07190e60a7efd1c](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/commitdiff/81506fae8a6d5360f6d830b0e07190e60a7efd1c)
36
37 > [[done]], pending release --[[smcv]]