Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-710

permanent ZSESSIONMOVED error after client app reconnects to zookeeper cluster

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 3.2.2
    • 3.3.0
    • server
    • None
    • debian lenny; ia64; xen virtualization

    • Reviewed

    Description

      Originally problem was described on Users mailing list starting with this post.
      Below I restate it in more organized form.

      We occasionally (few times a day) observe that our client application disconnects from Zookeeper cluster.
      Application is written in C++ and we are using libzookeeper_mt library. In version 3.2.2.

      The disconnects we are observing are probably related to some problems with our network infrastructure - we are observing periods with great packet loss between machines in our DC.

      Sometimes after client application (i.e. zookeeper library) reconnects to zookeeper cluster we are observing that all subsequent requests return ZSESSIONMOVED error. Restarting client app helps - we always pass 0 as clientid to zookeeper_init function so old session is not reused.

      On 16-03-2010 we observed few occurences of problem. Example ones:

      • 22:08; client IP 10.1.112.60 (app1); sessionID 0x22767e1c9630000
      • 14:21; client IP 10.1.112.61 (app2); sessionID 0x324dcc1ba580085

      I attach logs of cluster and application nodes (only stuff concerining zookeeper):

      I also made some analysis of case at 22:08:

      • Network glitch which resulted in problem occurred at about 22:08.
      • From what I see since 17:48 node2 was the leader and it did not
        change later yesterday.
      • Client was connected to node2 since 17:50
      • At around 22:09 client tried to connect to every node (1,2,3).
        Connections to node1 and node3 were closed
        with exception "Exception causing close of session 0x22767e1c9630000
        due to java.io.IOException: Read error".
        Connection to node2 stood alive.
      • All subsequent operations were refused with ZSESSIONMOVED error.
        Error visible both on client and on server side.

      Attachments

        1. ZOOKEEPER-710_3.2.patch
          11 kB
          Patrick D. Hunt
        2. ZOOKEEPER-710_3.3.patch
          8 kB
          Patrick D. Hunt
        3. app2.log.2010-03-16.gz
          12 kB
          Lukasz Osipiuk
        4. app1.log.2010-03-16.gz
          176 kB
          Lukasz Osipiuk
        5. zookeeper-node3.log.2010-03-16.gz
          215 kB
          Lukasz Osipiuk
        6. zookeeper-node2.log.2010-03-16.gz
          602 kB
          Lukasz Osipiuk
        7. zookeeper-node1.log.2010-03-16.gz
          178 kB
          Lukasz Osipiuk

        Activity

          People

            phunt Patrick D. Hunt
            losipiuk Lukasz Osipiuk
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: