Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TRACY_ON_DEMAND causes "Zone is ended twice" instrumentation failure #864

Open
davidvodnik opened this issue Aug 21, 2024 · 1 comment
Open

Comments

@davidvodnik
Copy link

Description

I keep getting Zone is ended twice failures when compiled with TRACY_ON_DEMAND. Without this flag it works fine.

I debugged tracy profiler and in the failing cases I am getting QueueType::ZoneEnd before any QueueType::ZoneBegin.

Workaround

I can patch void Worker::ProcessZoneEnd( const QueueZoneEnd& ev ) function to ignore the mismatched QueueType::ZoneEnd, and the issue goes away.

    if( td->zoneIdStack.empty() )
    {
        //ZoneDoubleEndFailure( td->id, td->timeline.empty() ? nullptr : td->timeline.back() );
        return;
    }

I also needed to ignore timeEnd smaller than zone->Start().

    //assert( timeEnd >= zone->Start() );
    if (timeEnd < zone->Start()) {
        return;
    }

Questions

  • Where are mismatched QueueType::ZoneBegin and QueueType::ZoneEnd supposed to be handled?
  • Is the client supposed to send a coherent stream?
  • Or is the server supposed to handle that case?

Additional Information

  • Tracy version: 0.11.0, also 0.10.0
  • Platform: Windows, OSX
@Ggjorven
Copy link

I have had this exact issue for a while now. Would be nice if it got fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants