ICEpush
  1. ICEpush
  2. PUSH-108

Push fails for multiple applications

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-Alpha3
    • Fix Version/s: 2.0.0
    • Component/s: Push Library
    • Labels:
      None
    • Environment:
      ICEpush, EPS

      Description

      When two copies of auction, auction1.war and auction2.war are deployed to the same server along with eps.war, push updates will begin but will eventually halt.

        Activity

        Hide
        Ted Goddard added a comment -

        Both ICEpush JavaScript consoles captured below. Since both windows appear to be attempting a connection to the server, it appears that they are not successfully electing a master window:

        [icepush.9ade1] : picked up notifications for this window: v499jla7
        [icepush.9ade1.async-connection] : failed to connect, first retry...
        [icepush.9ade1] : connection in trouble
        [icepush.9ade1.async-connection] : closing previous connection...
        [icepush.9ade1.async-connection] : connect...
        [icepush.9ade1] : received notifications: v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5
        [icepush.9ade1.async-connection] : closing previous connection...
        [icepush.9ade1.async-connection] : connect...
        [icepush.9ade1] : picked up notifications for this window: v499jla7
        [icepush.9ade1.async-connection] : blocking connection stopped at server's request...
        [icepush.9ade1] : picked up notifications for this window: v499jla7
        [icepush.9ade1.async-connection] : failed to connect, first retry...
        [icepush.9ade1] : connection in trouble
        [icepush.9ade1.async-connection] : closing previous connection...
        [icepush.9ade1.async-connection] : connect...
        [icepush.9ade1] : received notifications: v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5
        [icepush.9ade1.async-connection] : closing previous connection...
        [icepush.9ade1.async-connection] : connect...
        [icepush.9ade1] : picked up notifications for this window: v499jla7
        [icepush.9ade1.async-connection] : blocking connection stopped at server's request...
        [icepush.9ade1] : picked up notifications for this window: v499jla7

        [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7
        [icepush.7e972.async-connection] : failed to connect, first retry...
        [icepush.7e972] : connection in trouble
        [icepush.7e972.async-connection] : closing previous connection...
        [icepush.7e972.async-connection] : connect...
        [icepush.7e972] : received notifications: v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5
        [icepush.7e972.async-connection] : closing previous connection...
        [icepush.7e972.async-connection] : connect...
        [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7
        [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7
        [icepush.7e972.async-connection] : failed to connect, first retry...
        [icepush.7e972] : connection in trouble
        [icepush.7e972.async-connection] : closing previous connection...
        [icepush.7e972.async-connection] : connect...
        [icepush.7e972] : received notifications: v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5
        [icepush.7e972.async-connection] : closing previous connection...
        [icepush.7e972.async-connection] : connect...
        [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7
        [icepush.7e972.async-connection] : failed to connect, first retry...
        [icepush.7e972] : connection in trouble
        [icepush.7e972.async-connection] : closing previous connection...
        [icepush.7e972.async-connection] : connect...
        [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7
        [icepush.7e972] : received notifications: v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5
        [icepush.7e972.async-connection] : closing previous connection...
        [icepush.7e972.async-connection] : connect...
        [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7

        Show
        Ted Goddard added a comment - Both ICEpush JavaScript consoles captured below. Since both windows appear to be attempting a connection to the server, it appears that they are not successfully electing a master window: [icepush.9ade1] : picked up notifications for this window: v499jla7 [icepush.9ade1.async-connection] : failed to connect, first retry... [icepush.9ade1] : connection in trouble [icepush.9ade1.async-connection] : closing previous connection... [icepush.9ade1.async-connection] : connect... [icepush.9ade1] : received notifications: v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5 [icepush.9ade1.async-connection] : closing previous connection... [icepush.9ade1.async-connection] : connect... [icepush.9ade1] : picked up notifications for this window: v499jla7 [icepush.9ade1.async-connection] : blocking connection stopped at server's request... [icepush.9ade1] : picked up notifications for this window: v499jla7 [icepush.9ade1.async-connection] : failed to connect, first retry... [icepush.9ade1] : connection in trouble [icepush.9ade1.async-connection] : closing previous connection... [icepush.9ade1.async-connection] : connect... [icepush.9ade1] : received notifications: v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5 [icepush.9ade1.async-connection] : closing previous connection... [icepush.9ade1.async-connection] : connect... [icepush.9ade1] : picked up notifications for this window: v499jla7 [icepush.9ade1.async-connection] : blocking connection stopped at server's request... [icepush.9ade1] : picked up notifications for this window: v499jla7 [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7 [icepush.7e972.async-connection] : failed to connect, first retry... [icepush.7e972] : connection in trouble [icepush.7e972.async-connection] : closing previous connection... [icepush.7e972.async-connection] : connect... [icepush.7e972] : received notifications: v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5 [icepush.7e972.async-connection] : closing previous connection... [icepush.7e972.async-connection] : connect... [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7 [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7 [icepush.7e972.async-connection] : failed to connect, first retry... [icepush.7e972] : connection in trouble [icepush.7e972.async-connection] : closing previous connection... [icepush.7e972.async-connection] : connect... [icepush.7e972] : received notifications: v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5 [icepush.7e972.async-connection] : closing previous connection... [icepush.7e972.async-connection] : connect... [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7 [icepush.7e972.async-connection] : failed to connect, first retry... [icepush.7e972] : connection in trouble [icepush.7e972.async-connection] : closing previous connection... [icepush.7e972.async-connection] : connect... [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7 [icepush.7e972] : received notifications: v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5,v499jla7,v7k454d5 [icepush.7e972.async-connection] : closing previous connection... [icepush.7e972.async-connection] : connect... [icepush.7e972] : picked up notifications for this window: v7k454d5,v499jla7
        Hide
        Ted Goddard added a comment -

        Logging server-side shows long periods where the browser has not established the blocking connection with the "listen" request.

        Show
        Ted Goddard added a comment - Logging server-side shows long periods where the browser has not established the blocking connection with the "listen" request.
        Hide
        Ted Goddard added a comment -

        Note the repeated PUSHID notifications – these should be coalesced.

        Show
        Ted Goddard added a comment - Note the repeated PUSHID notifications – these should be coalesced.
        Hide
        Ted Goddard added a comment -

        This is easily reproduced with a single auction application using EPS, simultaneously displayed in two browser windows.

        Show
        Ted Goddard added a comment - This is easily reproduced with a single auction application using EPS, simultaneously displayed in two browser windows.
        Hide
        Ted Goddard added a comment -

        This is not reproducible with a single window with an EPS application, but approximately 30s after a second window is opened, connection problems appear.

        Show
        Ted Goddard added a comment - This is not reproducible with a single window with an EPS application, but approximately 30s after a second window is opened, connection problems appear.
        Hide
        Ted Goddard added a comment -

        Disabling the timeoutBomb allows push to continue for single application, multi-window with EPS:

        function resetTimeoutBomb() {
        stop(timeoutBomb);
        timeoutBomb = runOnce(Delay(function() {
        info(logger, 'dud timeoutbomb ');
        return;

        Show
        Ted Goddard added a comment - Disabling the timeoutBomb allows push to continue for single application, multi-window with EPS: function resetTimeoutBomb() { stop(timeoutBomb); timeoutBomb = runOnce(Delay(function() { info(logger, 'dud timeoutbomb '); return;
        Hide
        Ted Goddard added a comment -

        Please try modifying icepush.js as described to see if it improves your test as well (of course, the connection will not time out, but that can be addressed later).

        Show
        Ted Goddard added a comment - Please try modifying icepush.js as described to see if it improves your test as well (of course, the connection will not time out, but that can be addressed later).
        Hide
        Ted Goddard added a comment -

        The first step will be to understand why the timeoutbomb does not cause the connection to be continually reset in the multi-window single-application case. Likely there is some initialization that is not taking place properly when EPS is present (perhaps a cookie path problem).

        Show
        Ted Goddard added a comment - The first step will be to understand why the timeoutbomb does not cause the connection to be continually reset in the multi-window single-application case. Likely there is some initialization that is not taking place properly when EPS is present (perhaps a cookie path problem).
        Hide
        Jack Van Ooststroom added a comment -

        Basically the issue can be described as follows:

        if a tab was the owner of the blocking connection once, but lost it eventually to another tab, its timeout bomb wasn't getting stopped causing superfluous blocking requests to be send by the losing tab.

        Now if a JavaScript Bridge instance detects it's not the owner of the blocking connection it will stop its timeout bomb. Marking this one as FIXED.

        Show
        Jack Van Ooststroom added a comment - Basically the issue can be described as follows: if a tab was the owner of the blocking connection once, but lost it eventually to another tab, its timeout bomb wasn't getting stopped causing superfluous blocking requests to be send by the losing tab. Now if a JavaScript Bridge instance detects it's not the owner of the blocking connection it will stop its timeout bomb. Marking this one as FIXED.

          People

          • Assignee:
            Jack Van Ooststroom
            Reporter:
            Ted Goddard
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: