fix(tsi1/partition/test): fix data races in test code (#57)#25338
fix(tsi1/partition/test): fix data races in test code (#57)#25338devanbenz merged 3 commits intomaster-1.xfrom
Conversation
* fix(tsi1/partition/test): fix data races in test code This PR is like #24613 but solves it with a setter method for MaxLogFileSize which allows unexporting that value and MaxLogFileAge. There are actually two places locks were needed in test code. The behavior of production code is unchanged. (cherry picked from commit f0235c4daf4b97769db932f7346c1d3aecf57f8f)
davidby-influx
left a comment
There was a problem hiding this comment.
A few suggestions. Perhaps put them into another PR if you want to cherry-pick them to other branches.
tsdb/index/tsi1/partition.go
Outdated
| func (p *Partition) SetMaxLogFileSize(new int64) (old int64) { | ||
| p.mu.Lock() | ||
| old = p.maxLogFileSize | ||
| p.maxLogFileSize = new |
There was a problem hiding this comment.
You can do this more idiomatically with
old, p.maxLogFileSize = p.maxLogFileSize, new
| defer p.mu.Unlock() | ||
|
|
||
| var err error | ||
| if p.fileSet == nil { |
tsdb/index/tsi1/partition.go
Outdated
| var err error | ||
| for _, f := range p.fileSet.files { | ||
| if localErr := f.Close(); localErr != nil { | ||
| err = localErr |
There was a problem hiding this comment.
Use a []error and errors.Join() here to return all the errors.
There was a problem hiding this comment.
Oh thats a really cool error handling feature. Will do 👍
davidby-influx
left a comment
There was a problem hiding this comment.
Small change to the use of errrors.Join
tsdb/index/tsi1/partition.go
Outdated
| for _, f := range p.fileSet.files { | ||
| if localErr := f.Close(); localErr != nil { | ||
| err = localErr | ||
| err = errors.Join(err, localErr) |
There was a problem hiding this comment.
errors.Join ignores nil errors, so no test for not nil is necessary. The code as it is written will make nested errors; the best thing to do is use a slice.
See here for an example
* fix(tsi1/partition/test): fix data races in test code (#57) * fix(tsi1/partition/test): fix data races in test code This PR is like #24613 but solves it with a setter method for MaxLogFileSize which allows unexporting that value and MaxLogFileAge. There are actually two places locks were needed in test code. The behavior of production code is unchanged. (cherry picked from commit f0235c4daf4b97769db932f7346c1d3aecf57f8f) * feat: modify error handling to be more idiomatic closes #24042 * fix: errors.Join() filters nil errors closes #25341 --------- Co-authored-by: Phil Bracikowski <13472206+philjb@users.noreply.github.com> (cherry picked from commit 5c9e45f)
* fix(tsi1/partition/test): fix data races in test code (#57) * fix(tsi1/partition/test): fix data races in test code This PR is like #24613 but solves it with a setter method for MaxLogFileSize which allows unexporting that value and MaxLogFileAge. There are actually two places locks were needed in test code. The behavior of production code is unchanged. (cherry picked from commit f0235c4daf4b97769db932f7346c1d3aecf57f8f) * feat: modify error handling to be more idiomatic closes #24042 * fix: errors.Join() filters nil errors --------- Co-authored-by: Phil Bracikowski <13472206+philjb@users.noreply.github.com> (cherry picked from commit 5c9e45f)
…25345) * feat: add hook for optimizing series reads based on authorizer (#25207) * fix(tsi1/partition/test): fix data races in test code (#57) (#25338) * fix(tsi1/partition/test): fix data races in test code (#57) * fix(tsi1/partition/test): fix data races in test code This PR is like #24613 but solves it with a setter method for MaxLogFileSize which allows unexporting that value and MaxLogFileAge. There are actually two places locks were needed in test code. The behavior of production code is unchanged. (cherry picked from commit f0235c4daf4b97769db932f7346c1d3aecf57f8f) * feat: modify error handling to be more idiomatic closes #24042 * fix: errors.Join() filters nil errors --------- Co-authored-by: Phil Bracikowski <13472206+philjb@users.noreply.github.com> (cherry picked from commit 5c9e45f) --------- Co-authored-by: Geoffrey Wossum <gwossum@influxdata.com>
…25344) * fix(tsi1/partition/test): fix data races in test code (#57) * fix(tsi1/partition/test): fix data races in test code This PR is like #24613 but solves it with a setter method for MaxLogFileSize which allows unexporting that value and MaxLogFileAge. There are actually two places locks were needed in test code. The behavior of production code is unchanged. (cherry picked from commit f0235c4daf4b97769db932f7346c1d3aecf57f8f) * feat: modify error handling to be more idiomatic closes #24042 * fix: errors.Join() filters nil errors closes #25341 --------- Co-authored-by: Phil Bracikowski <13472206+philjb@users.noreply.github.com> (cherry picked from commit 5c9e45f)
…25344) * fix(tsi1/partition/test): fix data races in test code (#57) * fix(tsi1/partition/test): fix data races in test code This PR is like #24613 but solves it with a setter method for MaxLogFileSize which allows unexporting that value and MaxLogFileAge. There are actually two places locks were needed in test code. The behavior of production code is unchanged. (cherry picked from commit f0235c4daf4b97769db932f7346c1d3aecf57f8f) * feat: modify error handling to be more idiomatic closes #24042 * fix: errors.Join() filters nil errors closes #25341 --------- Co-authored-by: Phil Bracikowski <13472206+philjb@users.noreply.github.com> (cherry picked from commit 5c9e45f) (cherry picked from commit b88e74e) closes #25342
* fix(tsi1/partition/test): fix data races in test code (#57) * fix(tsi1/partition/test): fix data races in test code This PR is like #24613 but solves it with a setter method for MaxLogFileSize which allows unexporting that value and MaxLogFileAge. There are actually two places locks were needed in test code. The behavior of production code is unchanged. (cherry picked from commit f0235c4daf4b97769db932f7346c1d3aecf57f8f) * feat: modify error handling to be more idiomatic closes #24042 * fix: errors.Join() filters nil errors closes #25341 --------- Co-authored-by: Phil Bracikowski <13472206+philjb@users.noreply.github.com> (cherry picked from commit 5c9e45f) (cherry picked from commit b88e74e) closes #25342
#25352) * fix(tsi1/partition/test): fix data races in test code (#57) * fix(tsi1/partition/test): fix data races in test code This PR is like #24613 but solves it with a setter method for MaxLogFileSize which allows unexporting that value and MaxLogFileAge. There are actually two places locks were needed in test code. The behavior of production code is unchanged. (cherry picked from commit f0235c4daf4b97769db932f7346c1d3aecf57f8f) * feat: modify error handling to be more idiomatic closes #24042 * fix: errors.Join() filters nil errors closes #25341 --------- Co-authored-by: Phil Bracikowski <13472206+philjb@users.noreply.github.com> (cherry picked from commit 5c9e45f) (cherry picked from commit b88e74e) closes #25342
… (#25438) * feat: add hook for optimizing series reads based on authorizer (#25207) * fix(tsi1/partition/test): fix data races in test code (#57) (#25338) * fix(tsi1/partition/test): fix data races in test code (#57) * fix(tsi1/partition/test): fix data races in test code This PR is like #24613 but solves it with a setter method for MaxLogFileSize which allows unexporting that value and MaxLogFileAge. There are actually two places locks were needed in test code. The behavior of production code is unchanged. (cherry picked from commit f0235c4daf4b97769db932f7346c1d3aecf57f8f) * feat: modify error handling to be more idiomatic closes #24042 * fix: errors.Join() filters nil errors --------- Co-authored-by: Phil Bracikowski <13472206+philjb@users.noreply.github.com> (cherry picked from commit 5c9e45f) * fix(ci): Update test_pkgs_64bit image to non-eol ubuntu image (#25354) * fix(ci): Update test_pkgs_64bit image to non-eol ubuntu image * fix: trying edge img * fix(ci): update ubuntu image in ci Update test_pkgs_64bit image to non-eol ubuntu image Please see: discuss.circleci.com/t/linux-image-deprecations-and-eol-for-2024/50177 closes #25355 (cherry picked from commit fdf0df7) --------- Co-authored-by: Geoffrey Wossum <gwossum@influxdata.com>
This PR is like #24613 but solves it with a setter method for MaxLogFileSize which allows unexporting that value and MaxLogFileAge. There are actually two places locks were needed in test code. The behavior of production code is unchanged.
(cherry picked from commit f0235c4daf4b97769db932f7346c1d3aecf57f8f)
Closes #
Describe your proposed changes here.