Uploaded image for project: 'FreeSWITCH'
  1. FreeSWITCH
  2. FS-7132

mod_verto: multiple websockets overwrite jsock hash entry for a given sessionid

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: mod_verto
    • Labels:
      None
    • CPU Architecture:
      x86-64
    • Kernel:
      Linux
    • uname:
      Linux frogger 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
    • Userland:
      GNU/Linux
    • Distribution:
      Ubuntu
    • Distribution Version:
      Ubuntu 12.04 LTS
    • lsb_release:
      Hide
      No LSB modules are available.
      Distributor ID: Ubuntu
      Description: Ubuntu 12.04.4 LTS
      Release: 12.04
      Codename: precise
      Show
      No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.4 LTS Release: 12.04 Codename: precise
    • Compiler:
      gcc
    • FreeSWITCH GIT Revision:
      0bec209a9bfef8e84506c91ad96c640e7750098e
    • GIT Master Revision hash::
      0bec209a9bfef8e84506c91ad96c640e7750098e

      Description

      We've seen this issue during internet connection/disconnection situations.
      Result is no further communication with verto js app.

      1) verto js app generates sessionid (cookie -> verto_session_uuid)
      2) verto js app connects to mod_verto using a websocket (WS1)
      3) attach_jsock() in globals.jsock_hash (sessionid and WS1).
      4) browser running verto app moves from one internet connection to another (changing its ip address) (ie mobile env. WIFI to 3G/LTS)
      5) verto js app reconnects (rpclcient task) using a new websocket (WS2) with new ip address and same sessionid
      6) attach_jsock() in globals.jsock_hash (sessionid and WS2, overwrites existing entry).
      7) at some time, WS1 disconnection is detected. detach_jsock() is called and sessionid is removed from hash.
      8) globals.jsock_hash does not have seessionid WS2 association anymore.

      We think making attach_jsock() and detach_jsock() check the hash for the existence of another websocket linked to the same sessionid could fix the issue.

      Thanks

        Attachments

          Activity

            People

            • Assignee:
              anthm Anthony Minessale II
              Reporter:
              rbarroetavena ric
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: