Browse Source

Avoid 'session-accept' timeout

Do not flush the connection after 'session-accept'
is queued to avoid BOSH race condition issue.
master
paweldomas 9 years ago
parent
commit
30c7739899
1 changed files with 16 additions and 1 deletions
  1. 16
    1
      modules/xmpp/JingleSessionPC.js

+ 16
- 1
modules/xmpp/JingleSessionPC.js View File

444
     // XXX Videobridge needs WebRTC's answer (ICE ufrag and pwd, DTLS
444
     // XXX Videobridge needs WebRTC's answer (ICE ufrag and pwd, DTLS
445
     // fingerprint and setup) ASAP in order to start the connection
445
     // fingerprint and setup) ASAP in order to start the connection
446
     // establishment.
446
     // establishment.
447
-    this.connection.flush();
447
+    //
448
+    // FIXME Flushing the connection at this point triggers an issue with BOSH
449
+    // request handling in Prosody on slow connections.
450
+    //
451
+    // The problem is that this request will be quite large and it may take time
452
+    // before it reaches Prosody. In the meantime Strophe may decide to send
453
+    // the next one. And it was observed that a small request with
454
+    // 'transport-info' usually follows this one. It does reach Prosody before
455
+    // the previous one was completely received. 'rid' on the server is
456
+    // increased and Prosody ignores the request with 'session-accept'. It will
457
+    // never reach Jicofo and everything in the request table is lost. Removing
458
+    // the flush does not guarantee it will never happen, but makes it much less
459
+    // likely('transport-info' is bundled with 'session-accept' and any
460
+    // immediate requests).
461
+    //
462
+    // this.connection.flush();
448
 };
463
 };
449
 
464
 
450
 /**
465
 /**

Loading…
Cancel
Save