|
|
|
|
|
by JulienSchmidt
2215 days ago
|
|
Bug #3 (The race) was silently introduced by a semantic change in Go's database/sql in January 2018:
https://github.com/golang/go/commit/651ddbdb5056ded455f47f9c... It took until December of the same year until we got the first bug report and figured out what was going on. While the semantic change might look subtle, it was certainly not from our (driver maintainer's) perspective.
We were quite disappointed that such a change was made 1) without informing the driver maintainers 2) making sure the changes were in place before this change made it into a Go release. We regularly test against Go's master (now using a Travis CI cron job), but that only helps if the existing tests fail. We don't have the time to constantly monitor all changes in the Go repo. If there is a need to make such changes (not just in database/sql and not just in Go), PLEASE actively communicate early with the community / the direct users. |
|
Please look into Go1.15. It should all be backwards compatible, but where the session resetter is called changes, and a new call is added for verifying if the connection is valid or not. I'll have the release notes updated soon for Go1.15, but until then, look at the driver docs for tip.
I'll make announce the change on the golang-sql mailing group.