|
Standalone repro:
db=/ssd/db
|
|
mongod --version
|
mongo --version
|
|
killall -9 mongod
|
rm -rf $db
|
mkdir -p $db/{r0,r1,r2}
|
mongod --dbpath $db/r0 --port 27017 --logpath $db/r0.log --replSet r --logappend --fork
|
mongod --dbpath $db/r1 --port 27117 --logpath $db/r1.log --replSet r --logappend --fork
|
mongod --dbpath $db/r2 --port 27217 --logpath $db/r2.log --replSet r --logappend --fork
|
mongo --eval '
|
rs.initiate({
|
_id: "r",
|
members: [
|
{_id: 0, host: "127.0.0.1:27017"},
|
{_id: 1, host: "127.0.0.1:27117"},
|
{_id: 2, host: "127.0.0.1:27217"}
|
]
|
})
|
'
|
|
mongo 'mongodb://127.0.0.1:27017/test?replicaSet=r' --eval '
|
ses = db.getMongo().startSession()
|
dbs = ses.getDatabase("test")
|
printjson(dbs.createCollection("c", {writeConcern: {w: "majority"}}))
|
printjson(ses.startTransaction())
|
printjson(dbs.c.findOne({$where: "sleep(2000)"}))
|
'
|
Output:
db version v3.7.9
|
git version: 681d1e0bf8d45c366848678811bad6f1a471f20c
|
OpenSSL version: OpenSSL 1.0.2d 9 Jul 2015
|
allocator: tcmalloc
|
modules: none
|
build environment:
|
distmod: ubuntu1404
|
distarch: x86_64
|
target_arch: x86_64
|
MongoDB shell version v3.7.9
|
git version: 681d1e0bf8d45c366848678811bad6f1a471f20c
|
OpenSSL version: OpenSSL 1.0.2d 9 Jul 2015
|
allocator: tcmalloc
|
modules: none
|
build environment:
|
distmod: ubuntu1404
|
distarch: x86_64
|
target_arch: x86_64
|
|
...
|
|
2018-05-18T10:47:02.855-0400 E QUERY [js] Error: error: {
|
"ok" : 0,
|
"errmsg" : "readConcern level snapshot is only valid in multi-statement transactions",
|
"code" : 72,
|
"codeName" : "InvalidOptions",
|
"operationTime" : Timestamp(1526654822, 1),
|
"$clusterTime" : {
|
"clusterTime" : Timestamp(1526654822, 1),
|
"signature" : {
|
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
|
"keyId" : NumberLong(0)
|
}
|
}
|
} :
|
|
|