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

Make invoke() throw if execution was interrupted

    • 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.

      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

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

              Created:
              Updated:
              Resolved: