diff --git a/doc/bugs/Error_with_external_plugins.mdwn b/doc/bugs/Error_with_external_plugins.mdwn index f2873692e..35245ace8 100644 --- a/doc/bugs/Error_with_external_plugins.mdwn +++ b/doc/bugs/Error_with_external_plugins.mdwn @@ -62,3 +62,23 @@ Regards, > the plugin that something went wrong. > > -- [[Louis|spalax]] + +>> Update: This can actually be a [proxy](https://github.com/joeyh/ikiwiki/blob/9c910a76e70111c50ba8cbb518277f809fc1d09d/plugins/proxy.py) error. Indeed: +>> +>> - Ikiwiki sends a `methodCall` message to the plugin (which is a call to the +>> `preprocess` function); +>> - the plugin sends a `methodCall` message to ikiwiki (which is a call to the +>> `srcfile` function); +>> - Ikiwiki answers with a `methodCall` message: +>> - Ikiwiki answers this because the function call failed, and it is already +>> processing the next directive; +>> - the plugin thinks that it is its request answer, and misinterprets it. +>> +>> Thus, I think that the bug is in the `proxy.py` python file. On receiving a +>> `methodCall` (instead of a `methodResponse`) as an answer to a `methodCall` +>> request, `proxy.py` should notice the type of request, and raise an exception, +>> to exit any pending function execution, and call the requested function. +>> +>> I know Python better than I know Perl, so I can try to fix this. +>> +>> -- [[Louis|spalax]]