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

All callbacks invoked by WiredTiger (and other C) storage engines must terminate rather than propagate exceptions

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • 2.8.0-rc1
    • None
    • Storage
    • None
    • ALL

    Description

      Because C code is not exception safe, C++ callbacks invoked by C code need to terminate rather than allow exceptions to escape. This could be done by labeling these callbacks as noexcept, except that several compilers do not correctly implement noexcept. Instead, we should just wrap the bodies of these functions in try { } catch (...)

      { std::terminate() }

      .

      Attachments

        Activity

          People

            schwerin@mongodb.com Andy Schwerin
            schwerin@mongodb.com Andy Schwerin
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: