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

Exception in PrimaryOnlyService::_rebuildService() are silently ignored

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: Backlog
    • Component/s: None
    • Service Arch
    • ALL
    • 2

      On step up we rebuild the primary only services by invoking:

      1. PrimaryOnlyService::_rebuildService()
      2. PrimaryOnlyService::_rebuildInstances(term)

      For the exceptions thrown in the specific try/catch block of (2) we correctly set the POS _state to kRebuildFailed and the _rebuildStatus with the error occurred.

      For all the other exceptions thrown in either (1) or in (2) but outside that try/catch block we simply ignore the error. If this happens the POS will remain in the kRebuilding state until the next stepUp, in the meantime all the attempt of creating new instances of that service will simply hang.

      My proposal is to catch all the exceptions thrown in the rebuild future chain and to properly set the _state and the _rebuildStatus accordingly to the error.

      Acceptance criteria: 

      Design a solution for this and provide a more informed LOE. 

       

            Assignee:
            backlog-server-servicearch [DO NOT USE] Backlog - Service Architecture
            Reporter:
            tommaso.tocci@mongodb.com Tommaso Tocci
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: