Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0
    • Fix Version/s: b20
    • Component/s: load_balancer
    • Labels:
      None
    • Environment:

      Operating System: All
      Platform: All

    • Issuezilla Id:
      1,815

      Description

      Sometimes when we issue a enable-converged-lb-server command, the admin command
      hangs forever.

      The admin command is waiting for all the servers to complete the command, but
      one server doesn't complete the command; it hangs in:
      Thread t@370: (state = BLOCKED)

      • java.lang.Object.wait(long) @bci=322967472 (Interpreted frame)
      • java.lang.Object.wait(long) @bci=0 (Interpreted frame)
      • java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
      • org.jvnet.glassfish.comms.clb.core.Controller.cleanUp() @bci=83, line=441
        (Interpreted frame)
        -
        org.jvnet.glassfish.comms.clb.core.ControllerInitializer.setController(org.jvnet.glassfish.comms.clb.core.Controller)
        @bci=114, line=109 (Interpreted frame)
      • org.jvnet.glassfish.comms.clb.admin.CLBConfigurator.reconfig() @bci=451,
        line=200 (Interpreted frame)
      • org.jvnet.glassfish.comms.clb.admin.CLBConfigurator.reload(java.lang.String)
        @bci=182, line=143 (Interpreted frame)
        -
        org.jvnet.glassfish.comms.clb.admin.ConvergedLBEventListenerImpl.synchronizeCLBXml(org.jvnet.glassfish.comms.admin.event.extensions.clb.ConvergedLbEvent)
        @bci=565, line=199 (Interpreted frame)
        -
        org.jvnet.glassfish.comms.clb.admin.ConvergedLBEventListenerImpl.handleUpdate(org.jvnet.glassfish.comms.admin.event.extensions.clb.ConvergedLbEvent)
        @bci=2,
        line=100 (Interpreted frame)
      • sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method,
        java.lang.Object, java.lang.Object[]) @bci=0 (Compiled frame)
      • sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object,
        java.lang.Object[]) @bci=87, line=39 (Compiled frame)
      • sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object,
        java.lang.Object[]) @bci=6, line=25 (Compiled frame)
      • java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])
        @bci=111, line=585 (Compiled frame)
        -
        com.sun.enterprise.admin.event.BaseAdminEventHandler.invokeNotification(com.sun.enterprise.admin.event.AdminEventListener,
        java.lang.String, com.sun.enterprise.admin.event.AdminEvent, java.lang.Class)
        @bci=33, line=90 (Interpreted frame)
        ...

      The reason for that is because Controller.java fails to synchronizes the
      waitingForCleanup variable. That variable needs to be guarded by the lock on the
      requestCount variable used for the wait/notify.

        Activity

        Hide
        kshitiz_saxena added a comment -

        Modified such that flag waitingForCleanup is updated/accessed under synchronized
        block of requestCount.

        Fix will be available in MS2 build.

        Show
        kshitiz_saxena added a comment - Modified such that flag waitingForCleanup is updated/accessed under synchronized block of requestCount. Fix will be available in MS2 build.

          People

          • Assignee:
            kshitiz_saxena
            Reporter:
            Scott Oaks
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: