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

traffic_logstats fails on zwoop's machine

    XMLWordPrintableJSON

    Details

      Description

      As best I can track this down, the problem arises during log creation. For reasons I would prefer to not know, log buffers are written to binary files using the LogFile.cc:writeln which helpfully appends a newline to the binary data. Unless the binary data already ends with a newline, in which case it doesn't. logstats, when reading the file, always add an extra byte to read to skip over this newline, which can be problematic in the latter case. Whether this happens seems to depend on the client brower because the last field in the standard log format is XID, a MIME field. LogAccessHttp::marshal_client_accelerator_id pulls the XID out of the MIME fields and then adds one to the returned length, to account for the possibly non-existent terminating nul (it being a MIME field). That extra byte gets carried along and written out as part of the XID. If it turns out to be a newline, then there is a problem.

      There's so much wrongness here I don't even know where to start. There's even expensive code in both logcat to detect small shifts (such as being off by one due to a missing newline) and re-synchronize. logstats has similar code but it only used when starting at an offset in to the log file.

        Attachments

        1. ts-1021.diff
          10 kB
          Alan M. Carroll

          Issue Links

            Activity

              People

              • Assignee:
                amc Alan M. Carroll
                Reporter:
                amc Alan M. Carroll
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: