Hi Pablo,
A little addition: It is indeed possible to create deadlocks with the Client Module when using updating queries. I have added an example in our documentation [1]. In short: You should avoid addressing localhost:1984 if you are running the calling query in the same instance.
Hope this helps, Christian
[1] http://docs.basex.org/wiki/Client_Module
On Mon, Feb 29, 2016 at 8:14 PM, Strasser Pablo strasserpablo@bluewin.ch wrote:
Hi,
Thanks for your great software. Using basex 8.4. I found the following strange behaviour in client:query call. Calling a repository function which use client:query to call another repository function freeze the basex server if done on the server. The only way to stop the server is with a kill -9. However using the standalone client it work normally.
Trying to reproduce this problem I managed to get a similar problem using 2 repository test and test2. Where the first repo use a function of the second.
Do you have some idea how to investigate this problem? Is it a bug?
Code of test:
module namespace m = 'http://strasser-family.ch/test'; declare variable $m:c := client:connect('localhost', 1984, 'admin', 'admin');
declare function m:test(){ client:query($m:c, "import module namespace m = 'http://strasser-family.ch/test2%27;m:test()") };
Code of test2:
module namespace m = 'http://strasser-family.ch/test2';
declare function m:test() { <dummy/> };
usage code:
import module namespace m = 'http://strasser-family.ch/test'; m:test()
Have a nice evening.
Pablo