-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
More sqlite fixes #17889
More sqlite fixes #17889
Conversation
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: vrothberg The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@edsantiago, feel free to test them in your PR. I am optimistic. |
@cevich is the |
It's an annoying side effect of the way YAML does macro expansion. I don't think there's any sane way to get rid of it (without introducing horrible duplication), but maybe @cevich can think of a way. |
Still there 😱 |
Yep, in my PR also. |
Consistently (three out of three runs) failing in |
Very curious but I've no idea. |
Also... there's something else broken in |
SQLite developers consider it a misfeature [1], and after turning it on, we saw a new set of flakes. Let's turn it off and trust the developers [1] that WAL mode is sufficient for our purposes. Turning the shared cache off also makes the DB smaller and faster. [NO NEW TESTS NEEDED] [1] https://sqlite.org/forum/forumpost/1f291cdca4 Signed-off-by: Valentin Rothberg <[email protected]>
I dropped the first commit which actually always caused the DB locked error when running rootless. |
Finger's crossed. Thinking about it, we haven't seen this issue without the shared cache which I dropped now again. |
@edsantiago this looks better on my end. |
YAY! None of the evil strings appear anywhere in the downloaded CI logs. LGTM but let's wait for my PR to finish CI. |
\o/ it seems the cache option indeed is evil. |
Sigh. I'm sorry. f37 rootless, two "UNIQUE constraint" failures. I've double-checked that my PR is correctly rebased on top of 17889, but please feel free to check again. |
🤯 Thanks, Ed. I'll continue digging tomorrow. |
There's still a race it seems. |
So, from my pov: even if this doesn't fix the UNIQUE bug, I'm OK with this merging. It seems to cause no harm, and I trust your investigation about shared-cache. I don't know enough sqlite to be the one to merge it, though. Maybe @mheon can look at it tomorrow. Thanks, everyone, for your persistence on this. |
Timing results (redacted, to only show difference between boltdb and sqlite):
|
I am also OK with merging the PR as is. Maybe @mheon will find the needle in the haystack and get validation code healthy. |
OK, this is weird. Two more |
This LGTM. I know what the other issue is (TOCTOU in the validation code, two Podman processes can race to create the row) but it's a bit annoying to fix to it will have to wait until tomorrow afternoon. |
Here's a really, really nice one. f37 rootless, no surprise, but what's sweet is that it's a triple-failure in the I am over 90% convinced that there is something happening with concurrent sqlite processes, some shared file that should not be shared. |
@mheon thanks for checking in. I'll assume you have what you need, and I'll stop my repeat testing. Good night! |
@baude @mheon @edsantiago merge me please |
My comment from yesterday still stands:
|
/lgtm |
Does this PR introduce a user-facing change?