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

          Hide
          Deryk Sinotte added a comment -

          Assigning to Maestro Mircea

          Show
          Deryk Sinotte added a comment - Assigning to Maestro Mircea
          Hide
          Ken Fyten added a comment -

          Possible duplicate of ICE-2805.

          Show
          Ken Fyten added a comment - Possible duplicate of ICE-2805.
          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).
          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
          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.
          Hide
          Mandeep Hayher added a comment -

          Tested successfully on Revision: 15984

          Show
          Mandeep Hayher added a comment - Tested successfully on Revision: 15984
          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

            People

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

              Dates

              • Created:
                Updated:
                Resolved: