aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/bugs/Error_with_external_plugins.mdwn20
1 files changed, 20 insertions, 0 deletions
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]]