TCP connection not closing properly leading to dangling CLOSE_WAIT state and system overload
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Bereich
- databases, networking
Rechercherichtung
Reproduziere beide Fälle mit Python 3.10.15, databricks-sql-python 3.1.2, den gezeigten sql.connect-Aufrufen und netstat, um die Socket-Zustände zu beobachten. Als abgeschlossen gilt die Aufgabe, wenn die Verbindungen nach dem Context Manager oder den expliziten close-Aufrufen ordnungsgemäß geschlossen werden, kein dauerhaft beibehaltenes CLOSE_WAIT-Socket vorhanden ist und die Client-Ressourcen freigegeben werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Testcase 1
Python 3.10.15 (main, Sep 7 2024, 18:35:33) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from databricks import sql
>>> sql.__version__
'3.1.2'
>>> with sql.connect(server_hostname = "<HIDE>", http_path = "<HIDE>", access_token = "<HIDE>") as connection:
... with connection.cursor() as cursor:
... cursor.execute("select * from table")
... column_names = [desc[0] for desc in cursor.description]
... query_out = [dict(zip(column_names, row)) for row in cursor.fetchall()]
...
...
<databricks.sql.client.Cursor object at 0x7f88551c14e0>
>>> query_out
[{"sometime" : "something}]
On the sidelines, the network connection for this process (after with clause gets finished), remain in ESTABLISHED state and then moves to CLOSE_WAIT state indefinitely.
Every 1.0s: netstat -apn | grep 1070099 asinha-vm-ubuntu-20-04-1: Wed Nov 20 02:43:13 2024
tcp 25 0 10.5.220.4:58078 so:me:ip:add:443 CLOSE_WAIT 1070099/python3
Testcase 2
Python 3.10.15 (main, Sep 7 2024, 18:35:33) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from databricks import sql
>>> sql.__version__
'3.1.2'
>>> connection = sql.connect(server_hostname = "<HIDE>", http_path = "<HIDE>", access_token = "<HIDE>")
>>> ## at this point a TCP connection got made as ESTABLISHED state ##
>>> cursor = connection.cursor()
>>> cursor.execute("select * from table")
<databricks.sql.client.Cursor object at 0x7f9d65db26b0>
>>> column_names = [desc[0] for desc in cursor.description]
>>> query_out = [dict(zip(column_names, row)) for row in cursor.fetchall()]
>>> cursor.close()
>>> connection.close()
>>> # even after close being called, the connection remains in ESTABLISHED state (for a long time) and then finally moves to CLOSE_WAIT state, which never changes.
Every 1.0s: netstat -apn | grep 1074808 asinha-vm-ubuntu-20-04-1: Wed Nov 20 02:49:36 2024
tcp 25 0 10.5.220.4:53810 so:me:ip:add:443 CLOSE_WAIT 1074808/python3
Connections should be closed properly, and all client resources should be freed properly.
- Vorherrschende Sprache
- Python
- Sterne
- 236
- Forks
- 162
- Ø Merge
- 13 Std. 13 Min.
- Gemergte PRs (30 T.)
- 23
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus databricks/databricks-sql-python
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
databricks/databricks-sql-python#1034 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
databricks/databricks-sql-python#1012 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Token federation: `_exchange_token` raises KeyError('access_token') on error responses, discarding the real failure reasonEvtl. vergeben @TangoEnSkai hat das vor 82 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
databricks/databricks-sql-python#904 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
databricks/databricks-sql-python#865 ·
Maintainer antworten meist innerhalb von 1 Tag
-
engineer-bot
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
databricks/databricks-sql-python#860 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in databricks/databricks-sql-python
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
AI bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
AUTO-MAS-Project/AUTO-MAS#1960 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
btclib-org/btclib-wallet#872 ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Bug]: Scheduled returns scan all accepted minion keys causing extreme loadEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offenbug needs-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
saltstack/salt#70789 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 87/100
btclib-org/btclib#3093 ·
Maintainer antworten meist innerhalb von 1 Tag