line301
line301
I think the example at https://goplay.tools/snippet/DNGy9ENYYHj is more relevant. In this example, neither "Second RLock" nor "First Lock" is printed. When this issue occurs, it seems that `schema.measurementTagValues` is called...
Yes, I agree — it seems more like a lock ordering issue rather than a classic deadlock. 1. We are indeed seeing this issue in a production environment. 2. The...
In the original code, `defer f.mu.RUnlock()` keeps the read `lock (RLock)` active until the function returns — which includes the call to `tk.TagValueIterator()`. However, here's what can happen: Before `tk.TagValueIterator()`...
It looks like there's someone else experiencing the same issue in this post: https://community.influxdata.com/t/suspected-deadlock-issue-need-help/56772. Seems like it's the same problem with TagValueIterator and AddSeriesList, right?
We add a time.Sleep to allow context switching. ```go func (tk *logTagKey) TagValueIterator() TagValueIterator { time.Sleep(1 * time.Second) //