Skip to content

Commit 512826e

Browse files
Check for multiple probe/control/EOF packets being sent by the server.
1 parent d3e14f6 commit 512826e

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

doc/src/release_notes.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ Thin Mode Changes
1515

1616
#) Fixed bug that prevented binding data of types
1717
:data:`~oracledb.DB_TYPE_ROWID` and :data:`~oracledb.DB_TYPE_UROWID`.
18+
#) Internally, before a connection is returned from a pool, perform additional
19+
checks in order to avoid returning a dead connection from the pool.
1820

1921
Thick Mode Changes
2022
++++++++++++++++++

src/oracledb/impl/thin/pool.pyx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,8 +331,10 @@ cdef class ThinPoolImpl(BasePoolImpl):
331331
read_buf = conn_impl._protocol._read_buf
332332
if not read_buf._session_needs_to_be_closed:
333333
socket_list = [conn_impl._protocol._socket]
334-
read_socks, _, _ = select.select(socket_list, [], [], 0)
335-
if read_socks:
334+
while not read_buf._session_needs_to_be_closed:
335+
read_socks, _, _ = select.select(socket_list, [], [], 0)
336+
if not read_socks:
337+
break
336338
read_buf.check_control_packet()
337339
if read_buf._session_needs_to_be_closed:
338340
with self._condition:

0 commit comments

Comments
 (0)