ICEpush
  1. ICEpush
  2. PUSH-293

AsyncAdaptingServlet and ThreadBlockingAdaptingServlet should take the up-to-date heartbeatInterval value into account for the timeout

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 3.3, EE-3.3.0.GA_P01
    • Fix Version/s: 4.0.BETA, EE-3.3.0.GA_P02, 4.0
    • Component/s: Push Library
    • Labels:
      None
    • Environment:
      ICEpush (asynchronous and thread blocking mode)

      Description

      - Found an issue with AsyncAdaptingServlet:
        * When using async-supported we use the AsyncAdaptingServlet and its AsyncRequestResponse class
        * Upon an incoming request we get the AsyncContext and set the timeout as follows:

                  long heartbeatTimeout = configuration.getAttributeAsLong("heartbeatTimeout", ConfigurationServlet.DefaultHeartbeatTimeout);
                  asyncContext.setTimeout(heartbeatTimeout * 2);

        * If I'm not mistaken, this ends up to be a constant 30 seconds
        * Meaning it will automatically timeout after 30 seconds and sends some default request (which I don't know the details of)
        * As we're using the Adaptive Heartbeat, these 30 seconds won't be enough
        * ThreadBlockingRequestResponse does have an additional timeout mechanism as well, but it's set to 600 seconds
      - As the ICEpush mechanism itself in any environment times out using a <noop /> response after 3 * heartbeatTimeout or after configured maxHeartbeatInterval, the AsyncRequestResponse's AsyncContext.setTimeout(timeout) and ThreadBlockingRequestResponse's Semaphore.tryAcquire(timeout, TimeUnit) should exceed the 3 * heartbeatTimeout or configured maxHeartbeatInterval

        Issue Links

          Activity

          Jack Van Ooststroom created issue -
          Jack Van Ooststroom made changes -
          Field Original Value New Value
          Assignee Jack Van Ooststroom [ jack.van.ooststroom ]
          Jack Van Ooststroom made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Hide
          Jack Van Ooststroom added a comment -

          Sending core/src/main/java/org/icepush/servlet/AsyncAdaptingServlet.java
          Sending core/src/main/java/org/icepush/servlet/BrowserBoundServlet.java
          Sending core/src/main/java/org/icepush/servlet/EnvironmentAdaptingServlet.java
          Sending core/src/main/java/org/icepush/servlet/ThreadBlockingAdaptingServlet.java
          Transmitting file data ....
          Committed revision 40351.

          Sending core-ee/src/main/java/com/icesoft/icepush/BrowserBoundServlet.java
          Sending eps/src/main/java/com/icesoft/push/servlet/BrowserBoundServlet.java
          Transmitting file data ..
          Committed revision 37630.

          Sending src/main/java/com/icesoft/notify/push/servlet/AsyncAdaptingServlet.java
          Sending src/main/java/com/icesoft/notify/push/servlet/EnvironmentAdaptingServlet.java
          Sending src/main/java/com/icesoft/notify/push/servlet/ThreadBlockingAdaptingServlet.java
          Sending src/main/java/com/icesoft/notify/server/NotificationResource.java
          Transmitting file data ....
          Committed revision 37631.

          Show
          Jack Van Ooststroom added a comment - Sending core/src/main/java/org/icepush/servlet/AsyncAdaptingServlet.java Sending core/src/main/java/org/icepush/servlet/BrowserBoundServlet.java Sending core/src/main/java/org/icepush/servlet/EnvironmentAdaptingServlet.java Sending core/src/main/java/org/icepush/servlet/ThreadBlockingAdaptingServlet.java Transmitting file data .... Committed revision 40351. Sending core-ee/src/main/java/com/icesoft/icepush/BrowserBoundServlet.java Sending eps/src/main/java/com/icesoft/push/servlet/BrowserBoundServlet.java Transmitting file data .. Committed revision 37630. Sending src/main/java/com/icesoft/notify/push/servlet/AsyncAdaptingServlet.java Sending src/main/java/com/icesoft/notify/push/servlet/EnvironmentAdaptingServlet.java Sending src/main/java/com/icesoft/notify/push/servlet/ThreadBlockingAdaptingServlet.java Sending src/main/java/com/icesoft/notify/server/NotificationResource.java Transmitting file data .... Committed revision 37631.
          Jack Van Ooststroom made changes -
          Comment [ Sending core/src/main/java/org/icepush/servlet/AsyncAdaptingServlet.java
          Sending core/src/main/java/org/icepush/servlet/BrowserBoundServlet.java
          Sending core/src/main/java/org/icepush/servlet/EnvironmentAdaptingServlet.java
          Sending core/src/main/java/org/icepush/servlet/ThreadBlockingAdaptingServlet.java
          Transmitting file data ....
          Committed revision 40351.

          Sending core-ee/src/main/java/com/icesoft/icepush/BrowserBoundServlet.java
          Sending eps/src/main/java/com/icesoft/push/servlet/BrowserBoundServlet.java
          Transmitting file data ..
          Committed revision 37630.

          Sending src/main/java/com/icesoft/notify/push/servlet/AsyncAdaptingServlet.java
          Sending src/main/java/com/icesoft/notify/push/servlet/EnvironmentAdaptingServlet.java
          Sending src/main/java/com/icesoft/notify/push/servlet/ThreadBlockingAdaptingServlet.java
          Sending src/main/java/com/icesoft/notify/server/NotificationResource.java
          Transmitting file data ....
          Committed revision 37631.
          ]
          Hide
          Jack Van Ooststroom added a comment -

          The Slot for the heartbeatInterval is now also passed down to the EnvironmentAdaptingServlet, which in turn passes it down to the AsyncAdaptingServlet and the ThreadBlockingAdaptingServlet. The latter two Servlets use the heartbeatInterval accordingly utilizing its dynamic value. Marking this one as FIXED.

          Show
          Jack Van Ooststroom added a comment - The Slot for the heartbeatInterval is now also passed down to the EnvironmentAdaptingServlet, which in turn passes it down to the AsyncAdaptingServlet and the ThreadBlockingAdaptingServlet. The latter two Servlets use the heartbeatInterval accordingly utilizing its dynamic value. Marking this one as FIXED.
          Jack Van Ooststroom made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Hide
          Jack Van Ooststroom added a comment -

          This one should be back-ported to EE-3.3.0.GA_P02.

          Show
          Jack Van Ooststroom added a comment - This one should be back-ported to EE-3.3.0.GA_P02.
          Jack Van Ooststroom made changes -
          Resolution Fixed [ 1 ]
          Status Resolved [ 5 ] Reopened [ 4 ]
          Jack Van Ooststroom made changes -
          Priority Major [ 3 ] Blocker [ 1 ]
          Jack Van Ooststroom made changes -
          Fix Version/s EE-3.3.0.GA_P02 [ 11370 ]
          Jack Van Ooststroom made changes -
          Link This issue blocks PUSH-316 [ PUSH-316 ]
          Hide
          Jack Van Ooststroom added a comment -

          Sending icepush-ee/core/src/main/java/org/icepush/servlet/AsyncAdaptingServlet.java
          Sending icepush-ee/core/src/main/java/org/icepush/servlet/BrowserBoundServlet.java
          Sending icepush-ee/core/src/main/java/org/icepush/servlet/EnvironmentAdaptingServlet.java
          Sending icepush-ee/core/src/main/java/org/icepush/servlet/ThreadBlockingAdaptingServlet.java
          Transmitting file data ....
          Committed revision 41224.

          Sending icepush-ee/core-ee/src/main/java/com/icesoft/icepush/BrowserBoundServlet.java
          Transmitting file data .
          Committed revision 38462.

          Show
          Jack Van Ooststroom added a comment - Sending icepush-ee/core/src/main/java/org/icepush/servlet/AsyncAdaptingServlet.java Sending icepush-ee/core/src/main/java/org/icepush/servlet/BrowserBoundServlet.java Sending icepush-ee/core/src/main/java/org/icepush/servlet/EnvironmentAdaptingServlet.java Sending icepush-ee/core/src/main/java/org/icepush/servlet/ThreadBlockingAdaptingServlet.java Transmitting file data .... Committed revision 41224. Sending icepush-ee/core-ee/src/main/java/com/icesoft/icepush/BrowserBoundServlet.java Transmitting file data . Committed revision 38462.
          Hide
          Jack Van Ooststroom added a comment -

          I back-ported this fix to EE-3.3.0.GA_P02. Marking as FIXED again.

          Show
          Jack Van Ooststroom added a comment - I back-ported this fix to EE-3.3.0.GA_P02. Marking as FIXED again.
          Jack Van Ooststroom made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Ken Fyten made changes -
          Fix Version/s 4.0 [ 11383 ]
          Fix Version/s EE-4.0.0.GA [ 11170 ]
          Ken Fyten made changes -
          Status Resolved [ 5 ] Closed [ 6 ]

            People

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

              Dates

              • Created:
                Updated:
                Resolved: