New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 612978 link

Starred by 1 user

Issue metadata

Status: Archived
Owner: ----
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

AFE hosts view shows special tasks and jobs in the wrong orders

Reported by jrbarnette@chromium.org, May 18 2016

Issue description

Please specify Cr-* of the system to which this bug/feature applies (add
the label below).

Steps To Reproduce:
(1) Go to the AFE "Host List" tab, and select a working host.
(2) On the "View Host" page, enable the "Show verifies,
    repairs, cleanups and resets" checkbox.
(3) Look at the display in the jobs box.

Expected Result:
Test jobs and special tasks should be shown interleaved, in the
order in which they occurred.

Actual Result:
Ordering is sometimes right, but is frequently haphazardly wrong.
Sometimes, the special task of interest doesn't show until several
screens after the job it preceded.


How frequently does this problem reproduce? (Always, sometimes, hard to
reproduce?)
The problem won't happen every time, but it happens often enough
to make the "View Host" tab unhelpful for meaningful debug.

What is the impact to the user, and is there a workaround? If so, what is
it?
The only way to get a time-ordered sequence of jobs and tasks together
is with the "dut-status" command.  That tool can be quite useful, but for
some use cases, the web UI is preferable.  Unfortunately, the web UI
is all too often worse than worthless.

Please provide any additional information below. Attach a screen shot or
log if possible.
The root of the problem is in the implementation of this RPC function:

def interleave_entries(queue_entries, special_tasks):
    """
    Both lists should be ordered by descending ID.
    """
    _compute_next_job_for_tasks(queue_entries, special_tasks)

    # start with all special tasks that've run since the last job
    interleaved_entries = []
    for task in special_tasks:
        if task['next_job_id'] is not None:
            break
        interleaved_entries.append(task)

    # now interleave queue entries with the remaining special tasks
    special_task_index = len(interleaved_entries)
    for queue_entry in queue_entries:
        interleaved_entries.append(queue_entry)
        # add all tasks that ran between this job and the previous one
        for task in special_tasks[special_task_index:]:
            if task['next_job_id'] < queue_entry['job']['id']:
                break
            interleaved_entries.append(task)
            special_task_index += 1

    return interleaved_entries

The function makes no attempt to order by time.

 

Comment 1 by autumn@chromium.org, May 23 2016

Cc: ntang@chromium.org
Labels: Hotlist-Fixit
Project Member

Comment 2 by sheriffbot@chromium.org, May 24 2017

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Archived (was: Untriaged)
This bug is very old, is Untriaged, and has no owner.  If it is still relevant, reopen as Untriaged or open a new bug

Sign in to add a comment