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

Debug Assert occurs in UnixNetVConnection::set_enabled when accept_threads are disabled

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.3.1, 6.0.0
    • Component/s: Network
    • Labels:
      None

      Description

      This was found while tracking down TS-3597. The assert stack is in a comment on that bug.

      When you don't have a dedicated assert thread, the mutex is not locked before going into the do_io_read to process the accept event. In the dedicated thread case, you end up exercising UnixNetVConnection::acceptEvent which does grab the mutex.

      May be a relatively harmless error. Since this is a newly created VC, there should be no race conditions on it. But violating locking assumptions seem like a really bad idea. Especially since grabbing a lock on a supposedly uncontended object should be cheap.

      A 5.3.x patch is attached to this bug which solves the problem on my build.

        Attachments

        1. TS-3603.diff
          0.6 kB
          Susan Hinrichs

          Issue Links

            Activity

              People

              • Assignee:
                shinrich Susan Hinrichs
                Reporter:
                shinrich Susan Hinrichs
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: