Golang traces: link to channel event to match with EvGoBlockSelect

I am working with the golang traces package. In a trace file collected from an execution, I am looking at an instance of EvGoBlockSelect event and trying to find the channel send-receive pairs (their call stacks) that ultimately unblock this blocked event.

In the traces, after parsing, the Link field of an EvGoBlockSelect event points to an EvGoUnblock event. This connection does not help in obtaining the channel activities that resulted in unblocking the goroutine blocked on EvGoBlockSelect. Perhaps chasing a few more Link s will lead to clearly establishing the send-receive pairs, but I don’t know how this can be done.

Below is the snippet of the trace:

 <*trace.Event>(0xc000ed4bd0)
    T=24=EvGoBlockSelect
    G=26992255
    T=3812773
    Link = <*trace.Event>(0xc000ed4cf0)
      T=21=EvGoUnblock
      G=475
      T=3832979
      Link = <*trace.Event>(0xc000ed4e10)
        T=14=EvGoStart
        G=26992255
        T=3841969
        Link = <*trace.Event>(0xc000ed5050)
          T=23=EvGoBlockRecv
          G=26992255
          T=4022571
          Link = <*trace.Event>(0xc000edb3b0)
            T=21=EvGoUnblock
            G=26992257
            T=7956792
            Link =<*trace.Event>(0xc000edb4d0)
              T=14=EvGoStart
              G=26992255
              T=7967489
              Link =<*trace.Event>(0xc000edb4d0)

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.