Skip to content

MutationDetector warns due to missing equals method in KinesisSource #21133

@damccorm

Description

@damccorm

An implementation of "equals" of the source seems to be expected/required when doing a bounded read from an unbounded source. If doing so, logs are full of warnings and fairly disturbing, see below. Same also applies, for instance, to the Kafka Source.

Should KinesisSource (and dependencies) implement equals both in SDK v1 and v2.


Dec 02, 2021 10:28:53 AM org.apache.beam.sdk.util.MutationDetectors$CodedValueMutationDetector verifyUnmodifiedThrowingCheckedExceptions
WARNING:
Coder of type class org.apache.beam.sdk.coders.SerializableCoder has a #structuralValue method which
does not return true when the encoding of the elements is equal. Element Shard{source=org.apache.beam.sdk.io.kinesis.KinesisSource@4f478720,
maxNumRecords=1000, maxReadTime=PT600S}
Dec 02, 2021 10:28:53 AM org.apache.beam.sdk.util.MutationDetectors$CodedValueMutationDetector
verifyUnmodifiedThrowingCheckedExceptions
WARNING: Coder of type class org.apache.beam.sdk.coders.SerializableCoder
has a #structuralValue method which does not return true when the encoding of the elements is equal.
Element Shard{source=org.apache.beam.sdk.io.kinesis.KinesisSource@1176f162, maxNumRecords=1000, maxReadTime=PT600S}
Dec
02, 2021 10:28:53 AM org.apache.beam.sdk.util.MutationDetectors$CodedValueMutationDetector verifyUnmodifiedThrowingCheckedExceptions
WARNING:
Coder of type class org.apache.beam.sdk.coders.KvCoder has a #structuralValue method which does not
return true when the encoding of the elements is equal. Element KV{689044774, Shard{source=org.apache.beam.sdk.io.kinesis.KinesisSource@1176f162,
maxNumRecords=1000, maxReadTime=PT600S}}
Dec 02, 2021 10:28:53 AM org.apache.beam.sdk.util.MutationDetectors$CodedValueMutationDetector
verifyUnmodifiedThrowingCheckedExceptions
WARNING: Coder of type class org.apache.beam.sdk.coders.SerializableCoder
has a #structuralValue method which does not return true when the encoding of the elements is equal.
Element Shard{source=org.apache.beam.sdk.io.kinesis.KinesisSource@1176f162, maxNumRecords=1000, maxReadTime=PT600S}
Dec
02, 2021 10:28:53 AM org.apache.beam.sdk.util.MutationDetectors$CodedValueMutationDetector verifyUnmodifiedThrowingCheckedExceptions
WARNING:
Coder of type class org.apache.beam.sdk.coders.KvCoder has a #structuralValue method which does not
return true when the encoding of the elements is equal. Element KV{689044774, Shard{source=org.apache.beam.sdk.io.kinesis.KinesisSource@47b75d1c,
maxNumRecords=1000, maxReadTime=PT600S}} 

Imported from Jira BEAM-13369. Original Jira may contain additional context.
Reported by: mosche.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions