-
Notifications
You must be signed in to change notification settings - Fork 325
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
SIGSEGV in 0.12.0 with zstd compression enabled, when producer is shared between multiple goroutines #1163
Comments
Could you provide the reproducible code? I couldn't reproduce it. And could you provide the OS env where you are running the go client?
Do you mean that only this producer would crash? |
Unfortunately I am not able to provide a minimal test case. This is a production system, so we rolled back to 0.11.0. This code is running in a container based on Alpine 3.19.1. However, I can reproduce this issue when running our code from the command line, using Ubuntu 23.10. Sometimes, this message will be generated instead of a segfault:
|
In the zstd code, I see this comment (in
Our calling code uses multiple goroutines and will be multi-threaded at the OS level. In the particular code that crashes, we share a In v0.11 of the pulsar-client-go library, compression always occurred in the function In v0.12, compression occurs in the I think the issue is that v0.12 of the pulsar-client-go library is no longer meeting the requirement to use a unique zstd context per thread, if the calling client shares a If this is by design then that's fine, but in that case it would be helpful to update the documentation and explicitly state that a |
Expected behavior
In release v0.11.0, sending unbatched messages with zstd compression enabled works fine.
In v0.12.0, it appears to cause a segfault.
Actual behavior
Segfaults of the following form are observed:
Steps to reproduce
I don't have test case code, but the configuration for the crashing producer is
I have other producers in the system which have batching enabled and zstd compression also enabled. These are not crashing in 0.12.0.
System configuration
Pulsar version: 3.1.2
Golang version: 1.21.6
The text was updated successfully, but these errors were encountered: