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

    • Bug
    • Status: Patch Available
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Configuration, Manager, Metrics
    • 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

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

            Dates

              Created:
              Updated: