ICEfaces
  1. ICEfaces
  2. ICE-2817

Async applications with concurrentDomViews true can misbehave when more than 2 browser windows are used.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7Beta1
    • Fix Version/s: 1.7RC1, 1.7
    • Component/s: Bridge, Framework
    • Labels:
      None
    • Environment:
      concurrentDomViews=true synchronousUpdate=false

      Description

      In trying to replicate a separate issue, I was running AuctionMonitor and opening two browser windows from the same browser. Going back and forth between them, I couldn't get the issue to happen so I opened a 3rd browser window. This appeared to cause the first 2 browser windows to start having communication issues. The behaviour is that the asynch communication appears to get an invalid response and re-open the connection, which generates another invalid response and repeats very quickly.

      I was able to replicate the behaviour on Firefox, IE, and Safari. It would happen after 3 browser windows were opened but sometimes it would require 4 or 5. The typical output from the malfunctioning browser windows is as follows:

      Firebug in Firefox shows this:

      POST http://localhost:8080/auctionMonitor/block/receive-updated-views (46ms)icefaces-d2d.js (line 2219)
      [window.vjZR#1.async-connection.blocking] [6997550] : receive [200] OKicefaces-d2d.js (line 2017)
      [window] Parsing erroricefaces-d2d.js (line 2029)
      POST http://localhost:8080/auctionMonitor/block/receive-updated-views (69ms)icefaces-d2d.js (line 2219)
      [window] XML Parsing Error: no element found Location: http://localhost:8080/auctionMonitor/block/receive-updated-views Line Number 1, Column 1:icefaces-d2d.js (line 2029)
      [window.vjZR#1.async-connection] receive broadcast failed TypeError: sourceNode is null message=sourceNode is null


      Our own bridge console in Safari shows this:

      [window.Dpp9#2.async-connection] : receive broadcast failed
      TypeError: Null value


      Our own bridge console in IE 7 shows this:

      [window.NH1C#6.async-connection] : receive broadcast failed
      [object Error]

      There is nothing on the server side to indicate that anything is wrong (the server logs don't show any stack traces or errors) and you can still generally interact with the application but due to the rapidity of the communication cycle, CPU usage tends to go up pretty dramatically.

        Issue Links

          Activity

          Deryk Sinotte created issue -
          Hide
          Deryk Sinotte added a comment -

          Assigning to Maestro Mircea

          Show
          Deryk Sinotte added a comment - Assigning to Maestro Mircea
          Deryk Sinotte made changes -
          Field Original Value New Value
          Assignee Mircea Toma [ mircea.toma ]
          Ken Fyten made changes -
          Assignee Priority P1
          Hide
          Ken Fyten added a comment -

          Possible duplicate of ICE-2805.

          Show
          Ken Fyten added a comment - Possible duplicate of ICE-2805.
          Mircea Toma made changes -
          Fix Version/s 1.7 [ 10080 ]
          Assignee Priority P1 P2
          Ken Fyten made changes -
          Assignee Priority P2 P1
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #15961 Thu Mar 06 17:08:07 MST 2008 mircea.toma Mark empty responses that are supposed to terminate the blocking connection (as opposed to empty responses randomly sent by some app. servers).
          ICE-2817
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/core/SendUpdatedViews.java
          Commit graph MODIFY /icefaces/trunk/icefaces/bridge/src/connection.async.js
          Hide
          Mircea Toma added a comment -

          This is a regression created by the fix I applied for ICE-2776.

          Show
          Mircea Toma added a comment - This is a regression created by the fix I applied for ICE-2776 .
          Hide
          Mircea Toma added a comment -

          Mark empty responses that are supposed to terminate the blocking connection (as opposed to empty responses randomly send by some app. servers).

          Show
          Mircea Toma added a comment - Mark empty responses that are supposed to terminate the blocking connection (as opposed to empty responses randomly send by some app. servers).
          Mircea Toma made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #15967 Fri Mar 07 11:31:22 MST 2008 mircea.toma Avoid invoking receive callbacks on empty responses.
          ICE-2817
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/webapp/http/core/SendUpdatedViews.java
          Commit graph MODIFY /icefaces/trunk/icefaces/bridge/src/connection.async.js
          Commit graph MODIFY /icefaces/trunk/icefaces/bridge/lib/ajax.js
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #15968 Fri Mar 07 11:43:24 MST 2008 mircea.toma Ignore 'pong' commands in bridge instances that don't own the bridge.
          ICE-2817
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/bridge/src/connection.async.js
          Hide
          Mandeep Hayher added a comment -

          Could not reproduce the problem on Revision:15961

          1) Although javascript error was seen everytime a 3+window was opened
          window.8UDx#2.async-connection receive broadcast failed TypeError: _355.contentAsDOM() has no properties message=_355.contentAsDOM() has no properties

          Also saw connection lost message sometimes.

          Show
          Mandeep Hayher added a comment - Could not reproduce the problem on Revision:15961 1) Although javascript error was seen everytime a 3+window was opened window.8UDx#2.async-connection receive broadcast failed TypeError: _355.contentAsDOM() has no properties message=_355.contentAsDOM() has no properties Also saw connection lost message sometimes.
          Hide
          Mandeep Hayher added a comment -

          Revision : 15969
          Cannot reproduce no properties message any more.

          Still getting following javascript errors and msgs:

          1) when one of the windows is closed
          $A is not defined
          (no name)()icefaces-d2d.js (line 150)
          [Break on this error] return _29.apply(_2b,_2a.concat($A(arguments)));
          icefaces-d2d.js (line 150)
          $A is not defined
          [Break on this error] return _29.apply(_2b,_2a.concat($A(arguments)));

          2) window.C4sy#1] connection to server was lost

          Show
          Mandeep Hayher added a comment - Revision : 15969 Cannot reproduce no properties message any more. Still getting following javascript errors and msgs: 1) when one of the windows is closed $A is not defined (no name)()icefaces-d2d.js (line 150) [Break on this error] return _29.apply(_2b,_2a.concat($A(arguments))); icefaces-d2d.js (line 150) $A is not defined [Break on this error] return _29.apply(_2b,_2a.concat($A(arguments))); 2) window.C4sy#1] connection to server was lost
          Mandeep Hayher made changes -
          Resolution Fixed [ 1 ]
          Status Resolved [ 5 ] Reopened [ 4 ]
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #15982 Mon Mar 10 12:11:39 MDT 2008 mircea.toma Fix XMLHttpRequest callbacks.
          ICE-2805, ICE-2817, ICE-2776, ICE-1919
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/bridge/lib/ajax.js
          Mircea Toma made changes -
          Link This issue depends on ICE-1919 [ ICE-1919 ]
          Hide
          Mircea Toma added a comment -

          Refactor XMLHttpRequest callbacks to not make use of any library.

          Show
          Mircea Toma added a comment - Refactor XMLHttpRequest callbacks to not make use of any library.
          Mircea Toma made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Hide
          Mandeep Hayher added a comment -

          Tested successfully on Revision: 15984

          Show
          Mandeep Hayher added a comment - Tested successfully on Revision: 15984
          Jack Van Ooststroom made changes -
          Link This issue blocks ICE-2869 [ ICE-2869 ]
          Hide
          Jack Van Ooststroom added a comment -

          "Mark empty responses that are supposed to terminate the blocking connection (as opposed to empty responses randomly send by some app. servers)."

          This introduced a new X-Connection extension response header to indicate blocking connection termination. This affects the ICEfaces AHS as well, therefore I created a follow up JIRA to address this specifically for AHS: ICE-2869

          Show
          Jack Van Ooststroom added a comment - "Mark empty responses that are supposed to terminate the blocking connection (as opposed to empty responses randomly send by some app. servers)." This introduced a new X-Connection extension response header to indicate blocking connection termination. This affects the ICEfaces AHS as well, therefore I created a follow up JIRA to address this specifically for AHS: ICE-2869
          Ken Fyten made changes -
          Fix Version/s 1.7RC1 [ 10123 ]
          Fix Version/s 1.7 [ 10080 ]
          Ken Fyten made changes -
          Fix Version/s 1.7 [ 10080 ]
          Ken Fyten made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Assignee Priority P1
          Assignee Mircea Toma [ mircea.toma ]

            People

            • Assignee:
              Unassigned
              Reporter:
              Deryk Sinotte
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: