Message-ID: From: "vlsi (@vlsi)" To: "pgjdbc/pgjdbc" Date: Tue, 30 Sep 2025 18:06:56 +0000 Subject: Re: [pgjdbc/pgjdbc] issue #3835: Virtual Thread pinned in PostgreSQL JDBC Driver 42.7.8 In-Reply-To: References: List-Id: X-GitHub-Author-Login: vlsi X-GitHub-Comment-Id: 3353274858 X-GitHub-Comment-Type: issue_comment X-GitHub-Issue: 3835 X-GitHub-Repo: pgjdbc/pgjdbc X-GitHub-Type: comment X-GitHub-Url: https://github.com/pgjdbc/pgjdbc/issues/3835#issuecomment-3353274858 Content-Type: text/plain; charset=utf-8 Just wondering: do you share the same connection across concurrent execute threads? `QueryExecutorBase.getStandardConformingStrings` acquires a connection-scoped lock, so if you got pinning, then it looks like the same connection was used in a different thread which looks like an anti-pattern. Do you have a reproducer for the issue? In any case, it makes sense to move `createAction.create()` out of the synchronized block, however, I believe it will just mask the true issue of "sharing the same connection between concurrent execute threads" which you probably need to address in the app.