Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix crashes in oracle provider when db workspace is set #60957

Merged
merged 2 commits into from
Mar 12, 2025

Conversation

nyalldawson
Copy link
Collaborator

When a workspace was set, we were using a different connection ID string when creating a connection in the connection pool vs when we were destroying it. This triggered an assert, resulting in crashes when connections were invalidated.

@nyalldawson
Copy link
Collaborator Author

(This is NOT possible to unit test)

Copy link

github-actions bot commented Mar 12, 2025

🪟 Windows Qt6 builds

Download Windows Qt6 builds of this PR for testing.
(Built from commit 63224c2)

🪟 Windows builds

Download Windows builds of this PR for testing.
Debug symbols for this build are available here.
(Built from commit 63224c2)

@thbaumann
Copy link
Contributor

I tested this pull request and it fixed the problem for me when connecting to oracle layers.

Copy link
Contributor

@troopa81 troopa81 left a comment

Choose a reason for hiding this comment

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

Thanks!

@troopa81 troopa81 merged commit 05d5784 into qgis:master Mar 12, 2025
51 of 52 checks passed
@qgis-bot
Copy link
Collaborator

The backport to release-3_40 failed:

The process '/usr/bin/git' failed with exit code 1
stderr
error: could not apply 3643a2947f7... Add extra debugging for Oracle connections
hint: After resolving the conflicts, mark them with
hint: "git add/rm <pathspec>", then run
hint: "git cherry-pick --continue".
hint: You can instead skip this commit with "git cherry-pick --skip".
hint: To abort and get back to the state before "git cherry-pick",
hint: run "git cherry-pick --abort".
hint: Disable this message with "git config set advice.mergeConflict false"

stdout
Auto-merging src/providers/oracle/qgsoracleconn.cpp
CONFLICT (content): Merge conflict in src/providers/oracle/qgsoracleconn.cpp

To backport manually, run these commands in your terminal:

# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add .worktrees/backport-release-3_40 release-3_40
# Navigate to the new working tree
cd .worktrees/backport-release-3_40
# Create a new branch
git switch --create backport-60957-to-release-3_40
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick 3643a2947f731d1b146d01e7a75c9ac36c580e8f,63224c215195d670e2510cbf4cbadd0a5c627458
# Push it to GitHub
git push --set-upstream origin backport-60957-to-release-3_40
# Go back to the original working tree
cd ../..
# Delete the working tree
git worktree remove .worktrees/backport-release-3_40

Then, create a pull request where the base branch is release-3_40 and the compare/head branch is backport-60957-to-release-3_40.

@qgis-bot qgis-bot added the failed backport The automated backport attempt failed, needs a manual backport label Mar 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants