• Austin Clements's avatar
    cmd/trace: fix goroutine view · d0b3c169
    Austin Clements authored
    Currently, trace processing interleaves state/statistics updates and
    emitting trace viewer objects. As a result, if events are being
    filtered, either by time or by goroutines, we'll miss those
    state/statistics updates. At best, this leads to bad statistics;
    however, since we're now strictly checking G state transitions, it
    usually leads to a failure to process the trace if there is any
    filtering.
    
    Fix this by separating state updates from emitting trace object. State
    updates are done before filtering, so we always have correct state
    information and statistics. Trace objects are only emitted if we pass
    the filter. To determine when we need to emit trace counters, rather
    than duplicating the knowledge of which events might modify
    statistics, we keep track of the previously emitted counters and emit
    a trace counter object whenever these have changed.
    
    Fixes #17719.
    
    Change-Id: Ic66e3ddaef60d1acaaf2ff4c62baa5352799cf99
    Reviewed-on: https://go-review.googlesource.com/32810Reviewed-by: 's avatarDmitry Vyukov <dvyukov@google.com>
    d0b3c169
Name
Last commit
Last update
..
addr2line Loading commit data...
api Loading commit data...
asm Loading commit data...
cgo Loading commit data...
compile Loading commit data...
cover Loading commit data...
dist Loading commit data...
doc Loading commit data...
fix Loading commit data...
go Loading commit data...
gofmt Loading commit data...
internal Loading commit data...
link Loading commit data...
nm Loading commit data...
objdump Loading commit data...
pack Loading commit data...
pprof Loading commit data...
trace Loading commit data...
vendor Loading commit data...
vet Loading commit data...