I tried upgrading the gocql dependency in the testcontainers-go project and I noticed that after upgrading the version some tests were failing due to not being able to open connections to the C* containers.
After some investigation I concluded that there is a behavior change in this release that might affect incorrectly configured Cassandra nodes. Before 2.0 gocql is able to connect to a C* node if system.local has the incorrect IP address (doesn't match the contact point address) because it keeps using the contact point but with 2.0 gocql updates its view of the Host including its address so it is unable to open connections to that host after initialization if the host address retrieved from the system local table is unreachable. This doesn't affect correctly configured C* nodes but unfortunately testcontainers-go is not correctly configuring the C* containers that it brings up so this issue occurs. You can work around this by setting "DisableInitialHostLookup = true" in the gocql config if necessary. If anyone thinks we should cancel this release to document this under the "Behavior Changes" section of the new upgrade guide feel free to -1 and I will document this before restarting the release process. If you think we should go back to the 1.x behavior then come over to the #cassandra-drivers slack channel and let's discuss it there (or open a new ML thread). If nobody objects then I will keep this vote open until we have the required +1s (and no -1s). João Reis Bret McGuire <[email protected]> escreveu (quarta, 8/10/2025 à(s) 20:44): > +1 > > In case it's useful here's the steps I took to validate this: > > * Validated all signatures > * Validated the tag and commit > * Confirmed "go build" worked without issue > * Confirmed "go test" passed > * Ran a simple test app (accessing and printing release_version on > system.local) using the downloaded tarball as the gocql module > > > On Tue, Oct 7, 2025 at 11:06 AM João Reis <[email protected]> wrote: > >> Sorry for the late reply, verifying the signature files is always >> recommended but that's already something people should be familiar with >> coming from other subprojects (or the main project). Aside from that we >> don't have specific guidance on what people should do to test the release >> before voting... If you have a Go app (even a sample app works) you can >> point your gocql dependency to the git tag that is being voted on (there's >> no binary artifacts like there is with java driver releases) and run some >> tests with that app to make sure everything is working properly. You could >> also run unit and integration tests locally if you'd like to but we do have >> CI running on every commit to trunk so alternatively you can just check if >> the git sha has a green CI run on Github before voting. >> >> Thanks, >> João Reis >> >> Dinesh Joshi <[email protected]> escreveu (sexta, 3/10/2025 à(s) 18:28): >> >>> Hi João, >>> >>> Could you please include steps to verify before we +1 it? It would help >>> those of us who are unfamiliar the steps to verify it :) >>> >>> Thanks, >>> >>> >>> On Fri, Oct 3, 2025 at 9:50 AM João Reis <[email protected]> wrote: >>> >>>> Hey folks, >>>> >>>> I’m proposing the Apache Cassandra GoCQL Driver 2.0.0 for release. >>>> >>>> sha1: 5c6075151a551f3e985b3647288b82fe01aef657 >>>> git: >>>> https://github.com/apache/cassandra-gocql-driver/tree/v2.0.0-tentative >>>> >>>> The Source release is available here (79790): >>>> >>>> https://dist.apache.org/repos/dist/dev/cassandra/cassandra-gocql-driver/2.0.0/ >>>> >>>> As mentioned before in the 2.0.0-rc1 vote thread, this is a major >>>> release of the driver that includes the module name change from " >>>> github.com/gocql/gocql" to "github.com/apache/cassandra-gocql-driver/v2 >>>> ". >>>> During the donation process it was decided that this name change should >>>> happen in a major release since it is a breaking change. >>>> >>>> Initially there were no code changes planned to happen between >>>> 2.0.0-rc1 and 2.0.0 GA but a couple of bugs were found (introduced in >>>> 2.0.0-rc1) and fixed. >>>> >>>> This release contains documentation updates including the addition of >>>> an upgrade guide [1] to help users with the application code changes that >>>> might be required in order to upgrade from 1.x to 2.x. Changes made to the >>>> doc.go file will eventually be reflected in pkg.go.dev [2] when it >>>> updates. >>>> >>>> We ran a few benchmarks to check for a performance regression in 2.0 >>>> and results [3] showed a degradation of 1 to 2% in latency and throughput. >>>> We don't have an "official" way of running benchmarks like these yet so >>>> this is something we will have to discuss in the future. >>>> >>>> Developers will include this driver in their projects by specifying a >>>> commit hash or tag in go.mod rather than via the inclusion of binary >>>> artifacts so we’ve avoided the creation of binary artifacts completely. To >>>> avoid any premature access to this release before the vote is complete >>>> we’ve temporarily used the tag “v2.0.0-rc1-tentative” to clearly >>>> indicate that this tag points to a tentative release. Once the vote passes >>>> this tag will be updated to “v2.0.0”. >>>> >>>> The vote will be open for 72 hours (longer if needed). Everyone who has >>>> tested the build is invited to vote. Votes by PMC members are considered >>>> binding. A vote passes if there are at least three binding +1s and no -1's. >>>> >>>> Thanks, >>>> João >>>> >>>> [1] >>>> https://github.com/apache/cassandra-gocql-driver/blob/trunk/UPGRADE_GUIDE.md >>>> [2] https://pkg.go.dev/github.com/apache/cassandra-gocql-driver/v2 >>>> [3] >>>> https://docs.google.com/spreadsheets/d/18VB_W5H5kInuyerwWdK_3Z4cwZ4H3n353IbJDoEkLJk/edit?usp=sharing >>>> >>>
