Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-4443

FATAL when adding and removing a node.

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 2.0.1
    • Component/s: Replication
    • Labels:
      None
    • Environment:
      MongoDB v2.0.1
    • ALL

      Create a three-node replica set with nodes a localhost:30000, localhost:30001, and localhost:30002.

      Run:

      rs.remove("localhost:30001")

      Wait for steady state, then:

      rs.add("localhost:30001")

      This is what you get:

      Tue Dec 6 14:18:42 [rsMgr] replSet error unexpected exception in haveNewConfig() : 0 assertion db/repl/rs.cpp:440
      Tue Dec 6 14:18:42 [rsMgr] replSet error fatal, stopping replication
      Tue Dec 6 14:18:42 [rsMgr] replset msgReceivedNewConfig version: version: 5
      Tue Dec 6 14:18:42 [rsMgr] replSet info saving a newer config version to local.system.replset
      Tue Dec 6 14:18:42 [rsMgr] replSet saveConfigLocally done
      Tue Dec 6 14:18:42 [rsMgr] self doesn't match: 4
      Tue Dec 6 14:18:42 [rsMgr] Assertion failure false db/repl/rs.cpp 440
      0x57eeb6 0x589d6b 0x7c214b 0x7c32f2 0x7c4080 0x7f5ec5 0x5939f3 0x591d25 0x591383 0x578d0f 0x57adc4 0xaa4560 0x7f17f3d599ca 0x7f17f330870d
      mongod(_ZN5mongo12sayDbContextEPKc+0x96) [0x57eeb6]
      mongod(_ZN5mongo8assertedEPKcS1_j+0xfb) [0x589d6b]
      mongod(_ZN5mongo11ReplSetImpl14initFromConfigERNS_13ReplSetConfigEb+0xadb) [0x7c214b]
      mongod(_ZN5mongo7ReplSet13haveNewConfigERNS_13ReplSetConfigEb+0xd2) [0x7c32f2]
      mongod(_ZN5mongo7Manager20msgReceivedNewConfigENS_7BSONObjE+0x2e0) [0x7c4080]
      mongod(_ZN5boost6detail8function26void_function_obj_invoker0INS_3_bi6bind_tIvNS_4_mfi3mf1IvN5mongo7ManagerENS7_7BSONObjEEENS3_5list2INS3_5valueIPS8_EENSC_IS9_EEEEEEvE6invokeERNS1_15function_bufferE+0x65) [0x7f5ec5]
      mongod(_ZNK5boost9function0IvEclEv+0x243) [0x5939f3]
      mongod(_ZN5mongo4task6Server6doWorkEv+0x225) [0x591d25]
      mongod(_ZN5mongo4task4Task3runEv+0x33) [0x591383]
      mongod(_ZN5mongo13BackgroundJob7jobBodyEN5boost10shared_ptrINS0_9JobStatusEEE+0xbf) [0x578d0f]
      mongod(_ZN5boost6detail11thread_dataINS_3_bi6bind_tIvNS_4_mfi3mf1IvN5mongo13BackgroundJobENS_10shared_ptrINS7_9JobStatusEEEEENS2_5list2INS2_5valueIPS7_EENSD_ISA_EEEEEEE3runEv+0x74) [0x57adc4]
      mongod(thread_proxy+0x80) [0xaa4560]
      /lib/libpthread.so.0(+0x69ca) [0x7f17f3d599ca]
      /lib/libc.so.6(clone+0x6d) [0x7f17f330870d]

      I've been told by Kristina that the issue here is that you must keep the _id the same when you re-add the node at localhost:30001. If that's the case, then the error message in the logs should indicate it. But I'm not sure why this should even be required in the first place. Why would a user of MongoDB have to remember something like that?

            Assignee:
            Unassigned Unassigned
            Reporter:
            kbanker Kyle Banker
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: