Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-8539

Double(or tripple ...) ZooKeeper listeners of the same type when Master recovers from ZK SessionExpiredException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.98.0, 0.94.7, 0.95.0
    • 0.98.0, 0.94.8, 0.95.1
    • master
    • None
    • Reviewed

    Description

      When Master tries to recover from zookeeper session expired exceptions, we don't clean old registered listener instances. Therefore, it may end up we have two(or more) listeners to double handling same events. Attached a screen shot from debugger to show the issue.

      I considered to limit one listener per class while I think that would limit the listener usage so I choose to clear exiting listeners during recovery for the fix.

      (This issue is unrelated to the issue HBASE-8365 because I verified there is no dup-listeners when HBASE-8365 happened)

      Attachments

        1. 8539-addendum-v2.patch
          5 kB
          Ted Yu
        2. double-registered listeners.png
          56 kB
          Jeffrey Zhong
        3. hbase-8539.patch
          3 kB
          Ted Yu
        4. hbase-8539.patch
          3 kB
          Jeffrey Zhong
        5. hbase-8539-0.94.patch
          3 kB
          Jeffrey Zhong
        6. hbase-8539-0.94-addendum-03.patch
          3 kB
          Jeffrey Zhong
        7. hbase-8539-0.94-addendum-04.patch
          3 kB
          Jeffrey Zhong
        8. hbase-8539-addendum-03.patch
          4 kB
          Jeffrey Zhong
        9. hbase-8539-addendum-04.patch
          4 kB
          Jeffrey Zhong

        Activity

          People

            jeffreyz Jeffrey Zhong
            jeffreyz Jeffrey Zhong
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: