Freezes on long SOQL query

Issue #580 resolved
Derek Wiers created an issue

Admittedly, some of this may come from just slow performance on Salesforce's side, but I did find some odd behavior in IC regarding long-running queries:

Reproduce: 1. Run a query in the query editor that you expect to take a long time (several minutes). The attached screenshot even though we don't have many ContentVersions (<200) and it had a limit of 20 - it still took around 5-10 minutes...that was weird...anyway...

  1. For the first minute or two, the status bar on the bottom is responsive (you can stop the query if need be, the spinner moves, etc)

  2. After several minutes (never timed it), everything in IJ becomes unresponsive, Mac system monitor flags IJ as unresponsive, etc. This occurs until the response comes back from the server.

  3. Response comes back, everything else acts like nothing happened!

Screen Shot 2017-03-27 at 12.54.27 PM.png

Comments (4)

  1. Scott Wells repo owner

    Interesting. I'll take a look at why this might be happening. As for the query that takes so long to run, is that the case when it's run in other tools, e.g., Developer Console? All that Illuminated Cloud is doing is using PartnerApi.query() with the supplied SOQL query string to execute the query, then processing the result set for presentation. It does this under a backgroundable progress indicator, so it should run on a separate thread and therefore not block any other part of the IDE's UI. I'd be very interested in seeing a thread dump of the IDE while it's in this state if it's convenient for you to generate one.

  2. Scott Wells repo owner

    Oh, and slow performance on the Salesforce side shouldn't ever cause the IDE to get into a bad state like this. You might see operations run slowly overall, but the IDE should be pretty much idle waiting for the server to complete whatever it's doing. Whatever is going on here is for me to fix (at least the parts that are under my control).

  3. Scott Wells repo owner

    I was able to reproduce this. It happens when really large responses are processed to populate the result table model. I can put that behind a progress dialog so at least the user will know what's happening.

  4. Log in to comment