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
S3 sink crashes on null-valued tombstone messages. #42
Comments
Hi, |
@ldcasillas-progreso What did you end up doing for this issue? I've hit the same problem! |
What we've done is to set |
I'm debugging this, but I cannot reproduce the error. As long as "format.class" is set to "io.confluent.connect.s3.format.json.JsonFormat", the connector can deal with null AvroRecord, with or without AvroConverter. When "format.class" is set to "io.confluent.connect.s3.format.avro.AvroFormat", it will threw me an error, but different from yours. Could you be more specific about the scenario where you encounter the error? Thank you! |
This can now be solved with an SMT: |
@cyrusv Unfortunately the TombstoneHandler can only ignore the null value messages. But in my case the null value messages cannot be ignored as it the way to signal a deleted message. I use "io.confluent.connect.s3.format.json.JsonFormat" and expect to see an empty json in output file. |
@max-polyakov , I understand your use-case. We're exploring some upgrades in S3 connector that will make this possible, but it's a big investment. Stay tuned! |
@cyrusv any updates on this? |
@darrenhaken thanks for the comment, let me check with @kkonstantine on this issue. To confirm I understand correctly, the current |
@dosvath , Any progress here? It would be great some mechanism to write an empty file in S3 when we receive a tombstone. |
@miguelbirdie, I understand the request, but we don't have it in our roadmap. We would be welcoming and I'd review a PR if someone from the community puts one together! |
@cyrusv do you have a design for this case ? What do you think should happen? |
@NathanNam , @kkonstantine , any input here? |
If we try to use the Confluent S3 sink (with the Avro Converter) to save a topic that uses null-valued messages as tombstones for log compaction, we get exceptions like the following. These exceptions kill the task, and repeat whenever we try to restart it.
For the particular streams that I'm dealing with it would be safe for the sink to just ignore the tombstone messages, but the bigger problem seems to be that there is just no way for connectors (neither sources nor sinks) to distinguish tombstones (that should be ignored) from null-valued data (which should be persisted).
In the mean time arguably there should be a configurable option to ignore messages with null values.
Related issue on third-party source connector:
The text was updated successfully, but these errors were encountered: