Description
Using a mixed version cluster (2.6 mongos and config, 2.6 shard, 2.4 shard), a write operation that affects both shards causes mongos to crash if the write concern is invalid for one of the shards.
Commands in python:
>>> c.test.command('update', 'test', updates=[SON([('q', {'_id': {'$in': [2, 99997]}}), ('u', {'$set': {'foo': 'bar'}}), ('upsert', False), ('multi', True)])])
|
{u'nModified': 1, u'ok': 1, u'n': 2}
|
>>>
|
>>> c.test.command('update', 'test', updates=[SON([('q', {'_id': {'$in': [3, 99996]}}), ('u', {'$set': {'foo': 'bar'}}), ('upsert', False), ('multi', True)])], writeConcern={'w': 2, 'wtimeout': 100})
|
Traceback (most recent call last):
|
File "<stdin>", line 1, in <module>
|
File "pymongo/database.py", line 435, in command
|
uuid_subtype, compile_re, **kwargs)[0]
|
File "pymongo/database.py", line 335, in _command
|
for doc in cursor:
|
File "pymongo/cursor.py", line 1017, in next
|
if len(self.__data) or self._refresh():
|
File "pymongo/cursor.py", line 961, in _refresh
|
self.__uuid_subtype))
|
File "pymongo/cursor.py", line 885, in __send_message
|
res = client._send_message_with_response(message, **kwargs)
|
File "pymongo/mongo_client.py", line 1201, in _send_message_with_response
|
raise AutoReconnect(str(e))
|
pymongo.errors.AutoReconnect: connection closed
|
mongos log:
2014-03-12T13:54:56.212-0700 [mongosMain] MongoS version 2.6.0-rc2-pre- starting: pid=92669 port=27017 64-bit host=devtop.local (--help for usage)
|
2014-03-12T13:54:56.212-0700 [mongosMain] db version v2.6.0-rc2-pre-
|
2014-03-12T13:54:56.213-0700 [mongosMain] git version: 27afe048247d1ca3d32858bd9047fc92e97efea8
|
...
|
2014-03-12T13:55:50.499-0700 [Balancer] distributed lock 'balancer/devtop.local:27017:1394657696:16807' unlocked.
|
2014-03-12T13:55:52.067-0700 [conn1] ERROR: Uncaught std::exception: vector::_M_range_check, terminating
|
2014-03-12T13:55:52.067-0700 [conn1] dbexit: rc:100
|
sh.status:
mongos> sh.status()
|
--- Sharding Status ---
|
sharding version: {
|
"_id" : 1,
|
"version" : 4,
|
"minCompatibleVersion" : 4,
|
"currentVersion" : 5,
|
"clusterId" : ObjectId("531fe9146e3028d5a974d0b6")
|
}
|
shards:
|
{ "_id" : "shard0000", "host" : "localhost:37017" }
|
{ "_id" : "shard0001", "host" : "localhost:37018" }
|
databases:
|
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
|
{ "_id" : "test", "partitioned" : true, "primary" : "shard0000" }
|
test.test
|
shard key: { "_id" : 1 }
|
chunks:
|
shard0001 3
|
shard0000 4
|
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : 0 } on : shard0001 Timestamp(2, 0)
|
{ "_id" : 0 } -->> { "_id" : 15093 } on : shard0001 Timestamp(3, 0)
|
{ "_id" : 15093 } -->> { "_id" : 31137 } on : shard0001 Timestamp(4, 0)
|
{ "_id" : 31137 } -->> { "_id" : 47181 } on : shard0000 Timestamp(4, 1)
|
{ "_id" : 47181 } -->> { "_id" : 69233 } on : shard0000 Timestamp(3, 2)
|
{ "_id" : 69233 } -->> { "_id" : 95999 } on : shard0000 Timestamp(3, 4)
|
{ "_id" : 95999 } -->> { "_id" : { "$maxKey" : 1 } } on : shard0000 Timestamp(3, 5)
|
Attachments
Issue Links
- duplicates
-
SERVER-13032 break early when resolving a replica set host fails in mongos batch_write_executor.cpp
-
- Closed
-