-
Notifications
You must be signed in to change notification settings - Fork 230
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
Partial 4.0 transaction support #276
Commits on Feb 13, 2018
-
socket: only send client metadata once per socket (#105)
Periodic cluster synchronisation calls isMaster() which currently resends the "client" metadata every call - the spec specifies: isMaster commands issued after the initial connection handshake MUST NOT contain handshake arguments https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst#connection-handshake This hotfix prevents subsequent isMaster calls from sending the client metadata again - fixes #101 and fixes #103. Thanks to @changwoo-nam @qhenkart @canthefason @jyoon17 for spotting the initial issue, opening tickets, and having the problem debugged with a PoC fix before I even woke up.
Configuration menu - View commit details
-
Copy full SHA for 9be26bd - Browse repository at this point
Copy the full SHA 9be26bdView commit details
Commits on Feb 20, 2018
-
* Brings in a patch on having flusher not suppress errors. (#81) go-mgo#360 * Fallback to JSON tags when BSON tag isn't present (#91) * Fallback to JSON tags when BSON tag isn't present Cleanup. * Add test to demonstrate tagging fallback. - Test coverage for tagging test. * socket: only send client metadata once per socket Periodic cluster synchronisation calls isMaster() which currently resends the "client" metadata every call - the spec specifies: isMaster commands issued after the initial connection handshake MUST NOT contain handshake arguments https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst#connection-handshake This hotfix prevents subsequent isMaster calls from sending the client metadata again - fixes #101 and fixes #103. Thanks to @changwoo-nam @qhenkart @canthefason @jyoon17 for spotting the initial issue, opening tickets, and having the problem debugged with a PoC fix before I even woke up. * Cluster abended test 254 (#100) * Add a test that mongo Server gets their abended reset as necessary. See https://github.com/go-mgo/mgo/issues/254 and https://github.com/go-mgo/mgo/pull/255/files * Include the patch from Issue 255. This brings in a test which fails without the patch, and passes with the patch. Still to be tested, manual tcpkill of a socket. * changeStream support (#97) Add $changeStream support * readme: credit @peterdeka and @steve-gray (#110)
Configuration menu - View commit details
-
Copy full SHA for baa28fc - Browse repository at this point
Copy the full SHA baa28fcView commit details
Commits on Apr 3, 2018
-
* cluster: fix deadlock in cluster synchronisation (#120) For a impressively thorough breakdown of the problem, see: #120 (comment) Huge thanks to @dvic and @KJTsanaktsidis for the report and fix. * readme: credit @dvic and @KJTsanaktsidis
Configuration menu - View commit details
-
Copy full SHA for f76e4f9 - Browse repository at this point
Copy the full SHA f76e4f9View commit details
Commits on Apr 23, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 7a53c79 - Browse repository at this point
Copy the full SHA 7a53c79View commit details
Commits on Apr 24, 2018
-
Merge pull request #152 from globalsign/release/r2018.04.23
Release/r2018.04.23
Configuration menu - View commit details
-
Copy full SHA for efe0945 - Browse repository at this point
Copy the full SHA efe0945View commit details
Commits on Jun 15, 2018
-
* allow ptr in inline structs * inline pointer_to_struce mode: update comments. return error on pointer not to struct * fix(dbtest): Use os.Kill on windows instead of Interrupt 🐛 I've added a use for os.Kill, instead of os.Interrupt signal, when using Windows. I'm current developing my project on Windows, and using DBServer.Stop() was resulting in: "timeout waiting for mongod process to die". After investigating, I've discovered that os.Interrupt isn't implemented on Windows, and it seems golang has Frozen this issue due to age (2013). They instruct to use os.Kill instead. Using this, the DBServer on my project works with no problem. * Respect nil slices, maps in bson encoder (#147) * socket: only send client metadata once per socket (#105) Periodic cluster synchronisation calls isMaster() which currently resends the "client" metadata every call - the spec specifies: isMaster commands issued after the initial connection handshake MUST NOT contain handshake arguments https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst#connection-handshake This hotfix prevents subsequent isMaster calls from sending the client metadata again - fixes #101 and fixes #103. Thanks to @changwoo-nam @qhenkart @canthefason @jyoon17 for spotting the initial issue, opening tickets, and having the problem debugged with a PoC fix before I even woke up. * Merge Development (#111) * Brings in a patch on having flusher not suppress errors. (#81) go-mgo#360 * Fallback to JSON tags when BSON tag isn't present (#91) * Fallback to JSON tags when BSON tag isn't present Cleanup. * Add test to demonstrate tagging fallback. - Test coverage for tagging test. * socket: only send client metadata once per socket Periodic cluster synchronisation calls isMaster() which currently resends the "client" metadata every call - the spec specifies: isMaster commands issued after the initial connection handshake MUST NOT contain handshake arguments https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst#connection-handshake This hotfix prevents subsequent isMaster calls from sending the client metadata again - fixes #101 and fixes #103. Thanks to @changwoo-nam @qhenkart @canthefason @jyoon17 for spotting the initial issue, opening tickets, and having the problem debugged with a PoC fix before I even woke up. * Cluster abended test 254 (#100) * Add a test that mongo Server gets their abended reset as necessary. See https://github.com/go-mgo/mgo/issues/254 and https://github.com/go-mgo/mgo/pull/255/files * Include the patch from Issue 255. This brings in a test which fails without the patch, and passes with the patch. Still to be tested, manual tcpkill of a socket. * changeStream support (#97) Add $changeStream support * readme: credit @peterdeka and @steve-gray (#110) * Hotfix #120 (#136) * cluster: fix deadlock in cluster synchronisation (#120) For a impressively thorough breakdown of the problem, see: #120 (comment) Huge thanks to @dvic and @KJTsanaktsidis for the report and fix. * readme: credit @dvic and @KJTsanaktsidis * added support for marshalling/unmarshalling maps with non-string keys * refactor method receiver * added support for json-compatible support for slices and maps Marshal() func: nil slice or map converts to nil, not empty (initialized with len=0) * fix IsNil on slices and maps format * added godoc * fix sasl empty payload * fix scram-sha-1 auth * revert fix sasl empty payload * Separate read/write network timeouts (#161) * socket: separate read/write network timeouts Splits DialInfo.Timeout (defaults to 60s when using mgo.Dial()) into ReadTimeout and WriteTimeout to address #160. Read/write timeout defaults to DialInfo.Timeout to preserve existing behaviour. * cluster: remove AcquireSocket Only used by tests, replaced by the pool-aware acquire socket functions: * AcquireSocketWithPoolTimeout * AcquireSocketWithBlocking * cluster: use configured timeouts for cluster operations * `mongoCluster.syncServer()` no longer uses hard-coded 5 seconds * `mongoCluster.isMaster()` no longer uses hard-coded 10 seconds * tests: use DialInfo for internal timeouts * server: fix fantastic serverTags nil slice bug When unmarshalling serverTags, it is now an empty slice, instead of a nil slice. `len(thing) == 0` works all the time, regardless. * cluster: remove unused duplicate pool config * session: avoid calculating default values in hot path Changes `DialWithInfo` to handle setting default values by setting the relevant `DialInfo` field, rather than calling the respective methods in the hot path for: * `PoolLimit` * `ReadTimeout` * `WriteTimeout` * session: remove unused consts * session: update docs * add URI options: "w", "j", "wtimeoutMS" (#162) * add URI options: "w", "j", "wtimeoutMS" * change "w" to "j" * Add Collation support for calling Count() on a Query (#166) * Expand documentation for *Iter.Next (#163) The documentation now explains the difference between calling Err and Close after Next returns false. The example code has been expanded to include checking for timeout. * add NewMongoTimestamp() and MongoTimestamp.Time(),Counter() (#171) code is inspired by go-mgo#202 * MGO-156 Avoid iter.Next deadlock on dead sockets (#182) * Allow passing slice pointer as an interface pointer to Iter.All (#181) * socket: only send client metadata once per socket (#105) Periodic cluster synchronisation calls isMaster() which currently resends the "client" metadata every call - the spec specifies: isMaster commands issued after the initial connection handshake MUST NOT contain handshake arguments https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst#connection-handshake This hotfix prevents subsequent isMaster calls from sending the client metadata again - fixes #101 and fixes #103. Thanks to @changwoo-nam @qhenkart @canthefason @jyoon17 for spotting the initial issue, opening tickets, and having the problem debugged with a PoC fix before I even woke up. * Merge Development (#111) * Brings in a patch on having flusher not suppress errors. (#81) go-mgo#360 * Fallback to JSON tags when BSON tag isn't present (#91) * Fallback to JSON tags when BSON tag isn't present Cleanup. * Add test to demonstrate tagging fallback. - Test coverage for tagging test. * socket: only send client metadata once per socket Periodic cluster synchronisation calls isMaster() which currently resends the "client" metadata every call - the spec specifies: isMaster commands issued after the initial connection handshake MUST NOT contain handshake arguments https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst#connection-handshake This hotfix prevents subsequent isMaster calls from sending the client metadata again - fixes #101 and fixes #103. Thanks to @changwoo-nam @qhenkart @canthefason @jyoon17 for spotting the initial issue, opening tickets, and having the problem debugged with a PoC fix before I even woke up. * Cluster abended test 254 (#100) * Add a test that mongo Server gets their abended reset as necessary. See https://github.com/go-mgo/mgo/issues/254 and https://github.com/go-mgo/mgo/pull/255/files * Include the patch from Issue 255. This brings in a test which fails without the patch, and passes with the patch. Still to be tested, manual tcpkill of a socket. * changeStream support (#97) Add $changeStream support * readme: credit @peterdeka and @steve-gray (#110) * Hotfix #120 (#136) * cluster: fix deadlock in cluster synchronisation (#120) For a impressively thorough breakdown of the problem, see: #120 (comment) Huge thanks to @dvic and @KJTsanaktsidis for the report and fix. * readme: credit @dvic and @KJTsanaktsidis * Allow passing slice pointer as an interface pointer to Iter.All * Reverted to original error message, added test case for interface{} ptr * Contributing:findAndModify support writeConcern (#185) * socket: only send client metadata once per socket (#105) Periodic cluster synchronisation calls isMaster() which currently resends the "client" metadata every call - the spec specifies: isMaster commands issued after the initial connection handshake MUST NOT contain handshake arguments https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst#connection-handshake This hotfix prevents subsequent isMaster calls from sending the client metadata again - fixes #101 and fixes #103. Thanks to @changwoo-nam @qhenkart @canthefason @jyoon17 for spotting the initial issue, opening tickets, and having the problem debugged with a PoC fix before I even woke up. * Merge Development (#111) * Brings in a patch on having flusher not suppress errors. (#81) go-mgo#360 * Fallback to JSON tags when BSON tag isn't present (#91) * Fallback to JSON tags when BSON tag isn't present Cleanup. * Add test to demonstrate tagging fallback. - Test coverage for tagging test. * socket: only send client metadata once per socket Periodic cluster synchronisation calls isMaster() which currently resends the "client" metadata every call - the spec specifies: isMaster commands issued after the initial connection handshake MUST NOT contain handshake arguments https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst#connection-handshake This hotfix prevents subsequent isMaster calls from sending the client metadata again - fixes #101 and fixes #103. Thanks to @changwoo-nam @qhenkart @canthefason @jyoon17 for spotting the initial issue, opening tickets, and having the problem debugged with a PoC fix before I even woke up. * Cluster abended test 254 (#100) * Add a test that mongo Server gets their abended reset as necessary. See https://github.com/go-mgo/mgo/issues/254 and https://github.com/go-mgo/mgo/pull/255/files * Include the patch from Issue 255. This brings in a test which fails without the patch, and passes with the patch. Still to be tested, manual tcpkill of a socket. * changeStream support (#97) Add $changeStream support * readme: credit @peterdeka and @steve-gray (#110) * Hotfix #120 (#136) * cluster: fix deadlock in cluster synchronisation (#120) For a impressively thorough breakdown of the problem, see: #120 (comment) Huge thanks to @dvic and @KJTsanaktsidis for the report and fix. * readme: credit @dvic and @KJTsanaktsidis * findAndModify support writeConcern * fix * readme: credit everyone (#187) * @cedric-cordenier * @DaytonG * @ddspog * @gedge * @jefferickson * @larrycinnabar * @Mei-Zhao * @roobre * revert: MGO-156 Avoid iter.Next deadlock on dead sockets (#182) (#188) This reverts commit 7253b2b. * Add support for ssl dial string (#184) * Add support for ssl dial string * Ensure we dont override user settings * update examples * update ssl value parsing * PingSsl test * skip test requiring system certificates * readme: credit @tbruyelle (#190)
Configuration menu - View commit details
-
Copy full SHA for 113d396 - Browse repository at this point
Copy the full SHA 113d396View commit details
Commits on Aug 16, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 901e8cf - Browse repository at this point
Copy the full SHA 901e8cfView commit details
Commits on Aug 21, 2018
-
Merge pull request #241 from rickypai/patch-1
Test against Mongo minor releases updates as of Aug 2018
Configuration menu - View commit details
-
Copy full SHA for 46bcd34 - Browse repository at this point
Copy the full SHA 46bcd34View commit details
Commits on Aug 28, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 20c16b2 - Browse repository at this point
Copy the full SHA 20c16b2View commit details -
Merge pull request #255 from globalsign/revert-241-patch-1
Revert "Test against Mongo minor releases updates as of Aug 2018"
Configuration menu - View commit details
-
Copy full SHA for 6f9f54a - Browse repository at this point
Copy the full SHA 6f9f54aView commit details
Commits on Sep 5, 2018
-
Configuration menu - View commit details
-
Copy full SHA for d82ba02 - Browse repository at this point
Copy the full SHA d82ba02View commit details -
Configuration menu - View commit details
-
Copy full SHA for a913faa - Browse repository at this point
Copy the full SHA a913faaView commit details -
Merge pull request #263 from globalsign/feature/issue-template-suppor…
…ted-versions Issue template and MongoDB supported versions
Configuration menu - View commit details
-
Copy full SHA for 1ca0a4f - Browse repository at this point
Copy the full SHA 1ca0a4fView commit details
Commits on Sep 18, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 967f2ee - Browse repository at this point
Copy the full SHA 967f2eeView commit details
Commits on Sep 19, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 0e31f69 - Browse repository at this point
Copy the full SHA 0e31f69View commit details -
Configuration menu - View commit details
-
Copy full SHA for a4ebf50 - Browse repository at this point
Copy the full SHA a4ebf50View commit details -
Specifically, there are about a bajillion mentions of "M" instead of "bson.M". I don't really understand why and they were breaking everything. There's probably some alias somewhere I was missing but I just changed them to bson.M. Tests are still failing, though, and that's probably related to some changes I had to make to enable a single-server replica in dbtest. I'll make that optional - it also slows stuff down when we don't need it.
Configuration menu - View commit details
-
Copy full SHA for 13b68da - Browse repository at this point
Copy the full SHA 13b68daView commit details -
Turns out M is defined in another file, but because of an incorrect testing configuration on my side, the syntax checker wasn't picking it up. After moving some stuff around, it all works. A couple of tests fail but I'm pretty confident that this is because I'm testing on a mac.
Configuration menu - View commit details
-
Copy full SHA for 20cdbeb - Browse repository at this point
Copy the full SHA 20cdbebView commit details -
Add support for replication in dbtest.
Change is backwards compatible - to use replication support, start with SessionRepl(true) rather than Session() - Session() is the legacy behavior.
Configuration menu - View commit details
-
Copy full SHA for 3c7d50e - Browse repository at this point
Copy the full SHA 3c7d50eView commit details -
Configuration menu - View commit details
-
Copy full SHA for f087ba9 - Browse repository at this point
Copy the full SHA f087ba9View commit details -
Modify transaction object to be unexported.
Add ability to set autocommit from the "constructor" Improve documentation.
Configuration menu - View commit details
-
Copy full SHA for 6744aea - Browse repository at this point
Copy the full SHA 6744aeaView commit details -
Fix setup script to accept a SED environment variable. MACOS sed does…
… not work with it. Also a few other minor fixes to get tests to working correctly. Started adding tests for transaction code.
Configuration menu - View commit details
-
Copy full SHA for e9c36a2 - Browse repository at this point
Copy the full SHA e9c36a2View commit details
Commits on Sep 20, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 43d81ad - Browse repository at this point
Copy the full SHA 43d81adView commit details
Commits on Sep 21, 2018
-
Revert some more changes to session_test. Realized that the developme…
…nt branch contains much of what we want to do, so going to merge that next.
Configuration menu - View commit details
-
Copy full SHA for 0617b1e - Browse repository at this point
Copy the full SHA 0617b1eView commit details -
Merge remote-tracking branch 'remotes/origin/development'
# Conflicts: # README.md # auth_test.go # cluster.go # dbtest/dbserver.go # server.go # server_test.go # session.go # session_internal_test.go # session_test.go # socket.go Also fix a few bugs found now that testing seems to actually work some of the time.
Configuration menu - View commit details
-
Copy full SHA for 826ec4e - Browse repository at this point
Copy the full SHA 826ec4eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 31da02d - Browse repository at this point
Copy the full SHA 31da02dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9c29717 - Browse repository at this point
Copy the full SHA 9c29717View commit details -
Configuration menu - View commit details
-
Copy full SHA for a0402aa - Browse repository at this point
Copy the full SHA a0402aaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 87bd67f - Browse repository at this point
Copy the full SHA 87bd67fView commit details
Commits on Sep 25, 2018
-
Configuration menu - View commit details
-
Copy full SHA for d4e4ad8 - Browse repository at this point
Copy the full SHA d4e4ad8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1a34682 - Browse repository at this point
Copy the full SHA 1a34682View commit details -
Remove extra brackets. They work on MacOS, but the upstream Travis-CI…
… doesn't work with them.
Configuration menu - View commit details
-
Copy full SHA for 80af33d - Browse repository at this point
Copy the full SHA 80af33dView commit details
Commits on Sep 27, 2018
-
Configuration menu - View commit details
-
Copy full SHA for f9dc25e - Browse repository at this point
Copy the full SHA f9dc25eView commit details