Re: **SOLVED** objectsWithFetchSpecification freezes during a slow call

Mark Gowdy <[email protected]> Fri, 9 Aug 2013 17:42:37 +0100
Newsgroups gmane.comp.web.webobjects.wonder-disc
Message-ID <[email protected]>
Well, 

By examining the state of the hung instance, we saw that the mysql connector class ReadAheadInputStream was just sitting with a constant socketRead.

So, it turned out that it is a problem in the mysql-connector-java-3.1.8.jar
See:
	- http://bugs.mysql.com/bug.php?id=9515
	- http://bugs.mysql.com/bug.php?id=31353

Those links describe the bug i.e. Hangs in ReadAheadInputStream.fill() 

We upgraded from:
mysql-connector-java-3.1.8.jar 
	to 
mysql-connector-java-5.1.26.jar
	
and the problem went away.

This may also have been the cause of an occasional freezing of our instances (which was happening infrequently and randomly).  We had to force-quit them to get them going again.


Thanks for you help in this.

Mark Gowdy


On 9 Aug 2013, at 06:50, Chuck Hill wrote:

> 
> On 2013-08-08, at 12:21 PM, Mark Gowdy wrote:
> 
>> On 8 Aug 2013, at 19:21, Chuck Hill <[email protected]> wrote:
>> 
>>> Hi Mark,
>>> 
>>> It freezes for a while (10+ seconds) or it freezes forever?  
>> 
>> Forever.  No errors. It just doesn't progress past the fetch command. 
>> 
>>> Have you tried a "sudo jstack -F <process id> to see where it is frozen?  
>> 
>> Will do, but not right now.
>> (Waiting for my main course to arrive.)
>> 
>>> It does sound like a timeout thing, perhaps at the JDBC level.  
>> 
>> I think so too, but not sure how to fix/increase it. 
> 
> The jstack may suggest where it is happening.
> 
>> 
>>> Does CREATED_DATE have an index?  
>> 
>> No, and we will add one.
>> But the point is, it should not freeze if MySql takes a few second too long too respond. 
> 
> No, it should not.  I have several apps that have much longer running queries and it is not a problem for EOF.  I am pretty sure you will find the problem lies in MySQL.
> 
> 
> Chuck
> 
> 
>> 
>>> CREATED_DATE, QUEUE_ITEM_PK would be the fastest.
>>> 
>>> Chuck
>>> 
>>> 
>>> On 2013-08-08, at 10:22 AM, Mark Gowdy wrote:
>>> 
>>>> Hi, 
>>>> 
>>>> Have been trying to track down the cause of a very strange problem we have been having.
>>>> 
>>>> Using the MySQLPlugIn in Wonder, if we do a fetch (or anything SQL related), and it takes a while for MySQL to respond, the instance freezes (it does not get past the objectsWithFetchSpecification line).
>>>> We originally thought it was something to do with the memory & tables becoming large, but now we are thinking it is a response time-out thing.
>>>> 
>>>> We can reproduce the problem quite easily now by specifying a sort ordering, we will give MySQL a bit of work to do (and slow down the response).
>>>> 
>>>> So, if we run the generated SQL directly in Sequel Pro:
>>>> 
>>>> (1) Including the slow field (CREATED_DATE)- Takes about 10 seconds for MySQL to return some values.
>>>> SELECT RTRIM(t0.CONFIG), t0.CREATED_DATE, t0.IDENTIFIER_1, t0.IDENTIFIER_2, t0.IDENTIFIER_3, t0.IDENTIFIER_4, t0.ITEM_DATE, t0.MODIFIED_DATE, t0.QUEUE_DETAILS_FK, t0.QUEUE_ITEM_PK, t0.QUEUE_TAG, t0.STATUS FROM queue_item t0 WHERE (t0.QUEUE_TAG = 'mb:nui:RENDER_MEDIA' AND (t0.ITEM_DATE < '2013-08-08 16:46:17 Etc/GMT' OR t0.ITEM_DATE is NULL)) ORDER BY t0.CREATED_DATE ASC, t0.QUEUE_ITEM_PK ASC LIMIT 50
>>>> 
>>>> (2) Remove the slow sort field - Takes about 72ms for MySQL to return some values.
>>>> SELECT RTRIM(t0.CONFIG), t0.CREATED_DATE, t0.IDENTIFIER_1, t0.IDENTIFIER_2, t0.IDENTIFIER_3, t0.IDENTIFIER_4, t0.ITEM_DATE, t0.MODIFIED_DATE, t0.QUEUE_DETAILS_FK, t0.QUEUE_ITEM_PK, t0.QUEUE_TAG, t0.STATUS FROM queue_item t0 WHERE (t0.QUEUE_TAG = 'mb:nui:RENDER_MEDIA' AND (t0.ITEM_DATE < '2013-08-08 16:46:17 Etc/GMT' OR t0.ITEM_DATE is NULL)) ORDER BY t0.QUEUE_ITEM_PK ASC LIMIT 50
>>>> 
>>>> Now, in our app, during the objectsWithFetchSpecification(..)
>>>> (1) freezes the app totally.. no error messages, just frozen.
>>>> (2) works fine.
>>>> 
>>>> Any thoughts?
>>>> 
>>>> Thanks, 
>>>> 
>>>> Mark
>>>> 
>>>> 
>>>> ------------------------------------------------------------------------------
>>>> Get 100% visibility into Java/.NET code with AppDynamics Lite!
>>>> It's a free troubleshooting tool designed for production.
>>>> Get down to code-level detail for bottlenecks, with <2% overhead. 
>>>> Download for free and get started troubleshooting in minutes. 
>>>> http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk_______________________________________________
>>>> Wonder-disc mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/wonder-disc
>>> 
>>> -- 
>>> Chuck Hill             
>>> Executive Managing Partner, VP Development and Technical Services
>>> 
>>> Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.    
>>> http://www.global-village.net/gvc/practical_webobjects
>>> 
>>> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest Growing Companies in B.C! 
>>> 
>>> Global Village Consulting ranks 44th in 25th annual PROFIT 500 ranking of Canada’s Fastest-Growing Companies by PROFIT Magazine!
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
> 
> -- 
> Chuck Hill             
> Executive Managing Partner, VP Development and Technical Services
> 
> Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.    
> http://www.global-village.net/gvc/practical_webobjects
> 
> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest Growing Companies in B.C! 
> 
> Global Village Consulting ranks 44th in 25th annual PROFIT 500 ranking of Canada’s Fastest-Growing Companies by PROFIT Magazine!
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 


------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk