At one time I had a support ticket in with Dell Software to fix this issue. The problem was that, at that time I did not have time to try to figure out what the specific steps were that would reproduce this problem. Today, I finally took the time to come up with the steps to reproduce this problem. The only bad thing is that I was not able to reproduce the problem on my co-worker’s computer even though he has had the same problem as I am describing. For him, the problem seemed to clear up after upgrading to 12.5.1.1. For me the problem persists even after upgrading to 12.5.1.1. I have this problem on version 12.5.1.1 on both my laptop and my desktop.
Below are the “steps to reproduce” that consistently crash toad on both of my machines.
–Oracle Database 11.2.0.3
–2-Node RAC running on Linux
–tried against the following test between two different databases and results did not change between databases
–reproduced on Toad for Oracle - Expert Edition 12.5.0.99 with DB Admin Module Add-on (My machine)
–reproduced on Toad for Oracle - Expert Edition 12.5.1.1 with DB Admin Module Add-on (My machine)
–could not reproduce on Toad for Oracle - Expert Edition 12.5.1.1 with DB Admin Module Add-on (co-worker’s machine)
–Limiting Other Resources (idle timeout)
http://docs.oracle.com/cd/E11882_01/network.112/e36292/users.htm#DBSEG20024
"Note:
Oracle Database does not constantly monitor the elapsed idle time or elapsed connection time
Doing so reduces system performance. Instead, it checks every few minutes. Therefore, a session
can exceed this limit slightly (for example, by 5 minutes) before Oracle Database enforces the limit and terminates the session."
–sniped session status
http://docs.oracle.com/cd/E11882_01/server.112/e40402/dynviews_3016.htm#REFRN30223
"SNIPED - An inactive session that has exceeded some configured limits (for example, resource limits specified for the resource
manager consumer group or idle_time specified in the user’s profile). Such sessions will not be allowed to become active again."
–DROP PROFILE TOAD_TIMEOUT_CRASH_TEST_PROFIL CASCADE;
CREATE PROFILE TOAD_TIMEOUT_CRASH_TEST_PROFIL LIMIT
SESSIONS_PER_USER 10
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME 1440
IDLE_TIME 1
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PRIVATE_SGA UNLIMITED
FAILED_LOGIN_ATTEMPTS 6
PASSWORD_LIFE_TIME 90
PASSWORD_REUSE_TIME 9999
PASSWORD_REUSE_MAX 9999
PASSWORD_LOCK_TIME 9999
PASSWORD_GRACE_TIME 3
PASSWORD_VERIFY_FUNCTION null;
–DROP USER TOAD_CRASH_TEST_USER CASCADE;
CREATE USER TOAD_CRASH_TEST_USER
IDENTIFIED BY toadcrashes
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE TOAD_TIMEOUT_CRASH_TEST_PROFIL
ACCOUNT UNLOCK;
– 1 Roles for TOAD_CRASH_TEST_USER
ALTER USER TOAD_CRASH_TEST_USER DEFAULT ROLE ALL;
– 1 System Privilege for TOAD_CRASH_TEST_USER
GRANT UNLIMITED TABLESPACE TO TOAD_CRASH_TEST_USER;
GRANT CREATE SESSION TO TOAD_CRASH_TEST_USER;
– 1 set Toad to automatically open a schema browser window and an editor window for new connections
– 2 set the editor window to be the last window to be opened so that it will be the window that has focus (by default) after a new connection is made
– 3 set “Execute queries in threads” to ENABLED (in the “Oracle / Transactions” section of the Toad Options settings).
– 4 set “Show only buttons for the current connection on Window Bar” to DISABLED (in the “Toolbars/Menus / Toolbar” section of the Toad Options settings)
– 5 close Toad
– 6 open Toad
– 7 login as TOAD_CRASH_TEST_USER/toadcrashes
– 8 Using the same toad.exe instance as in step 7, login a second time to the same database using another account that has enough privileges to query gv$session view manually (or using Toad Session Browser)
– 9 View the “status” of TOAD_CRASH_TEST_USER session(s) using Toad Session Browser from the login that you performed in step 7 within the same toad.exe instance
– or
– by running the following query from the login that you performed in step 7 within the same toad.exe instance
select * from gv$session
where username = 'TOAD_CRASH_TEST_USER'
;
– 10 Keep querying / refreshing the data in step 9 until all of the all sessions from the TOAD_CRASH_TEST_USER user to change to “SNIPED” status (meaning the idle session timeout has occurred and that users sessions have been disconnected)
– 11 After all of TOAD_CRASH_TEST_USER’s database sessions are in “SNIPED” status, click on the “editor” window from the TOAD_CRASH_TEST_USER’s session. (Do not click on the editor window of the NON-“TOAD_CRASH_TEST_USER” session that you are using to view the session statuses. That will not trigger the crash.)
It appears to be the SWITCHING OF FOCUS from a Toad window that is associated with an ACTIVE / INACTIVE session OVER TO a Toad window that is associated with a session that is in SNIPED status that triggers the crash.