Skip to content

ttms and other "download time" metrics can be -1 #5491

Description

@zwoop

Under certain conditions, it seems the milestone used for e.g. ttms (and a few others) are not set properly. This seems to primarily happen for 302's, but also for some 403's. The relevant code snippets are:

LogAccess::marshal_transfer_time_ms(char *buf)
{
  if (buf) {
    marshal_int(buf, m_http_sm->milestones.difference_msec(TS_MILESTONE_SM_START, TS_MILESTONE_SM_FINISH));
  }

And, milestones.difference_msec does

    if (milestones[ms_end] == 0) {
      return -1;
    }
    return ink_hrtime_to_msec(milestones[ms_end] - milestones[ms_start]);

So, in this case, TS_MILESTONE_SM_FINISH must not have been set to a value at all, i.e. it looks like the SM never finished (which clearly can not be the case).

What's surprising is that this primarily seems to happen on parent proxies, and not on the child proxies.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions