Picklist Dropdown freezes in endless loop

Hello guys!

Since upgrading to the current Toad 15.0.97 we are experiencing problems with the Picklist Dropdown. This is the window, which opens automatically or on pressing CTRL + T (default hotkey) when typing a query or code to offer code completion.

What we experience are several forms of this feature freezing or being caught in an endless loop, when it seemingly tried to load suggestions. Sometimes it is able to load suggestions, but then it freezes upon executing the query.

I have appended a GIF of this happening. As soon as it freezes it never comes back (or at least it takes > 5 minutes to do so :laughing: ).
Since the Toad instance has to be killed I can't provide a stacktrace, but if some info may be in some tmp or debug files, I am happy to provide them.

asd

edit: I was unable to find a topic which describes this issue, but if I missed it and this is a duplicate or already fixed, then please just tell me! :slight_smile:

I know this happens but haven't been able to reproduce it or determine the cause.

There is a way that you can help me debug this.

  1. Go to Help -> About and type in: freeze (there is no place to type it in, just open the window and start typing)
  2. A "freeze detect" dialog will appear. Check the "report app freeze as error" box and then hit OK to get out of that dialog and the About window.
  3. Freeze detection is now enabled until the next time Toad restarts.
  4. Go into the editor and see if you can reproduce the problem.
  5. if Toad is busy for more than 15 seconds, you will get a dialog like this:
    image
  6. Uncheck "Restart" and click "click here"
  7. You'll then see something like this:
  8. Check "Copy to clipboard" (don't just make a screen shot of it like I did!) and click OK.
  9. Come back here and paste the contents on your clipboard, or email it to me at john.dorlon@quest.com

Hopefully the call stack will give us what we need to solve this.

Thank you

-John

I was able to reproduce a freeze during Code Insight. Here is my call stack, I hope it can help to investigate the possible error.

CI.Freeze.elf.txt (110.9 KB)

Hello John,

I was also able to reproduce it, following the steps you provided. It was done using a freshly opened Toad instance, so no other SQLs or so were executed.

I hope this helps!

log.txt (99.8 KB)

Your call stacks are a little different, but it looks like in both cases, our 3rd party Oracle access library is trying to enter a critical section (meaning, all other threads are paused) but that is hanging...I think because there is some other code that has already entered a critical section and never released it.

Were there any errors or connection timeouts at any point before the freeze happened? Or is it possible that your connection had timed out when the freeze took place?

Also (and perhaps more importantly), please let me know what else is going on in Toad. For example, @urban.tamas, I see that you have dbms_output running. If you turn off dbms_output, do the freezes stop? Are there any other windows or processes in Toad doing anything in the background?

Thanks.

I've added some more debug info for the next beta to help identify which threads are clashing. If you use the beta please give it a try after the next beta is available (should be Monday Dec 13) and send an updated error log. Thanks.

Also, please try this and see if it helps:
Go to Options -> Editor -> Code Assist.
Check "Use Background Database Session"

I tried to add an extra filter criteria to the middle of the WHERE condition. I typed the table alias, and after pressing the dot sign, the pop-up list opened automatically. Freezing occurred when I hit the TAB key in the list. After that I tried to close TOAD and clicked on "Try to restore program" in the list.

Under Options|Editor|Code assist Accept choices options (space, tab) are checked. The DB connection was stable in my situation.

Thanks for the info. I tried that repeatedly just now but no freeze. I had dbms output enabled and auto-refreshing every second because your call stack showed fetching of dbms_output.

Please try adding the new filter in the position where the existing filter already exists (e.g. at row start, then add your table alias, then hit Ctrl + T, and select a column name from the list with space)

Like this? No freeze...

I also went back and added more at the beginning of the d.DEPTNO line after code assist added it.

I sent you a screenshot offline. Try to add your new filter at line 3, starting at the position right before "e.deptno".

Tamas, did you try the "Use Background Database Session" option yet in the Code Assist options? Any change with that in place?

@Kuvick123 try going to Options -> editor -> code insight and turn off join suggestions.

Let me know if that makes the freezes stop. Tamas said that helped him.

We have exchanged some message with John. He suggested me to turn off "join suggestions". I think this had caused the freeze.

and "use background database session" option was on for me.

Then try UNchecking "use background database session". I just checked it an got an access violation in there. with that option unchecked I never could reproduce any problem (even with join suggestions on)

Turning off the background session option and select a value from populated list with space also causes a freeze for me. Join suggestion is ON.

I restarted Toad application after I unchecked the background option value. I didn't get an AV, it said I need to restart Toad.

Hello guys!

Sorry for the late reply, my country had a national holiday yesterday.
I've now tried both:

Use Background Database session
This one "moves" the problem so to say. When loading the table names for auto suggestion (like in the Gif I submitted), no freeze occurs and suggestions are loaded instantly.
But when it comes to the join condition, Toad takes quite some time (~20 seconds) to load the data, but is able to without freeze.

Disable Join suggestions
This one solved it for me as well. Suggestions now pop up nearly instantly.

I also created a reminder to install the newest beta next week and test it again. For my callstack: I used a freshly opened Toad instance with no additional processes running in the background (that I am aware of). I simply copy pasted the query into the first editor field and recreated the bug.

Thank you @urban.tamas and @Kuvick123. For some reason I am not able to reproduce this but @mstaszew can reproduce it easily. We think we know what the problem is, but it is not a simple fix.

In the meantime, at least you can uncheck join suggestions.

We'll fix it as soon as we can.

1 Like

Hello guys!

Just following this thread up, as requested.
I've installed the newest Beta (released yesterday) and tried to reproduce this issue.
It took me quite a while to reproduce, because the query with which I initally provoked the error now did not trigger freeze detection.

So I did it with another query and the freeze detection was triggered, when code insight was triggered after typing an alias for a table name, e.g.
SELECT * FROM DUAL my_alias -> press CTRL + T

Code Insight Settings were:
Use Background connection: unchecked
Include Joins: checked

I hope this helps to confirm the suspicion you guys already have! :slight_smile:

log_ToadBeta.txt (92.1 KB)