Uploaded image for project: 'Undertow'
  1. Undertow
  2. UNDERTOW-446

ModCluster state not restored after proxy restart

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 1.3.0.Beta1, 1.2.7.Final
    • 1.2.3.Final
    • Proxy
    • None

      I am using Undertow+ModCluster as frontend and WildFly 8.2 as backend.
      When both are started, all is working fine, and I can see the correct state (balancer, nodes, and contexts) in the mod_cluster_manager admin page.
      But when I quickly restart the frontend, the state is lost and never restored (re-published) by the backend.
      If I stop the front for more than 10s then start, the problem doesn't happen : the state is correcly restored by the backend.
      I think that the backend doesn't "see" the frontend as DOWN when it is restarted too quickly.
      Please note that this problem doesn't happen with Apache+ModCluster.
      I found the two implementations respond differently to the STATUS request when the node is not known (which is the case after frontend restart).
      The Apache implementation returns an http status code 500, whereas the Undertow implementation returns a 200 with "State=NOTOK" in the body (see attachments).
      I think this is why it works with Apache and not with Undertow, the ModCluster client part (in WildFly) will re-publish only when the STATUS request fails with status code 500 and not with status code 200.
      The code involved in handling STATUS requests is here for Undertow and here for Apache.

        1. apache-modcluster.trace
          0.4 kB
          Gregory Lardiere
        2. undertow-modcluster.trace
          0.3 kB
          Gregory Lardiere

            sdouglas1@redhat.com Stuart Douglas
            gregory.lardiere Gregory Lardiere (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: