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

Make invoke() throw if execution was interrupted

    XMLWordPrintableJSON

Details

    • ALL
    • Hide

      Segv can (theoretically) be reproduced by sending killOp during one of the unprotected calls listed in the description.

      Show
      Segv can (theoretically) be reproduced by sending killOp during one of the unprotected calls listed in the description.

    Description

      Many callers of invoke fail to check for a return value. Of those that do check the value, most throw an exception or uassert if the return value != 0. Once we throw from invoke(), the following call sites need to be verified and updated accordingly:

      mr.cpp:
      State::~State()
      State::init()
      State::bailFromJs()
      State::finalReduce()
      State::checkSize()
      jstests.cpp
      benchrun.cpp

      Attachments

        Activity

          People

            benjamin.becker Ben Becker
            benjamin.becker Ben Becker
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: