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 incorrect calculation of canonical schema #268

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

timou
Copy link

@timou timou commented Apr 14, 2023

For some valid schemas, goavro will incorrectly compute the canonical form. This results in an incorrect Rabin fingerprint. Due to the random nature of map iteration in golang, the fingerprint for the exact same schema can change between consecutive runs, which should not happen.

The error occurs with namespaces, with two nested names that are the same. The outer name can get incorrectly namespaced if it is processed last, due to the name collision in the typeLookup map.

The fix is to remove the colliding name if the type is not one of the types that is supposed to be namespaced.

For some valid schemas, goavro will incorrectly compute the
canonical form. This results in an incorrect Rabin fingerprint.
Due to the random nature of map iteration in golang, the
fingerprint for the exact same schema can change between
consecutive runs, which should not happen.

The error occurs with namespaces, with two nested names that
are the same. The outer name can get incorrectly namespaced
if it is processed last, due to the name collision in the
typeLookup map.

The fix is to remove the colliding name if the type is not
one of the types that is supposed to be namespaced.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant