Menu

#3315 imm : Redundancy admin owner after aborting sync

5.22.06
fixed
None
defect
imm
nd
major
False
2022-06-01
2022-05-02
No

While imm is synchronizing, the function to delete admin owner only changes the state of admin owner to dying instead of deleting it. If imm aborts sync, those admin owners won't be deleted until next sync. We should clean it after imm aborted sync.

Syslog:

2022-05-02 16:55:24.257 SC-1 osafimmnd[425]: NO Announce sync, epoch:17
2022-05-02 16:55:24.258 SC-1 osafimmnd[425]: NO SERVER STATE: IMM_SERVER_READY --> IMM_SERVER_SYNC_SERVER
2022-05-02 16:55:24.259 SC-1 osafimmnd[425]: NO NODE STATE-> IMM_NODE_R_AVAILABLE
2022-05-02 16:55:24.259 SC-1 osafimmd[411]: NO Successfully announced sync. New ruling epoch:17
2022-05-02 16:55:24.259 SC-1 osafimmnd[425]: WA Postponing hard delete of admin owner with id:3942 when imm is not writable state
2022-05-02 16:55:24.260 SC-1 osafimmnd[425]: WA Failed in hard remove of admin owner 3942
2022-05-02 16:55:24.359 SC-1 osafimmnd[425]: WA Apparent deadlock detected between IMMND sync and restarting PBE, with Ccbs in critical. Aborting this sync attempt
2022-05-02 16:55:24.360 SC-1 osafimmnd[425]: NO NODE STATE-> IMM_NODE_FULLY_AVAILABLE (2728)
2022-05-02 16:55:24.360 SC-1 osafimmnd[425]: NO Epoch set to 17 in ImmModel
2022-05-02 16:55:24.360 SC-1 osafimmnd[425]: NO Coord broadcasting ABORT_SYNC, epoch:17

Source code:

if (immNotWritable() || is_sync_aborting()) {
  if (hard) {
    unsigned int siz = (unsigned int)(*i)->mTouchedObjects.size();
    if (siz >= IMMSV_MAX_OBJECTS) {
      LOG_WA(
          "Forcing immediate hard delete of large (%u) admin owner with id:%u "
          "to clear way for sync",
          siz, ownerId);
      goto forced;
    }
    if (sImmNodeState > IMM_NODE_UNKNOWN) {
      LOG_WA(
          "Postponing hard delete of admin owner with id:%u "
          "when imm is not writable state",
          ownerId);
    }
    (*i)->mDying = true;
    err = SA_AIS_ERR_BUSY;
  } else {
    err = SA_AIS_ERR_TRY_AGAIN;
  }

Related

Wiki: ChangeLog-5.22.06

Discussion

  • Hieu Hong Hoang

    Hieu Hong Hoang - 2022-05-03
    • status: assigned --> review
     
  • Hieu Hong Hoang

    Hieu Hong Hoang - 2022-05-27

    commit 412f5da2a9c5cc60a349be6672f13238306c9785 (HEAD -> develop, origin/develop, ticket-3315)
    Author: hieu.h.hoang hieu.h.hoang@dektech.com.au
    Date: Mon May 2 13:20:08 2022 +0700

    imm: Remove dead admin owner [#3315]
    
    While imm is synchronizing, the function to delete admin owner
    only changes the state of admin owner to dying instead of deleting
    it. If imm synchronizes successful, those admin owners will be
    removed. If the synchronization is aborted, those admin owner
    won't be deleted until next synchronization. Solution is to
    delete all dead admin owners after aborting a synchronization.
    
     
  • Hieu Hong Hoang

    Hieu Hong Hoang - 2022-05-27
    • status: review --> fixed
     

Log in to post a comment.

MongoDB Logo MongoDB