Hello, 

I am using Monetdb as the query engine of an application currently in development. I am connecting to monetdb via a jdbc connection. 

I can easily reproduce a scenario where monetdb gets stuck on a query, and never complete execution.

Although reproducible, the issue is non deterministic, and it can occur while executing different queries, or not occur at all. 

When it happens I can see the thread stuck at 

I extracted the queries submitted to monetdb, and execute them via a standalone client (both the native client and a jdbc-based one) rather than our application, but I have been unable to reproduce the issue that way. I guess timing is important.

The problem still occur even when queries are submitted sequentially and setting gdk_nr_threads=1 and sql_optimizer=sequential_pipe.

The issue happens in Jul 2017-SP3 bugfix release (11.27.11), running on a Windows 7 machine. I have not tried 11.27.13, but by looking at the bug fixes I can't see anything relevant to this issue.

Is there something that I can try, or a way to gather more information about what is happening ?

I can share both the data, and the complete list of queries used during this scenario.

Thanks,

Best regards,

Manuel Pagliai
Visokio Ltd
www.visokio.com 

+44 20 7351 4646

P.S. This is the stack-trace of the thread submitting the query when this happens:

at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
- locked <0x00000000cae0b730> (a java.io.BufferedInputStream)
at nl.cwi.monetdb.mcl.net.MapiSocket$BlockInputStream._read(Unknown Source)
at nl.cwi.monetdb.mcl.net.MapiSocket$BlockInputStream.readBlock(Unknown Source)
at nl.cwi.monetdb.mcl.net.MapiSocket$BlockInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
- locked <0x00000000cae13810> (a java.io.InputStreamReader)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.readLine(BufferedReader.java:324)
- locked <0x00000000cae13810> (a java.io.InputStreamReader)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at nl.cwi.monetdb.mcl.io.BufferedMCLReader.readLine(Unknown Source)
at nl.cwi.monetdb.mcl.io.BufferedMCLReader.waitForPrompt(Unknown Source)
- locked <0x00000000cae137d8> (a nl.cwi.monetdb.mcl.io.BufferedMCLReader)
at nl.cwi.monetdb.jdbc.MonetConnection$ResponseList.executeQuery(Unknown Source)
- locked <0x00000000cae0b430> (a nl.cwi.monetdb.mcl.net.MapiSocket)
at nl.cwi.monetdb.jdbc.MonetConnection$ResponseList.processQuery(Unknown Source)
at nl.cwi.monetdb.jdbc.MonetStatement.internalExecute(Unknown Source)
at nl.cwi.monetdb.jdbc.MonetStatement.execute(Unknown Source)
at nl.cwi.monetdb.jdbc.MonetStatement.executeQuery(Unknown Source)