cursor.execute() stays blocked on a weird statement without propagating ORA-01652

ConcreteVitamin <[email protected]> Sat, 1 May 2021 22:45:43 -0700
Newsgroups gmane.comp.python.db.cx-oracle
Message-ID <CAG2+eoh-9GGww=cLhrb08X6V2OYLGCj49D872R1ZAey14dLidg@mail.gmail.com>
--===============1787581564602130796==
Content-Type: multipart/alternative; boundary="000000000000c6546905c1525b05"

--000000000000c6546905c1525b05
Content-Type: text/plain; charset="UTF-8"

 Hi there,

I've a weird statement that's pretty expensive.  Entering this SQL
statement in sqlplus eventually leads to this error:

    ERROR at line 1:
    ORA-01652: unable to extend temp segment by 128 in tablespace TEMP

This is expected & good.

However, using cx_Oracle, specifically using

    cursor.execute(same_statement)

would result in the same amount of work being done, and at some point the
CPU utilization on the server stopped -- which meant ORA-01652 has happened
-- but the cursor.execute(...) call stays blocked without raising an
exception.  This makes the app stay in a stuck state.  At that point it
doesn't respond to Ctrl-C SIGINT.

I've tried export DPI_DEBUG_LEVEL=64 and there are no messages being
printed.

What's wrong?  Is it possible to enable an exception to be raised?

Server: 19c [where sqlplus was run]
cx_Oracle: 8.1 [different host from the server; using same DSN as sqlplus]

Thanks.

--000000000000c6546905c1525b05
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">=C2=A0Hi there,<div><br></div><div>I&#39;ve a weird statem=
ent that&#39;s pretty expensive.=C2=A0 Entering this SQL statement in sqlpl=
us eventually leads to this error:</div><div><br></div><div>=C2=A0 =C2=A0 E=
RROR at line 1:<br>=C2=A0 =C2=A0 ORA-01652: unable to extend temp segment b=
y 128 in tablespace TEMP<br></div><div><br></div><div>This is expected &amp=
; good.=C2=A0=C2=A0</div><div><br></div><div>However, using cx_Oracle, spec=
ifically using=C2=A0</div><div><br></div><div>=C2=A0 =C2=A0 cursor.execute(=
same_statement)</div><div><br></div><div>would result in the same amount of=
 work being done, and at some point the CPU utilization on the server stopp=
ed -- which meant=C2=A0ORA-01652 has happened -- but the cursor.execute(...=
) call stays blocked without raising an exception.=C2=A0 This makes the app=
 stay in a stuck state.=C2=A0 At that point it doesn&#39;t respond to Ctrl-=
C SIGINT.</div><div><br></div><div>I&#39;ve tried export=C2=A0DPI_DEBUG_LEV=
EL=3D64 and there are no messages being printed.</div><div><br></div><div>W=
hat&#39;s wrong?=C2=A0 Is it possible to enable an exception to be raised?=
=C2=A0=C2=A0</div><div><br></div><div>Server: 19c [where sqlplus was run]</=
div><div>cx_Oracle: 8.1 [different host from the server; using same DSN as =
sqlplus]</div><div><br></div><div>Thanks.</div></div>

--000000000000c6546905c1525b05--


--===============1787581564602130796==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============1787581564602130796==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
cx-oracle-users mailing list
cx-oracle-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/cx-oracle-users

--===============1787581564602130796==--