Picklist Dropdown freezes in endless loop

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)

Thanks @kuvich123.

@Kuvick123 or @urban.tamas - If you run a long running query in the Editor using F9 and cancel it, does it cancel or does Toad hang or does it cancel in a timely manner? Using F9 is key here so if you normally run queries using Execute as Script (F5) then please try using F9 and cancelling. If you have the "Execute queries in threads" option checked (Oracle | Transactions page in Options) you can just hit ESC immediately to cancel. Toad will be responsive to mouse/keyboard clicks, but the Cancel button remains enabled and the green throbber at the right of Toad's status bar remains active. If the "Execute queries in threads" option is unchecked you can click Cancel on the progress dialog that shows and if Toad hangs the dialog never goes away and the timer continuously increments.

I spent some time last week and today trying to get to the bottom of this hang and what I'm seeing is that it's very specific to one of my databases using only a 19c or newer client. Coincidentally I cannot cancel a running query on this database using the same client combination. When Code Insight hangs for me it's after it has been cancelled once. This doesn't mean I have to explicitly cancel it, but just in writing the query it may run/cancel on its own. I can force the issue by using CTRL+T, clicking the cancel button, and then CTRL+T again.

Hello Michael,

I've tried recreating the issue you described, but was unable to do so in an freshly opened instance of Toad.

I am however familiar with something similar: it happens regularly (not often but a 3-4x a week) to me when doing some analysis on production, running some queries and then sometimes when I want to cancel a long running query, the cancel doesn't succeed and I need to use the kill session button. Not sure though if this is related to this bug or a normal use case?

@Kuvick123 / @urban.tamas - @JohnDorlon identified several changes that not only improve performance, but also eliminates the hang I was able to reproduce. On some databases the performance gains may be significant. I have a local XE db I do most of my base development against and the old and new code aren't even comparable. I went from multi-second load times down to ~200 ms using the same options. The change will be in Toad 15.1 and in next week's beta.

1 Like

@mstaszew did all the heavy lifting here. I just tossed him an idea and wrote a query.

We're both pretty excited about the change though.

Hello guys!

Wow, cool! Thank you for all the effort you guys put in, I am really looking forward to the next Beta! :smiley: