Skip to content

fix(tools): harden asynchronous JDBC downloads - #2687

Merged
openai0229 merged 2 commits into
OtterMind:mainfrom
HandSonic:fix/jdbc-download-daemon-threads
Sep 7, 2026
Merged

openai0229 merged 2 commits into
OtterMind:mainfrom
HandSonic:fix/jdbc-download-daemon-threads

Conversation

@HandSonic

@HandSonic HandSonic commented Aug 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Use daemon workers for asynchronous JDBC driver downloads so they cannot keep the JVM alive.
  • Publish completed downloads atomically and isolate concurrent temporary-file cleanup.

Validation

  • Focused tests: 9/9
  • Tools module tests: 72/72
  • Maven package

Fixes #2684

Latest-main verification (2026-09-04)

  • Rebased onto 144a04ee2; full tools suite passed (73 tests).n- The Linux CI-only race was traced to OkHttp temporarily renaming a daemon worker during its callback. The test now separates stable factory naming from actual callback daemon status; the focused suite passed 10 consecutive runs before the full suite.n- Combined with fix(jdbc): use configured driver download URLs #2695 using a semantic conflict resolution; full combined tools suite passed (76 tests), covering daemon workers, atomic publication, and dynamic runtime paths.

@HandSonic
HandSonic requested a review from openai0229 as a code owner August 12, 2026 00:57
@openai0229 openai0229 moved this to In Review in Chat2DB Community Aug 12, 2026
@HandSonic
HandSonic force-pushed the fix/jdbc-download-daemon-threads branch 2 times, most recently from f9b8490 to f4e2c03 Compare August 12, 2026 17:34
@HandSonic
HandSonic force-pushed the fix/jdbc-download-daemon-threads branch from f4e2c03 to 7d28b09 Compare August 19, 2026 20:16
openai0229
openai0229 previously approved these changes Aug 20, 2026

@openai0229 openai0229 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The daemon dispatcher and unique temporary-file plus atomic publish flow fix both reported failure modes, including cleanup after interrupted writes. Approved.\n\nNon-blocking follow-up: the response stream still has no maximum byte limit, so a future hardening change should cap driver downloads and delete the temporary file on overflow. Merge this before #2695, then rebase #2695 so its configured-URL changes retain this atomic-write behavior.

@openai0229
openai0229 dismissed their stale review August 20, 2026 03:45

Superseded by a corrected review because shell quoting corrupted the submitted text.

openai0229
openai0229 previously approved these changes Aug 20, 2026

@openai0229 openai0229 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The daemon dispatcher and unique temporary-file plus atomic publish flow fix both reported failure modes, including cleanup after interrupted writes. Approved.

Non-blocking follow-up: the response stream still has no maximum byte limit, so a future hardening change should cap driver downloads and delete the temporary file on overflow. Merge this before #2695, then rebase #2695 so its configured-URL changes retain this atomic-write behavior.

@openai0229
openai0229 merged commit 7bd84f5 into OtterMind:main Sep 7, 2026
16 of 17 checks passed
@openai0229 openai0229 moved this from In Review to Done in Chat2DB Community Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

bug(jdbc): async driver downloads keep the JVM alive and expose partial jars

2 participants