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

fix: add locking around broker throttle timer to prevent race condition #2826

Merged
merged 1 commit into from
Mar 8, 2024

Conversation

chengsha
Copy link
Contributor

@chengsha chengsha commented Mar 5, 2024

The producer can be easily blocked due to a race condition in Broker.throttleTimer, which may result in a panic. Consider changing the type of Broker.throttleTimer to atomic.Value

Fixes #2823

Signed-off-by: chengsha shacheng@tencent.com

broker.go Outdated
Comment on lines 1703 to 1710
func (b *Broker) setThrottle(throttleTime time.Duration) {
if b.throttleTimer != nil {
value := b.throttleTimer.Load()
if value != nil && value != emptyTimer {
throttleTimer := value.(*time.Timer)
// if there is an existing timer stop/clear it
if !b.throttleTimer.Stop() {
<-b.throttleTimer.C
if !throttleTimer.Stop() {
<-throttleTimer.C
}
}
b.throttleTimer = time.NewTimer(throttleTime)
b.throttleTimer.CompareAndSwap(value, time.NewTimer(throttleTime))
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m unsure about this approach. Since this is now an atomic operation, and there is a potentially blocking operation in it, we could easily end up with two setThrottle operations running at the same time.

Of particular note is the message on the timer.Stop godoc:

This cannot be done concurrent to other receives from the Timer's channel or other calls to the Timer's Stop method.

I think we need to be handling this within a properly locked mutex.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you are right. throttleTimer.Stop is not safe there. i change to locked mutex

@chengsha chengsha force-pushed the chengsha/fix-data-race-when-throttled branch 2 times, most recently from c6d9d39 to cc3fa66 Compare March 6, 2024 01:57
…throttleTimer, which may result in a panic. add throttleTimerLock to protect

Fixes IBM#2823

Signed-off-by: shacheng <shacheng@tencent.com>
@chengsha chengsha force-pushed the chengsha/fix-data-race-when-throttled branch from cc3fa66 to 7d6b70b Compare March 7, 2024 01:55
@dnwe dnwe added the fix label Mar 7, 2024
@dnwe dnwe changed the title The producer can be easily blocked due to a race condition in Broker.… fix: add locking around broker throttle timer to prevent race condition Mar 7, 2024
Copy link
Collaborator

@dnwe dnwe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for reporting and fixing this locking issue 🎉

@dnwe dnwe merged commit a8b3b3d into IBM:main Mar 8, 2024
13 checks passed
mx-psi referenced this pull request in open-telemetry/opentelemetry-collector-contrib Apr 2, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/IBM/sarama](https://github.com/IBM/sarama) | `v1.43.0`
-> `v1.43.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fIBM%2fsarama/v1.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fIBM%2fsarama/v1.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fIBM%2fsarama/v1.43.0/v1.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fIBM%2fsarama/v1.43.0/v1.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>IBM/sarama (github.com/IBM/sarama)</summary>

### [`v1.43.1`](https://github.com/IBM/sarama/releases/tag/v1.43.1):
Version 1.43.1 (2024-03-27)

[Compare
Source](https://github.com/IBM/sarama/compare/v1.43.0...v1.43.1)

<!-- Release notes generated using configuration in .github/release.yaml
at main -->

#### What's Changed

##### 🐛 Fixes

- fix: message.max.bytes should default to
[`1048576`](https://github.com/IBM/sarama/commit/1048576) not 1 MB by
[@&#8203;puellanivis](https://github.com/puellanivis) in
[https://github.com/IBM/sarama/pull/2804](https://github.com/IBM/sarama/pull/2804)
- fix: add locking around broker throttle timer to prevent race
condition by [@&#8203;chengsha](https://github.com/chengsha) in
[https://github.com/IBM/sarama/pull/2826](https://github.com/IBM/sarama/pull/2826)

##### 📦 Dependency updates

- chore(deps): bump go.opentelemetry.io/otel/sdk from 1.23.1 to 1.24.0
in /examples/interceptors by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2816](https://github.com/IBM/sarama/pull/2816)
- chore(deps): bump the golang-org-x group with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2825](https://github.com/IBM/sarama/pull/2825)
- chore(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2822](https://github.com/IBM/sarama/pull/2822)
- chore(deps): bump
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric from 1.23.1 to
1.24.0 in /examples/interceptors by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2815](https://github.com/IBM/sarama/pull/2815)

#### New Contributors

- [@&#8203;chengsha](https://github.com/chengsha) made their first
contribution in
[https://github.com/IBM/sarama/pull/2826](https://github.com/IBM/sarama/pull/2826)

**Full Changelog**:
IBM/sarama@v1.43.0...v1.43.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
paologallinaharbur referenced this pull request in newrelic/nri-kafka Aug 26, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/IBM/sarama](https://github.com/IBM/sarama) | `v1.41.3`
-> `v1.43.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fIBM%2fsarama/v1.43.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fIBM%2fsarama/v1.43.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fIBM%2fsarama/v1.41.3/v1.43.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fIBM%2fsarama/v1.41.3/v1.43.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>IBM/sarama (github.com/IBM/sarama)</summary>

### [`v1.43.3`](https://github.com/IBM/sarama/releases/tag/v1.43.3):
Version 1.43.3 (2024-08-12)

[Compare
Source](https://github.com/IBM/sarama/compare/v1.43.2...v1.43.3)

<!-- Release notes generated using configuration in .github/release.yaml
at main -->

#### What's Changed

##### 🐛 Fixes

- fix: declare assignor variable for examples & clean up log format by
[@&#8203;kumakichi](https://github.com/kumakichi) in
[https://github.com/IBM/sarama/pull/2909](https://github.com/IBM/sarama/pull/2909)
- fix(consumer): maintain ordering of offset commit requests by
[@&#8203;prestona](https://github.com/prestona) in
[https://github.com/IBM/sarama/pull/2947](https://github.com/IBM/sarama/pull/2947)
- fix(producer): treat ErrKafkaStorageError as retriable by
[@&#8203;richardartoul](https://github.com/richardartoul) in
[https://github.com/IBM/sarama/pull/2939](https://github.com/IBM/sarama/pull/2939)

##### 📦 Dependency updates

- chore(deps): bump the golang-org-x group across 1 directory with 2
updates by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2956](https://github.com/IBM/sarama/pull/2956)
- chore(deps): bump github.com/eapache/go-resiliency from 1.6.0 to 1.7.0
by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2944](https://github.com/IBM/sarama/pull/2944)
- chore(deps): bump github.com/klauspost/compress from 1.17.8 to 1.17.9
by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2926](https://github.com/IBM/sarama/pull/2926)

##### 🔧 Maintenance

- fix(ci): correct docker-compose install by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2954](https://github.com/IBM/sarama/pull/2954)

##### 📝 Documentation

- fix(doc): correct JVM's config name corresponding to MaxWaitTime by
[@&#8203;abhipranay](https://github.com/abhipranay) in
[https://github.com/IBM/sarama/pull/2893](https://github.com/IBM/sarama/pull/2893)

#### New Contributors

- [@&#8203;abhipranay](https://github.com/abhipranay) made their first
contribution in
[https://github.com/IBM/sarama/pull/2893](https://github.com/IBM/sarama/pull/2893)
- [@&#8203;kumakichi](https://github.com/kumakichi) made their first
contribution in
[https://github.com/IBM/sarama/pull/2909](https://github.com/IBM/sarama/pull/2909)
- [@&#8203;richardartoul](https://github.com/richardartoul) made their
first contribution in
[https://github.com/IBM/sarama/pull/2939](https://github.com/IBM/sarama/pull/2939)

**Full Changelog**:
IBM/sarama@v1.43.2...v1.43.3

### [`v1.43.2`](https://github.com/IBM/sarama/releases/tag/v1.43.2):
Version 1.43.2 (2024-04-25)

[Compare
Source](https://github.com/IBM/sarama/compare/v1.43.1...v1.43.2)

<!-- Release notes generated using configuration in .github/release.yaml
at main -->

#### What's Changed

##### 🐛 Fixes

- chore(ci): add 32-bit alignment check by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2874](https://github.com/IBM/sarama/pull/2874)

##### 📦 Dependency updates

- chore(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2866](https://github.com/IBM/sarama/pull/2866)
- chore(deps): bump the golang-org-x group with 2 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2853](https://github.com/IBM/sarama/pull/2853)
- chore(deps): bump github.com/klauspost/compress from 1.17.7 to 1.17.8
by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2857](https://github.com/IBM/sarama/pull/2857)
- chore(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 in
/examples/txn_producer in the go_modules group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2865](https://github.com/IBM/sarama/pull/2865)
- chore(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 in
/examples/consumergroup in the go_modules group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2867](https://github.com/IBM/sarama/pull/2867)
- chore(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 in
/examples/exactly_once in the go_modules group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2868](https://github.com/IBM/sarama/pull/2868)
- chore(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 in
/examples/interceptors in the go_modules group by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2869](https://github.com/IBM/sarama/pull/2869)

**Full Changelog**:
IBM/sarama@v1.43.1...v1.43.2

### [`v1.43.1`](https://github.com/IBM/sarama/releases/tag/v1.43.1):
Version 1.43.1 (2024-03-27)

[Compare
Source](https://github.com/IBM/sarama/compare/v1.43.0...v1.43.1)

<!-- Release notes generated using configuration in .github/release.yaml
at main -->

#### What's Changed

##### 🐛 Fixes

- fix: message.max.bytes should default to
[`1048576`](https://github.com/IBM/sarama/commit/1048576) not 1 MB by
[@&#8203;puellanivis](https://github.com/puellanivis) in
[https://github.com/IBM/sarama/pull/2804](https://github.com/IBM/sarama/pull/2804)
- fix: add locking around broker throttle timer to prevent race
condition by [@&#8203;chengsha](https://github.com/chengsha) in
[https://github.com/IBM/sarama/pull/2826](https://github.com/IBM/sarama/pull/2826)

##### 📦 Dependency updates

- chore(deps): bump go.opentelemetry.io/otel/sdk from 1.23.1 to 1.24.0
in /examples/interceptors by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2816](https://github.com/IBM/sarama/pull/2816)
- chore(deps): bump the golang-org-x group with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2825](https://github.com/IBM/sarama/pull/2825)
- chore(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2822](https://github.com/IBM/sarama/pull/2822)
- chore(deps): bump
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric from 1.23.1 to
1.24.0 in /examples/interceptors by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2815](https://github.com/IBM/sarama/pull/2815)

#### New Contributors

- [@&#8203;chengsha](https://github.com/chengsha) made their first
contribution in
[https://github.com/IBM/sarama/pull/2826](https://github.com/IBM/sarama/pull/2826)

**Full Changelog**:
IBM/sarama@v1.43.0...v1.43.1

### [`v1.43.0`](https://github.com/IBM/sarama/releases/tag/v1.43.0):
Version 1.43.0 (2024-02-22)

[Compare
Source](https://github.com/IBM/sarama/compare/v1.42.2...v1.43.0)

<!-- Release notes generated using configuration in .github/release.yaml
at main -->

> \[!NOTE]\
> The go.mod directive has been bumped to 1.19 as the minimum version of
Go required for the module. This was necessary to continue to receive
updates from some of the third party dependencies that Sarama makes use
of for compression.

#### What's Changed

##### 🎉 New Features / Improvements

- feat: update go directive to 1.19 by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2795](https://github.com/IBM/sarama/pull/2795)
- feat: add BuildSpnFunc to GSSAPIConfig for allow custom spn by
[@&#8203;fooofei](https://github.com/fooofei) in
[https://github.com/IBM/sarama/pull/2807](https://github.com/IBM/sarama/pull/2807)

##### 🐛 Fixes

- Use %v formatting words and remove unnecessary newline by
[@&#8203;puellanivis](https://github.com/puellanivis) in
[https://github.com/IBM/sarama/pull/2802](https://github.com/IBM/sarama/pull/2802)

##### 📦 Dependency updates

- chore(deps): bump github.com/klauspost/compress from 1.16.7 to 1.17.6
by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2784](https://github.com/IBM/sarama/pull/2784)
- chore(deps): bump github.com/eapache/go-resiliency from 1.5.0 to 1.6.0
by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2810](https://github.com/IBM/sarama/pull/2810)
- chore(deps): bump github.com/klauspost/compress from 1.17.6 to 1.17.7
by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2811](https://github.com/IBM/sarama/pull/2811)

##### 🔧 Maintenance

- chore(doc): add v1.42.2 to CHANGELOG.md by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2796](https://github.com/IBM/sarama/pull/2796)

#### New Contributors

- [@&#8203;puellanivis](https://github.com/puellanivis) made their
first contribution in
[https://github.com/IBM/sarama/pull/2802](https://github.com/IBM/sarama/pull/2802)
- [@&#8203;fooofei](https://github.com/fooofei) made their first
contribution in
[https://github.com/IBM/sarama/pull/2807](https://github.com/IBM/sarama/pull/2807)

**Full Changelog**:
IBM/sarama@v1.42.2...v1.43.0

### [`v1.42.2`](https://github.com/IBM/sarama/releases/tag/v1.42.2):
Version 1.42.2 (2024-02-09)

[Compare
Source](https://github.com/IBM/sarama/compare/v1.42.1...v1.42.2)

<!-- Release notes generated using configuration in .github/release.yaml
at main -->

#### What's Changed

> \[!NOTE]\
> The go.mod directive has been bumped to 1.18 as the minimum version of
Go required for the module. This was necessary to continue to receive
updates from some of the third party dependencies that Sarama makes use
of for compression.

##### 🎉 New Features / Improvements

- feat: update go directive to 1.18 by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2713](https://github.com/IBM/sarama/pull/2713)
- feat: return KError instead of errors in AlterConfigs and
DescribeConfig by [@&#8203;zhuliquan](https://github.com/zhuliquan) in
[https://github.com/IBM/sarama/pull/2472](https://github.com/IBM/sarama/pull/2472)

##### 🐛 Fixes

- fix: don't waste time for backoff on member id required error by
[@&#8203;lzakharov](https://github.com/lzakharov) in
[https://github.com/IBM/sarama/pull/2759](https://github.com/IBM/sarama/pull/2759)
- fix: prevent ConsumerGroup.Close infinitely locking by
[@&#8203;maqdev](https://github.com/maqdev) in
[https://github.com/IBM/sarama/pull/2717](https://github.com/IBM/sarama/pull/2717)

##### 📦 Dependency updates

- chore(deps): bump golang.org/x/net from 0.17.0 to 0.18.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2716](https://github.com/IBM/sarama/pull/2716)
- chore(deps): bump golang.org/x/sync to v0.5.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2718](https://github.com/IBM/sarama/pull/2718)
- chore(deps): bump github.com/pierrec/lz4/v4 from 4.1.18 to 4.1.19 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2739](https://github.com/IBM/sarama/pull/2739)
- chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2748](https://github.com/IBM/sarama/pull/2748)
- chore(deps): bump the golang-org-x group with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2734](https://github.com/IBM/sarama/pull/2734)
- chore(deps): bump the golang-org-x group with 2 updates by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2764](https://github.com/IBM/sarama/pull/2764)
- chore(deps): bump github.com/pierrec/lz4/v4 from 4.1.19 to 4.1.21 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2763](https://github.com/IBM/sarama/pull/2763)
- chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in
/examples/exactly_once by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2749](https://github.com/IBM/sarama/pull/2749)
- chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in
/examples/consumergroup by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2750](https://github.com/IBM/sarama/pull/2750)
- chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in
/examples/sasl_scram_client by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2751](https://github.com/IBM/sarama/pull/2751)
- chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in
/examples/interceptors by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2752](https://github.com/IBM/sarama/pull/2752)
- chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in
/examples/http_server by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2753](https://github.com/IBM/sarama/pull/2753)
- chore(deps): bump github.com/eapache/go-resiliency from 1.4.0 to 1.5.0
by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2745](https://github.com/IBM/sarama/pull/2745)
- chore(deps): bump golang.org/x/crypto from 0.15.0 to 0.17.0 in
/examples/txn_producer by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2754](https://github.com/IBM/sarama/pull/2754)
- chore(deps): bump go.opentelemetry.io/otel/sdk from 1.19.0 to 1.22.0
in /examples/interceptors by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2767](https://github.com/IBM/sarama/pull/2767)
- chore(deps): bump the golang-org-x group with 1 update by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2793](https://github.com/IBM/sarama/pull/2793)
- chore(deps): bump
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric from 0.42.0 to
1.23.1 in /examples/interceptors by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/IBM/sarama/pull/2792](https://github.com/IBM/sarama/pull/2792)

##### 🔧 Maintenance

- fix(examples): housekeeping of code and deps by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2720](https://github.com/IBM/sarama/pull/2720)

##### ➕ Other Changes

- fix(test): retry MockBroker Listen for EADDRINUSE by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2721](https://github.com/IBM/sarama/pull/2721)

#### New Contributors

- [@&#8203;maqdev](https://github.com/maqdev) made their first
contribution in
[https://github.com/IBM/sarama/pull/2717](https://github.com/IBM/sarama/pull/2717)
- [@&#8203;zhuliquan](https://github.com/zhuliquan) made their first
contribution in
[https://github.com/IBM/sarama/pull/2472](https://github.com/IBM/sarama/pull/2472)

**Full Changelog**:
IBM/sarama@v1.42.1...v1.42.2

### [`v1.42.1`](https://github.com/IBM/sarama/releases/tag/v1.42.1):
Version 1.42.1 (2023-11-07)

[Compare
Source](https://github.com/IBM/sarama/compare/v1.42.0...v1.42.1)

#### What's Changed

##### 🐛 Fixes

- fix: make fetchInitialOffset use correct protocol by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2705](https://github.com/IBM/sarama/pull/2705)
- fix(config): relax ClientID validation after 1.0.0 by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2706](https://github.com/IBM/sarama/pull/2706)

**Full Changelog**:
IBM/sarama@v1.42.0...v1.42.1

### [`v1.42.0`](https://github.com/IBM/sarama/releases/tag/v1.42.0):
Version 1.42.0 (2023-11-02)

[Compare
Source](https://github.com/IBM/sarama/compare/v1.41.3...v1.42.0)

<!-- Release notes generated using configuration in .github/release.yaml
at main -->

#### What's Changed

##### 🐛 Fixes

- Asynchronously close brokers during a RefreshBrokers by
[@&#8203;bmassemin](https://github.com/bmassemin) in
[https://github.com/IBM/sarama/pull/2693](https://github.com/IBM/sarama/pull/2693)
- Fix data race on Broker.done channel by
[@&#8203;prestona](https://github.com/prestona) in
[https://github.com/IBM/sarama/pull/2698](https://github.com/IBM/sarama/pull/2698)
- fix: data race in Broker.AsyncProduce by
[@&#8203;lzakharov](https://github.com/lzakharov) in
[https://github.com/IBM/sarama/pull/2678](https://github.com/IBM/sarama/pull/2678)
- Fix default retention time value in offset commit by
[@&#8203;prestona](https://github.com/prestona) in
[https://github.com/IBM/sarama/pull/2700](https://github.com/IBM/sarama/pull/2700)
- fix(txmgr): ErrOffsetsLoadInProgress is retriable by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2701](https://github.com/IBM/sarama/pull/2701)

##### 🔧 Maintenance

- chore(ci): improve ossf scorecard result by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2685](https://github.com/IBM/sarama/pull/2685)
- chore(ci): add kafka 3.6.0 to FVT and versions by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2692](https://github.com/IBM/sarama/pull/2692)

##### ➕ Other Changes

- chore(ci): ossf scorecard.yml by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2683](https://github.com/IBM/sarama/pull/2683)
- fix(ci): always run CodeQL on every commit by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2689](https://github.com/IBM/sarama/pull/2689)
- chore(doc): add OpenSSF Scorecard badge by
[@&#8203;dnwe](https://github.com/dnwe) in
[https://github.com/IBM/sarama/pull/2691](https://github.com/IBM/sarama/pull/2691)

#### New Contributors

- [@&#8203;bmassemin](https://github.com/bmassemin) made their first
contribution in
[https://github.com/IBM/sarama/pull/2693](https://github.com/IBM/sarama/pull/2693)
- [@&#8203;lzakharov](https://github.com/lzakharov) made their first
contribution in
[https://github.com/IBM/sarama/pull/2678](https://github.com/IBM/sarama/pull/2678)

**Full Changelog**:
IBM/sarama@v1.41.3...v1.42.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/newrelic/nri-kafka).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzguMjAuMSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
wenyihu6 added a commit to wenyihu6/cockroach that referenced this pull request Oct 28, 2024
This patch upgrades sarama to v1.43.1 to pick up fix IBM/sarama#2826 related to the kafka
throttling feature we supported in v24.1. It addresses a race condition where
producer could be blocked.

Epic: none

Release note: fixed a race condition in sarama when kafka throttling is
enabled

Epic: none

Release note: fixed a race condition in sarama when kafka throttling is
enabled
craig bot pushed a commit to cockroachdb/cockroach that referenced this pull request Oct 29, 2024
133563: deps: upgrade sarama@1.42.1 to version 1.43.1 r=rharding6373 a=wenyihu6

This patch upgrades sarama to v1.43.1 to pick up fix IBM/sarama#2826 related to the kafka
throttling feature we supported in v24.1. It addresses a race condition where
producer could be blocked.

Epic: none

Release note: fixed a race condition in sarama when kafka throttling is
enabled

Co-authored-by: Wenyi Hu <wenyi@cockroachlabs.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

When the Kafka broker is throttled, the producer is easily blocked
3 participants