Uploaded image for project: 'Traffic Server'
  1. Traffic Server
  2. TS-5110

Occasional communication deadlock on BSD between traffic_manager and traffic_server

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Patch Available
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Configuration, Manager, Metrics
    • Labels:
      None

      Description

      On FreeBSD we observed an occasional deadlock in the communication between traffic_server and traffic_manager. Both process are stuck in write().

      This occasionally happens when both sides attempt to write an amount of data that exceeds SO_SNDBUF (8KB on FreeBSD) at the same time, in which case both sides will block waiting for the other side to call read().

      On Linux, the buffer turns out to be much larger (~200KB), and this does not seem to happen. The case we noticed on FreeBSD attempted to write 10KB on one side, and 120KB on the other.

      Apparently, the code on both sides assumes that it is guaranteed that write() will not block.

      One symptom of this is that updates to configuration applied via traffic_ctl will not apply - or at least not until traffic_server is restarted.

        Attachments

          Activity

            People

            • Assignee:
              oschaaf Otto van der Schaaf
              Reporter:
              oschaaf Otto van der Schaaf
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: