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've a weird statem=
ent that'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 &=
; 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't respond to Ctrl-=
C SIGINT.</div><div><br></div><div>I've tried export=C2=A0DPI_DEBUG_LEV=
EL=3D64 and there are no messages being printed.</div><div><br></div><div>W=
hat'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==--