New issue
Advanced search Search tips

Issue 844421 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 3
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Angle doesn't like tracing handles that are zero

Project Member Reported by brucedaw...@chromium.org, May 18 2018

Issue description

Angle's AddTraceEvent function in event_tracer.cpp asserts that the handle is zero, which fails sometimes when Perfetto tracing is enabled with --enable-features=TracingPerfettoBackend (after a few more changes are landed to enable this on Windows). It's not clear whether this is an incorrect assumption in Angle or a bug in Perfetto.

Either Perfetto needs to stop producing tracing handles where all components are zero, or Angle needs to accept zero as a valid value.

 
Removing the ASSERT is pretty easy. It's worth figuring out if using the zero trace handle is a bug or not.
Project Member

Comment 2 by bugdroid1@chromium.org, May 24 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/89d0b86de2e6a79a8ddcf04a5c1393ca876705bd

commit 89d0b86de2e6a79a8ddcf04a5c1393ca876705bd
Author: Oystein Eftevaag <oysteine@chromium.org>
Date: Thu May 24 18:22:36 2018

Adjust gn and ifdefs to make Perfetto available

Chrome has seven #ifdefs that decide whether Perfetto tracing is
available or not. This change consolidates those into two and then
enables Perfetto on Windows.

This change also updates two .gn files to enable Perfetto.

This change makes no difference unless the command-line option
--enable-features=TracingPerfettoBackend is specified.

Note that this change will fail to run unless the Assert in Angle's
AddTraceEvent function in event_tracer.cpp is removed. This is
being investigated.

Bug:  844421 
Change-Id: Ia978eb69bed77bda68202fdbec7a306fdb9886bc
Reviewed-on: https://chromium-review.googlesource.com/1064371
Commit-Queue: oysteine <oysteine@chromium.org>
Reviewed-by: oysteine <oysteine@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561556}
[modify] https://crrev.com/89d0b86de2e6a79a8ddcf04a5c1393ca876705bd/services/tracing/BUILD.gn
[modify] https://crrev.com/89d0b86de2e6a79a8ddcf04a5c1393ca876705bd/services/tracing/public/cpp/BUILD.gn
[modify] https://crrev.com/89d0b86de2e6a79a8ddcf04a5c1393ca876705bd/services/tracing/public/cpp/trace_event_agent.cc
[modify] https://crrev.com/89d0b86de2e6a79a8ddcf04a5c1393ca876705bd/services/tracing/tracing_service.cc
[modify] https://crrev.com/89d0b86de2e6a79a8ddcf04a5c1393ca876705bd/services/tracing/tracing_service.h

Project Member

Comment 3 by bugdroid1@chromium.org, May 24 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f85585b37189469ba6c9b53dfea57d88f1a9fe0f

commit f85585b37189469ba6c9b53dfea57d88f1a9fe0f
Author: Thomas Anderson <thomasanderson@chromium.org>
Date: Thu May 24 19:10:06 2018

Revert "Adjust gn and ifdefs to make Perfetto available"

This reverts commit 89d0b86de2e6a79a8ddcf04a5c1393ca876705bd.

Reason for revert: Suspected cause of Win x64 build failure:
https://ci.chromium.org/buildbot/chromium/Win%20x64/22844

Original change's description:
> Adjust gn and ifdefs to make Perfetto available
> 
> Chrome has seven #ifdefs that decide whether Perfetto tracing is
> available or not. This change consolidates those into two and then
> enables Perfetto on Windows.
> 
> This change also updates two .gn files to enable Perfetto.
> 
> This change makes no difference unless the command-line option
> --enable-features=TracingPerfettoBackend is specified.
> 
> Note that this change will fail to run unless the Assert in Angle's
> AddTraceEvent function in event_tracer.cpp is removed. This is
> being investigated.
> 
> Bug:  844421 
> Change-Id: Ia978eb69bed77bda68202fdbec7a306fdb9886bc
> Reviewed-on: https://chromium-review.googlesource.com/1064371
> Commit-Queue: oysteine <oysteine@chromium.org>
> Reviewed-by: oysteine <oysteine@chromium.org>
> Reviewed-by: Primiano Tucci <primiano@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#561556}

TBR=primiano@chromium.org,oysteine@chromium.org,brucedawson@chromium.org

Change-Id: Ia94b6d81d56af41dd010adcc436f11882887864f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  844421 
Reviewed-on: https://chromium-review.googlesource.com/1072327
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561580}
[modify] https://crrev.com/f85585b37189469ba6c9b53dfea57d88f1a9fe0f/services/tracing/BUILD.gn
[modify] https://crrev.com/f85585b37189469ba6c9b53dfea57d88f1a9fe0f/services/tracing/public/cpp/BUILD.gn
[modify] https://crrev.com/f85585b37189469ba6c9b53dfea57d88f1a9fe0f/services/tracing/public/cpp/trace_event_agent.cc
[modify] https://crrev.com/f85585b37189469ba6c9b53dfea57d88f1a9fe0f/services/tracing/tracing_service.cc
[modify] https://crrev.com/f85585b37189469ba6c9b53dfea57d88f1a9fe0f/services/tracing/tracing_service.h

Owner: primiano@chromium.org
Status: Assigned (was: Untriaged)
Assigning this. It's easy enough to remove the assert but we need to be sure that the handles that are zero don't represent a bug.
Owner: oysteine@chromium.org
Moving to Oystein 
Put up a CL to remove the assert:

There are several codepaths where this is the expected result:
* Other threads disabling the category in question.
* The TraceBuffer being fill and no new chunks available.
* Perfetto being active as the tracing backend.

In all cases, the single use of a handle to a TraceEvent is
TraceLog::UpdateTraceEventDuration which handles the above cases
correctly.
Project Member

Comment 7 by bugdroid1@chromium.org, Jun 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/33e72d994c749bf66e860f4f8308fa51335a7e0c

commit 33e72d994c749bf66e860f4f8308fa51335a7e0c
Author: Oystein Eftevaag <oysteine@google.com>
Date: Fri Jun 29 21:21:48 2018

Removed an assert about addTraceEvent not returning empty handles.

There are several codepaths where this is the expected result:
* Other threads disabling the category in question.
* The TraceBuffer being fill and no new chunks available.
* Perfetto being active as the tracing backend.

In all cases, the single use of a handle to a TraceEvent is
TraceLog::UpdateTraceEventDuration which handles the above cases
correctly.

BUG= 844421 
Change-Id: Ieaf3aa5c913cee8c51cfea637907d5bc3b560ceb
Reviewed-on: https://chromium-review.googlesource.com/1120841
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>

[modify] https://crrev.com/33e72d994c749bf66e860f4f8308fa51335a7e0c/src/common/event_tracer.cpp

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 30 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/24c1706f967cd956c83dc63ef565a59b539f90bf

commit 24c1706f967cd956c83dc63ef565a59b539f90bf
Author: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Sat Jun 30 02:32:48 2018

Roll src/third_party/angle 6ef24d7824d2..a72f400c5ff3 (3 commits)

https://chromium.googlesource.com/angle/angle.git/+log/6ef24d7824d2..a72f400c5ff3


git log 6ef24d7824d2..a72f400c5ff3 --date=short --no-merges --format='%ad %ae %s'
2018-06-29 jmadill@chromium.org run_code_generation: Compare hashes instead of mtime.
2018-06-29 oysteine@google.com Removed an assert about addTraceEvent not returning empty handles.
2018-06-29 jmadill@chromium.org Vulkan: Add Features class.


Created with:
  gclient setdep -r src/third_party/angle@a72f400c5ff3

The AutoRoll server is located here: https://angle-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG= chromium:844421 
TBR=ynovikov@chromium.org

Change-Id: I652601668a8cba23e34ecd78158fb1b70628e6c6
Reviewed-on: https://chromium-review.googlesource.com/1121260
Reviewed-by: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#571743}
[modify] https://crrev.com/24c1706f967cd956c83dc63ef565a59b539f90bf/DEPS

Can this be marked as fixed?
Status: Fixed (was: Assigned)
Project Member

Comment 11 by bugdroid1@chromium.org, Jul 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d9ef9da999d3bc199c848754e648e8fec912556f

commit d9ef9da999d3bc199c848754e648e8fec912556f
Author: Bruce Dawson <brucedawson@chromium.org>
Date: Thu Jul 19 19:39:39 2018

Adjust gn and ifdefs to make Perfetto available

This change adjusts some ifdefs and also updates two .gn files to enable
Perfetto on Windows in Chromium.

This change makes no difference unless the command-line option
--enable-features=TracingPerfettoBackend is specified, which can be
tested with:

  chrome.exe --trace-startup= --trace-startup-file=test.json ^
    --trace-startup-duration=7 --enable-features=TracingPerfettoBackend

This was originally landed in crrev.com/c/1064371

Bug:  844421 ,  844379 
Change-Id: I2f4049b8623003d6c64ae942f0c334b1fc83875d
Reviewed-on: https://chromium-review.googlesource.com/1090756
Commit-Queue: oysteine <oysteine@chromium.org>
Reviewed-by: oysteine <oysteine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576590}
[modify] https://crrev.com/d9ef9da999d3bc199c848754e648e8fec912556f/services/tracing/BUILD.gn
[modify] https://crrev.com/d9ef9da999d3bc199c848754e648e8fec912556f/services/tracing/public/cpp/BUILD.gn
[modify] https://crrev.com/d9ef9da999d3bc199c848754e648e8fec912556f/services/tracing/public/cpp/trace_event_agent.cc
[modify] https://crrev.com/d9ef9da999d3bc199c848754e648e8fec912556f/services/tracing/tracing_service.h

Sign in to add a comment