-
Notifications
You must be signed in to change notification settings - Fork 406
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 query cache dbver issue with concurrent DDL #6819
Conversation
I don't know if there is really any good way to do such things. (I did a different bad way, and then didn't merge it.) |
Maybe a better (I guess?) way would be to add some testmode function, and then have a compiler function hook using |
During a query compilation, if the schema is changed, the server was caching the compiled query under a wrong dbver, causing future queries to fail. See the test for issue reproduction.
a86caf5
to
2d1f4c1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes sense to me.
It's probably worth thinking more about the race conditions against DDL, though, that can cause transient ISEs like this. That's longstanding, though, I think, so probably doesn't need to be fixed right now
During a query compilation, if the schema is changed, the server was caching the compiled query under a wrong dbver, causing future queries to fail. See the test for issue reproduction.
During a query compilation, if the schema is changed, the server was caching the compiled query under a wrong dbver, causing future queries to fail. See the test for issue reproduction.
@msullivan, I think you mentioned adding a similar compiler sleep hook for testing, but I can't find it. Please let me know if there's a better way than the sleep sentinel I added here in the query string.