ICEpush
  1. ICEpush
  2. PUSH-135

Repeated requests sent when server responds with empty responses

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.0
    • Fix Version/s: 3.0.1, EE 3.0.0, 3.1
    • Component/s: Push Library
    • Labels:
      None
    • Environment:
      ICEfaces, mobile device
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.)

      Description


      When an application shuts down, or possibly the device goes to sleep, push requests will be made repeatedly and not stopped until the client is killed.

        Activity

        Hide
        Ted Goddard added a comment -

        I will provide network capture when the problem next occurs.

        Show
        Ted Goddard added a comment - I will provide network capture when the problem next occurs.
        Hide
        Ted Goddard added a comment -

        Sample storm fragment. Runs indefinitely until client or server is killed:

        09:55:50.269688 IP android_f762a396b857ac47.icesoft.domain.49016 > tetra.icesoft.domain.http-alt: tcp 1389
        E...l.@.@.e.
        .'.
        .'<.x....U.@.....(.&=.....
        ..M)...5POST /photoshare/javax.faces.resource/listen.icepush.jsf HTTP/1.1
        Host: tetra.ice:8080
        Accept-Encoding: gzip
        Accept-Language: en-US
        Cookie: JSESSIONID=6592ACFD0CD3087856C70AB60D08F6C2; JSESSIONID=38F2DD47B9FC9E10DB39D8B204F981ED; com.icesoft.user-agent=HyperBrowser/1.0; ice.connection.contextpath=%2Fphotoshare; ice.connection.lease=1307202919157; ice.connection.running=adf94:acquired; ice.notified.pushids=1gnhnvnhs%3A2c18%201gnhnvnhs%3A2c1k%201gnhnvnhs%3A2c28%201gnhnvnhs%3A2c2n%201gnhnvnhs%3A2c2s%201gnhnvnhs%3A2c2u%20vqqkhl55; ice.push.browser=1gnhnvnhs; ice.pushids=1gnhnvnhs:2c18 1gnhnvnhs:2c1g 1gnhnvnhs:2c1k 1gnhnvnhs:2c20 1gnhnvnhs:2c21 1gnhnvnhs:2c25 1gnhnvnhs:2c28 1gnhnvnhs:2c2n 1gnhnvnhs:2c2s 1gnhnvnhs:2c2u 1gnhnvnhs:2c31 vqdrpuaa vqdrpuaa vaxng4zj v2vgz4z1 vvl69oo4 v8rm8p81 vqqkhl55 vsfrfvw1 vsfrfvw1 vsfrfvw1 v1xb255c vwn4qca2
        Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7
        Referer: http://tetra.ice:8080/photoshare/mobile/photo-share.jsf
        ice.push.window: adf94
        User-Agent: Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; Nexus S Build/GRI54) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
        Origin: http://tetra.ice:8080
        Accept: text/xml, text/html, application/xhtml+xml, image/png, text/plain, /;q=0.8
        Content-Type: application/x-www-form-urlencoded; charset=UTF-8
        Cache-Control: no-cache
        Pragma: no-cache
        Content-Length: 547

        m.{.
        09:55:50.269732 IP tetra.icesoft.domain.http-alt > android_f762a396b857ac47.icesoft.domain.49016: tcp 0
        E..4..@.@...
        .'<
        .'....x@.....Z.....c......
        ...5..M)
        09:55:50.275441 IP android_f762a396b857ac47.icesoft.domain.49016 > tetra.icesoft.domain.http-alt: tcp 547
        E..Wl.@.@.h.
        .'.
        .'<.x....Z.@.....(.2!.....
        ..M)...5ice.pushid=1gnhnvnhs%3A2c18&ice.pushid=1gnhnvnhs%3A2c1g&ice.pushid=1gnhnvnhs%3A2c1k&ice.pushid=1gnhnvnhs%3A2c20&ice.pushid=1gnhnvnhs%3A2c21&ice.pushid=1gnhnvnhs%3A2c25&ice.pushid=1gnhnvnhs%3A2c28&ice.pushid=1gnhnvnhs%3A2c2n&ice.pushid=1gnhnvnhs%3A2c2s&ice.pushid=1gnhnvnhs%3A2c2u&ice.pushid=1gnhnvnhs%3A2c31&ice.pushid=vqdrpuaa&ice.pushid=vqdrpuaa&ice.pushid=vaxng4zj&ice.pushid=v2vgz4z1&ice.pushid=vvl69oo4&ice.pushid=v8rm8p81&ice.pushid=vqqkhl55&ice.pushid=vsfrfvw1&ice.pushid=vsfrfvw1&ice.pushid=vsfrfvw1&ice.pushid=v1xb255c&ice.pushid=vwn4qca2..=V
        09:55:50.275491 IP tetra.icesoft.domain.http-alt > android_f762a396b857ac47.icesoft.domain.49016: tcp 0
        E..4..@.@...
        .'<
        .'....x@.....].....c......
        ...5..M)
        09:55:50.277714 IP tetra.icesoft.domain.http-alt > android_f762a396b857ac47.icesoft.domain.49016: tcp 238
        E.."..@.@...
        .'<
        .'....x@.....].....d......
        ...5..M)HTTP/1.1 200 OK
        Server: Apache-Coyote/1.1
        X-Powered-By: JSF/2.0
        Last-Modified: Tue, 31 May 2011 15:41:00 GMT
        ETag: W/"0-1306856460000"
        Expires: Fri, 10 Jun 2011 15:55:50 GMT
        Content-Length: 0
        Date: Fri, 03 Jun 2011 15:55:50 GMT

        Show
        Ted Goddard added a comment - Sample storm fragment. Runs indefinitely until client or server is killed: 09:55:50.269688 IP android_f762a396b857ac47.icesoft.domain.49016 > tetra.icesoft.domain.http-alt: tcp 1389 E...l.@.@.e. .'. .'<.x....U.@.....(.&=..... ..M)...5POST /photoshare/javax.faces.resource/listen.icepush.jsf HTTP/1.1 Host: tetra.ice:8080 Accept-Encoding: gzip Accept-Language: en-US Cookie: JSESSIONID=6592ACFD0CD3087856C70AB60D08F6C2; JSESSIONID=38F2DD47B9FC9E10DB39D8B204F981ED; com.icesoft.user-agent=HyperBrowser/1.0; ice.connection.contextpath=%2Fphotoshare; ice.connection.lease=1307202919157; ice.connection.running=adf94:acquired; ice.notified.pushids=1gnhnvnhs%3A2c18%201gnhnvnhs%3A2c1k%201gnhnvnhs%3A2c28%201gnhnvnhs%3A2c2n%201gnhnvnhs%3A2c2s%201gnhnvnhs%3A2c2u%20vqqkhl55; ice.push.browser=1gnhnvnhs; ice.pushids=1gnhnvnhs:2c18 1gnhnvnhs:2c1g 1gnhnvnhs:2c1k 1gnhnvnhs:2c20 1gnhnvnhs:2c21 1gnhnvnhs:2c25 1gnhnvnhs:2c28 1gnhnvnhs:2c2n 1gnhnvnhs:2c2s 1gnhnvnhs:2c2u 1gnhnvnhs:2c31 vqdrpuaa vqdrpuaa vaxng4zj v2vgz4z1 vvl69oo4 v8rm8p81 vqqkhl55 vsfrfvw1 vsfrfvw1 vsfrfvw1 v1xb255c vwn4qca2 Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7 Referer: http://tetra.ice:8080/photoshare/mobile/photo-share.jsf ice.push.window: adf94 User-Agent: Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; Nexus S Build/GRI54) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Origin: http://tetra.ice:8080 Accept: text/xml, text/html, application/xhtml+xml, image/png, text/plain, / ;q=0.8 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Cache-Control: no-cache Pragma: no-cache Content-Length: 547 m.{. 09:55:50.269732 IP tetra.icesoft.domain.http-alt > android_f762a396b857ac47.icesoft.domain.49016: tcp 0 E..4..@.@... .'< .'....x@.....Z.....c...... ...5..M) 09:55:50.275441 IP android_f762a396b857ac47.icesoft.domain.49016 > tetra.icesoft.domain.http-alt: tcp 547 E..Wl.@.@.h. .'. .'<.x....Z.@.....(.2!..... ..M)...5ice.pushid=1gnhnvnhs%3A2c18&ice.pushid=1gnhnvnhs%3A2c1g&ice.pushid=1gnhnvnhs%3A2c1k&ice.pushid=1gnhnvnhs%3A2c20&ice.pushid=1gnhnvnhs%3A2c21&ice.pushid=1gnhnvnhs%3A2c25&ice.pushid=1gnhnvnhs%3A2c28&ice.pushid=1gnhnvnhs%3A2c2n&ice.pushid=1gnhnvnhs%3A2c2s&ice.pushid=1gnhnvnhs%3A2c2u&ice.pushid=1gnhnvnhs%3A2c31&ice.pushid=vqdrpuaa&ice.pushid=vqdrpuaa&ice.pushid=vaxng4zj&ice.pushid=v2vgz4z1&ice.pushid=vvl69oo4&ice.pushid=v8rm8p81&ice.pushid=vqqkhl55&ice.pushid=vsfrfvw1&ice.pushid=vsfrfvw1&ice.pushid=vsfrfvw1&ice.pushid=v1xb255c&ice.pushid=vwn4qca2..=V 09:55:50.275491 IP tetra.icesoft.domain.http-alt > android_f762a396b857ac47.icesoft.domain.49016: tcp 0 E..4..@.@... .'< .'....x@.....].....c...... ...5..M) 09:55:50.277714 IP tetra.icesoft.domain.http-alt > android_f762a396b857ac47.icesoft.domain.49016: tcp 238 E.."..@.@... .'< .'....x@.....].....d...... ...5..M)HTTP/1.1 200 OK Server: Apache-Coyote/1.1 X-Powered-By: JSF/2.0 Last-Modified: Tue, 31 May 2011 15:41:00 GMT ETag: W/"0-1306856460000" Expires: Fri, 10 Jun 2011 15:55:50 GMT Content-Length: 0 Date: Fri, 03 Jun 2011 15:55:50 GMT
        Hide
        Ted Goddard added a comment -

        auction demo entered an endless loop. ICEpush should not simply accept an empty response, this should be an error condition that causes the connection to be aborted. (It may make sense to allow a fixed number of empty responses.)

        j...j..iPOST /auction/javax.faces.resource/listen.icepush.xml.jsf HTTP/1.1
        Host: localhost:8080
        User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
        Accept-Language: en-us,en;q=0.5
        Accept-Encoding: gzip, deflate
        Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
        Connection: keep-alive
        Content-Type: application/x-www-form-urlencoded; charset=UTF-8
        ice.push.window: eb257
        Referer: http://localhost:8080/auction/auction.jsf
        Content-Length: 19
        Cookie: JSESSIONID=DF49B980FA4019D5DD6D80CA44A01477; ice.push.browser=1gujzmzua; ice.pushids=vnbbnyr1; ice.connection.lease=1320339197363; ice.connection.running=eb257:acquired; ice.connection.contextpath=%2Fauction
        Pragma: no-cache
        Cache-Control: no-cache

        ice.pushid=vnbbnyr1
        10:53:15.756054 IP6 localhost.http-alt > localhost.53951: tcp 0
        `.... .@......................................"..MmF.....(.....
        j...j...
        10:53:15.758321 IP6 localhost.http-alt > localhost.53951: tcp 269
        `....-.@......................................"..MmF.....5.....
        j...j...HTTP/1.1 200 OK
        Server: Apache-Coyote/1.1
        X-Powered-By: JSF/2.0
        Last-Modified: Thu, 03 Nov 2011 16:50:56 GMT
        ETag: W/"0-1320339056000"
        Expires: Thu, 10 Nov 2011 16:53:15 GMT
        Content-Type: application/xml
        Content-Length: 0
        Date: Thu, 03 Nov 2011 16:53:15 GMT

        Show
        Ted Goddard added a comment - auction demo entered an endless loop. ICEpush should not simply accept an empty response, this should be an error condition that causes the connection to be aborted. (It may make sense to allow a fixed number of empty responses.) j...j..iPOST /auction/javax.faces.resource/listen.icepush.xml.jsf HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9, / ;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection: keep-alive Content-Type: application/x-www-form-urlencoded; charset=UTF-8 ice.push.window: eb257 Referer: http://localhost:8080/auction/auction.jsf Content-Length: 19 Cookie: JSESSIONID=DF49B980FA4019D5DD6D80CA44A01477; ice.push.browser=1gujzmzua; ice.pushids=vnbbnyr1; ice.connection.lease=1320339197363; ice.connection.running=eb257:acquired; ice.connection.contextpath=%2Fauction Pragma: no-cache Cache-Control: no-cache ice.pushid=vnbbnyr1 10:53:15.756054 IP6 localhost.http-alt > localhost.53951: tcp 0 `.... .@......................................"..MmF.....(..... j...j... 10:53:15.758321 IP6 localhost.http-alt > localhost.53951: tcp 269 `....-.@......................................"..MmF.....5..... j...j...HTTP/1.1 200 OK Server: Apache-Coyote/1.1 X-Powered-By: JSF/2.0 Last-Modified: Thu, 03 Nov 2011 16:50:56 GMT ETag: W/"0-1320339056000" Expires: Thu, 10 Nov 2011 16:53:15 GMT Content-Type: application/xml Content-Length: 0 Date: Thu, 03 Nov 2011 16:53:15 GMT
        Hide
        Mircea Toma added a comment -

        Haven't been able to reproduce this issue. Also nobody else has seen it in quite a while. closing this as "cannot reproduce".

        Show
        Mircea Toma added a comment - Haven't been able to reproduce this issue. Also nobody else has seen it in quite a while. closing this as "cannot reproduce".
        Hide
        Ted Goddard added a comment -

        I'm seeing it right now:

        ........POST /mediacast/javax.faces.resource/listen.icepush.xml.jsf HTTP/1.1
        Host: localhost:8080
        Connection: keep-alive
        Content-Length: 19
        Origin: http://localhost:8080
        ice.push.window: b42f6
        User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1041.0 Safari/535.21
        Content-Type: application/x-www-form-urlencoded; charset=UTF-8
        Accept: /
        Referer: http://localhost:8080/mediacast/mediacast.jsf
        Accept-Encoding: gzip,deflate,sdch
        Accept-Language: en-US,en;q=0.8
        Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
        Cookie: JSESSIONID=A08F256BB58FC8892B095989227AF814; ice.push.browser=1gzhkkcgg; ice.pushids=vo4yn402; ice.connection.running=b42f6:acquired; ice.connection.lease=1331226542551; ice.connection.contextpath=%2Fmediacast

        ice.pushid=vo4yn402
        10:09:01.428605 IP6 localhost.http-alt > localhost.63883: tcp 0
        `.... .@....................................W............(.....
        ........
        10:09:01.428991 IP tetra.icesoft.domain.http-alt > tetra.icesoft.domain.63882: tcp 269
        E..A..@.@...
        .'<
        .'<....*.:...Vk...~c......
        ........HTTP/1.1 200 OK
        Server: Apache-Coyote/1.1
        X-Powered-By: JSF/2.0
        Last-Modified: Thu, 08 Mar 2012 17:07:14 GMT
        ETag: W/"0-1331226434000"
        Expires: Thu, 15 Mar 2012 17:09:01 GMT
        Content-Type: application/xml
        Content-Length: 0
        Date: Thu, 08 Mar 2012 17:09:00 GMT

        This looping request/response (at a very high rate) sometimes begins when the application is restarted. The bridge should not continually make requests to the server if the response is empty.

        Show
        Ted Goddard added a comment - I'm seeing it right now: ........POST /mediacast/javax.faces.resource/listen.icepush.xml.jsf HTTP/1.1 Host: localhost:8080 Connection: keep-alive Content-Length: 19 Origin: http://localhost:8080 ice.push.window: b42f6 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1041.0 Safari/535.21 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Accept: / Referer: http://localhost:8080/mediacast/mediacast.jsf Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 Cookie: JSESSIONID=A08F256BB58FC8892B095989227AF814; ice.push.browser=1gzhkkcgg; ice.pushids=vo4yn402; ice.connection.running=b42f6:acquired; ice.connection.lease=1331226542551; ice.connection.contextpath=%2Fmediacast ice.pushid=vo4yn402 10:09:01.428605 IP6 localhost.http-alt > localhost.63883: tcp 0 `.... .@....................................W............(..... ........ 10:09:01.428991 IP tetra.icesoft.domain.http-alt > tetra.icesoft.domain.63882: tcp 269 E..A..@.@... .'< .'<....*.:...Vk...~c...... ........HTTP/1.1 200 OK Server: Apache-Coyote/1.1 X-Powered-By: JSF/2.0 Last-Modified: Thu, 08 Mar 2012 17:07:14 GMT ETag: W/"0-1331226434000" Expires: Thu, 15 Mar 2012 17:09:01 GMT Content-Type: application/xml Content-Length: 0 Date: Thu, 08 Mar 2012 17:09:00 GMT This looping request/response (at a very high rate) sometimes begins when the application is restarted. The bridge should not continually make requests to the server if the response is empty.
        Hide
        Ted Goddard added a comment -

        Re-opening issue to be considered fixed as follows: under no condition will ICEpush return an empty response, and after a small number (say 3) empty responses in a row, the client-side bridge will abort the connection.

        Show
        Ted Goddard added a comment - Re-opening issue to be considered fixed as follows: under no condition will ICEpush return an empty response, and after a small number (say 3) empty responses in a row, the client-side bridge will abort the connection.
        Hide
        Mircea Toma added a comment -

        Introduced mechanism that detects when consecutive empty responses are received. The number of retries can be set by the org.icepush.emptyResponseRetries context parameter. The default number of retries is 3. Once the retries are consumed the bridge will stop sending blocking requests.

        Show
        Mircea Toma added a comment - Introduced mechanism that detects when consecutive empty responses are received. The number of retries can be set by the org.icepush.emptyResponseRetries context parameter. The default number of retries is 3. Once the retries are consumed the bridge will stop sending blocking requests.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Ted Goddard
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: