Bug #56411 | Socket Hangs When Fetching Large Result Set | ||
---|---|---|---|
Submitted: | 31 Aug 2010 15:26 | Modified: | 21 Jan 2013 9:11 |
Reporter: | Jon Felch | Email Updates: | |
Status: | Won't fix | Impact on me: | |
Category: | Connector / J | Severity: | S1 (Critical) |
Version: | 5.1.13 | OS: | Any |
Assigned to: | Alexander Soklakov | CPU Architecture: | Any |
[31 Aug 2010 15:26]
Jon Felch
[31 Aug 2010 15:34]
Jon Felch
Strangely adding an "order by" clause to the query removes the problem
[4 Oct 2010 15:53]
Mark Matthews
Does changing to use non-read-ahead work, i.e. "useReadAheadInput=false&useUnbufferedInput=false" change this behavior?
[4 Oct 2010 16:22]
Thomas Breitkreuz
Yes! useReadAheadInput=false is the switch that makes the things work :-)) Perhaps a deadlock between the read and the read ahead thread ...
[4 Oct 2010 16:40]
Mark Matthews
There's no separate thread. ReadAheadInput is essentially what BufferedInputStream should be (i.e. read into the buffer if data is available to read, but don't try and fill the buffer to capacity and block if no data is available). However, if inputStream.available() lies to us, we may block in a buggy way. There would be a lot of log output, but if you add traceProtocol=true to your JDBC URL and remove the "useReadAheadInput=false" and post the tail-end of it (a few working rows, and then when it hangs), that would be helpful in diagnosing exactly what's wrong.
[21 Jan 2013 9:11]
Alexander Soklakov
I close the report since there is no new input for 2 years. Please, feel free to reopen if problem still exists.
[7 Nov 2014 15:14]
Yves Gillet
I have reopened it with #74739. In my ase however the table has only 21 rows. Adding an order by also prevented the problem Please see some complete trace log attached.