GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||
GeezerVison is showing github.com — gh-160699: Prevent concurrent reuse of cached SQLite statements by mangod12 · Pull Request #160706 · python/cpython ConversationSummaryConcurrent calls to Reserve cached statements before releasing the GIL. If a cached statement is already reserved, create an uncached statement for the concurrent execution. Release the reservation when the statement is reset. Add a regression test that runs concurrent parameterized queries on a shared connection and verifies the returned BLOB contents. Fixes gh-160699. Verification
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
|
There was an error while loading. Please reload this page.
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
CI for PR #160706 fails on all three macOS jobs in the new The new CI run will tell us whether that addresses the macOS failure. I could not build CPython locally here because the Windows C toolchain is unavailable. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@erlend-aasland The latest CI run for 76eb2d3 failed on macOS Intel with a hosted-runner communication error; GitHub’s annotation reports that the runner lost communication with the server, and the detailed job log is unavailable. Could you rerun that job when convenient? The other macOS jobs passed. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@erlend-aasland A separate blocker surfaced in the Read the Docs preview for build 35421294 (commit |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thank you for your interest in contributing to Python. This is a community-driven project, and we want it to be a welcoming place to learn and collaborate. Contributors are responsible for reviewing and understanding what they submit, checking its claims, and being able to explain changes in their own words. This helps reviewers focus on the contribution and leaves more time to support other contributors. This contribution appears to have been authored with AI assistance. Please explain your contribution in your own words and describe how you checked its correctness. Please read our guidelines for using AI tools. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Yes it was done with help of ai. And thanks for the reply. The issue as i understood was that concurrent execution calls on a shared connection can pick the same cached SQLite statement before sqlite3 mark it busy. Both threads can then try to use that same statement. This fix reserves that statement with a flag ( in_use) so other cursor gets an uncached one. For regression i ran concurrent queries from 4 threads sharing connection and returned blob data were checked also that subprocesses end cleanly. For testing i had issues initially then i installed c toolchain and ran it with help of ai. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Is the AI the one who suggested the fix? or would you have been able to make the fix by yourself without it? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Would have been able to do it myself also. Much more time and effort though. Ai did help me in the research a bit i was more easily able to get to the required approach but it was not blind ai use if you mean that just doing yes on whatever ai said. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
sqlite3: concurrent execute() on a shared Connection crashes the process with a native access violation (threadsafety == 3)
There was an error while loading. Please reload this page.