summaryrefslogtreecommitdiff
path: root/jstests/sharding/sharded_profile.js
blob: 0a8d8424e354543d9bd879370c28777fdcb35248 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Tests whether profiling can trigger stale config errors and interfere with write batches
// SERVER-13413

(function() {

    var st = new ShardingTest({shards: 1, mongos: 2});
    st.stopBalancer();

    var admin = st.s0.getDB('admin');
    var shards = st.s0.getCollection('config.shards').find().toArray();
    var coll = st.s0.getCollection('foo.bar');

    assert(admin.runCommand({enableSharding: coll.getDB() + ''}).ok);
    assert(admin.runCommand({shardCollection: coll + '', key: {_id: 1}}).ok);

    st.printShardingStatus();

    jsTest.log('Turning on profiling on ' + st.shard0);

    st.shard0.getDB(coll.getDB().toString()).setProfilingLevel(2);

    var profileColl = st.shard0.getDB(coll.getDB().toString()).system.profile;

    var inserts = [{_id: 0}, {_id: 1}, {_id: 2}];

    assert.writeOK(st.s1.getCollection(coll.toString()).insert(inserts));

    profileEntry = profileColl.findOne();
    assert.neq(null, profileEntry);
    printjson(profileEntry);
    assert.eq(profileEntry.query.documents, inserts);

    st.stop();

})();