Connection reset error
hardiksondagar opened this issue · comments
For some queries, it is resetting connection in read package method. Same query works in pymssql
and pyodbc
.
Traceback (most recent call last):
File "/home/hardiksondagar/sqlserver-sh/tds.py", line 14, in <module>
cur.execute(query)
File "/home/hardiksondagar/sqlserver-sh/env/lib/python3.9/site-packages/pytds/__init__.py", line 732, in execute
self._execute(operation, params)
File "/home/hardiksondagar/sqlserver-sh/env/lib/python3.9/site-packages/pytds/__init__.py", line 721, in _execute
self._session.find_result_or_done()
File "/home/hardiksondagar/sqlserver-sh/env/lib/python3.9/site-packages/pytds/tds.py", line 1605, in find_result_or_done
marker = self.get_token_id()
File "/home/hardiksondagar/sqlserver-sh/env/lib/python3.9/site-packages/pytds/tds.py", line 1549, in get_token_id
marker = self._reader.get_byte()
File "/home/hardiksondagar/sqlserver-sh/env/lib/python3.9/site-packages/pytds/tds.py", line 170, in get_byte
return self.unpack(_byte)[0]
File "/home/hardiksondagar/sqlserver-sh/env/lib/python3.9/site-packages/pytds/tds.py", line 165, in unpack
buf, offset = readall_fast(self, struc.size)
File "/home/hardiksondagar/sqlserver-sh/env/lib/python3.9/site-packages/pytds/tds_base.py", line 577, in readall_fast
buf, offset = stm.read_fast(size)
File "/home/hardiksondagar/sqlserver-sh/env/lib/python3.9/site-packages/pytds/tds.py", line 145, in read_fast
self._read_packet()
File "/home/hardiksondagar/sqlserver-sh/env/lib/python3.9/site-packages/pytds/tds.py", line 232, in _read_packet
received = self._transport.recv_into(self._bufview[pos:], _header.size - pos)
ConnectionResetError: [Errno 104] Connection reset by peer
server info
product_version - 201326633
tds_version - 1879048192 (7.0)
mars_enabled - False
Reducing blocksize
from 4096 to 1024 in pytds.connect, fixes the issue.
One more interesting finding is, this issue comes only when query length is more than 600 characters. Weird
Is there a way to reproduce this issue reliably?