Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-3022

LSM operations get stuck in __wt_clsm_await_switch waiting for switch on tree to complete

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT2.9.0, 3.4.0-rc4, 3.2.12
    • Labels:
      None
    • # Replies:
      5
    • Last comment by Customer:
      true
    • Sprint:
      Storage 2016-11-21

      Description

      lsm_tree->flags are accessed from different threads with no concurrency protection. This can cause the WT_LSM_TREE_NEED_SWITCH flag to clear while LSM operations are sleeping in _wt_clsm_await_switch() waiting on a switch to be performed by the lsm_worker. lsm_worker would skip a switch if the WT_LSM_TREE_NEED_SWITCH flag is cleared, causing operations to get stuck in _wt_clsm_await_switch() forever.

        Activity

        Hide
        xgen-internal-githook Githook User added a comment -

        Author:

        {u'username': u'sulabhM', u'name': u'Sulabh Mahajan', u'email': u'sulabh.mahajan@mongodb.com'}

        Message: WT-3022 Change lsm_tree flags to fields to prevent race conditions (#3148)
        Branch: develop
        https://github.com/wiredtiger/wiredtiger/commit/56f14ea2ea83b871ebaabdd0c0ff14b1dba21644

        Show
        xgen-internal-githook Githook User added a comment - Author: {u'username': u'sulabhM', u'name': u'Sulabh Mahajan', u'email': u'sulabh.mahajan@mongodb.com'} Message: WT-3022 Change lsm_tree flags to fields to prevent race conditions (#3148) Branch: develop https://github.com/wiredtiger/wiredtiger/commit/56f14ea2ea83b871ebaabdd0c0ff14b1dba21644
        Hide
        xgen-internal-githook Githook User added a comment -

        Author:

        {u'username': u'sulabhM', u'name': u'Sulabh Mahajan', u'email': u'sulabh.mahajan@mongodb.com'}

        Message: WT-3022 Change lsm_tree flags to fields to prevent race conditions (#3148)
        Branch: mongodb-3.4
        https://github.com/wiredtiger/wiredtiger/commit/56f14ea2ea83b871ebaabdd0c0ff14b1dba21644

        Show
        xgen-internal-githook Githook User added a comment - Author: {u'username': u'sulabhM', u'name': u'Sulabh Mahajan', u'email': u'sulabh.mahajan@mongodb.com'} Message: WT-3022 Change lsm_tree flags to fields to prevent race conditions (#3148) Branch: mongodb-3.4 https://github.com/wiredtiger/wiredtiger/commit/56f14ea2ea83b871ebaabdd0c0ff14b1dba21644
        Hide
        xgen-internal-githook Githook User added a comment -

        Author:

        {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}

        Message: Import wiredtiger: ca6eee06ffdacc8e191987e64b3791740dad21e1 from branch mongodb-3.4

        ref: 74430da40c..ca6eee06ff
        for: 3.4.0

        WT-2962 Provide a way to configure builtin extensions
        WT-2984 Search of metadata for recently created collection gets WT_NOTFOUND
        WT-3000 Missing log records in recovery when crashing after a log file switch
        WT-3002 Allow applications to exempt threads from eviction.
        WT-3004 lint: declare functions that don't return a value as void
        WT-3011 __wt_curjoin_open() saves the wrong URI in the cursor.
        WT-3012 Test format hanging on LSM configurations
        WT-3015 Test format stuck with 2mb cache
        WT-3016 Tests needed for systems without ftruncate
        WT-3017 Hazard pointer race with page replace causes error
        WT-3018 lint
        WT-3020 LSM primary changes impact parallel-pop-lsm load time
        WT-3022 LSM operations get stuck in __wt_clsm_await_switch waiting for switch on tree to complete
        WT-3023 Test format hang on zSeries
        WT-3024 wtperf medium-lsm-compact test can hang
        Branch: master
        https://github.com/mongodb/mongo/commit/fb4ae3792065e98696e391ac1c4602216b8502cb

        Show
        xgen-internal-githook Githook User added a comment - Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'} Message: Import wiredtiger: ca6eee06ffdacc8e191987e64b3791740dad21e1 from branch mongodb-3.4 ref: 74430da40c..ca6eee06ff for: 3.4.0 WT-2962 Provide a way to configure builtin extensions WT-2984 Search of metadata for recently created collection gets WT_NOTFOUND WT-3000 Missing log records in recovery when crashing after a log file switch WT-3002 Allow applications to exempt threads from eviction. WT-3004 lint: declare functions that don't return a value as void WT-3011 __wt_curjoin_open() saves the wrong URI in the cursor. WT-3012 Test format hanging on LSM configurations WT-3015 Test format stuck with 2mb cache WT-3016 Tests needed for systems without ftruncate WT-3017 Hazard pointer race with page replace causes error WT-3018 lint WT-3020 LSM primary changes impact parallel-pop-lsm load time WT-3022 LSM operations get stuck in __wt_clsm_await_switch waiting for switch on tree to complete WT-3023 Test format hang on zSeries WT-3024 wtperf medium-lsm-compact test can hang Branch: master https://github.com/mongodb/mongo/commit/fb4ae3792065e98696e391ac1c4602216b8502cb
        Hide
        xgen-internal-githook Githook User added a comment -

        Author:

        {u'username': u'sulabhM', u'name': u'Sulabh Mahajan', u'email': u'sulabh.mahajan@mongodb.com'}

        Message: WT-3022 Change lsm_tree flags to fields to prevent race conditions (#3148)
        Branch: mongodb-3.2
        https://github.com/wiredtiger/wiredtiger/commit/56f14ea2ea83b871ebaabdd0c0ff14b1dba21644

        Show
        xgen-internal-githook Githook User added a comment - Author: {u'username': u'sulabhM', u'name': u'Sulabh Mahajan', u'email': u'sulabh.mahajan@mongodb.com'} Message: WT-3022 Change lsm_tree flags to fields to prevent race conditions (#3148) Branch: mongodb-3.2 https://github.com/wiredtiger/wiredtiger/commit/56f14ea2ea83b871ebaabdd0c0ff14b1dba21644
        Hide
        xgen-internal-githook Githook User added a comment -

        Author:

        {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}

        Message: Import wiredtiger: 040e3d6f764c0fb626cb47fede54469f57d0c6e0 from branch mongodb-3.2

        ref: 187707a5c1..040e3d6f76
        for: 3.2.12

        WT-2962 Provide a way to configure builtin extensions
        WT-2984 Search of metadata for recently created collection gets WT_NOTFOUND
        WT-3000 Missing log records in recovery when crashing after a log file switch
        WT-3002 Allow applications to exempt threads from eviction.
        WT-3004 lint: declare functions that don't return a value as void
        WT-3011 __wt_curjoin_open() saves the wrong URI in the cursor.
        WT-3012 Test format hanging on LSM configurations
        WT-3015 Test format stuck with 2mb cache
        WT-3016 Tests needed for systems without ftruncate
        WT-3017 Hazard pointer race with page replace causes error
        WT-3018 lint
        WT-3020 LSM primary changes impact parallel-pop-lsm load time
        WT-3022 LSM operations get stuck in __wt_clsm_await_switch waiting for switch on tree to complete
        WT-3023 Test format hang on zSeries
        WT-3024 wtperf medium-lsm-compact test can hang
        Branch: v3.2
        https://github.com/mongodb/mongo/commit/c586934f7212f6a9a2087cbaf9a8fcd7d7ce9abf

        Show
        xgen-internal-githook Githook User added a comment - Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'} Message: Import wiredtiger: 040e3d6f764c0fb626cb47fede54469f57d0c6e0 from branch mongodb-3.2 ref: 187707a5c1..040e3d6f76 for: 3.2.12 WT-2962 Provide a way to configure builtin extensions WT-2984 Search of metadata for recently created collection gets WT_NOTFOUND WT-3000 Missing log records in recovery when crashing after a log file switch WT-3002 Allow applications to exempt threads from eviction. WT-3004 lint: declare functions that don't return a value as void WT-3011 __wt_curjoin_open() saves the wrong URI in the cursor. WT-3012 Test format hanging on LSM configurations WT-3015 Test format stuck with 2mb cache WT-3016 Tests needed for systems without ftruncate WT-3017 Hazard pointer race with page replace causes error WT-3018 lint WT-3020 LSM primary changes impact parallel-pop-lsm load time WT-3022 LSM operations get stuck in __wt_clsm_await_switch waiting for switch on tree to complete WT-3023 Test format hang on zSeries WT-3024 wtperf medium-lsm-compact test can hang Branch: v3.2 https://github.com/mongodb/mongo/commit/c586934f7212f6a9a2087cbaf9a8fcd7d7ce9abf

          People

          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:
              Days since reply:
              15 weeks, 5 days ago
              Date of 1st Reply:

                Agile