Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 9C679200CB4 for ; Tue, 27 Jun 2017 23:54:05 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 9B071160BDC; Tue, 27 Jun 2017 21:54:05 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id E0C00160BD8 for ; Tue, 27 Jun 2017 23:54:04 +0200 (CEST) Received: (qmail 29542 invoked by uid 500); 27 Jun 2017 21:54:04 -0000 Mailing-List: contact dev-help@avro.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@avro.apache.org Delivered-To: mailing list dev@avro.apache.org Received: (qmail 29531 invoked by uid 99); 27 Jun 2017 21:54:04 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Jun 2017 21:54:04 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 96848C2596 for ; Tue, 27 Jun 2017 21:54:03 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -99.211 X-Spam-Level: X-Spam-Status: No, score=-99.211 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id wbd7MRi9uCyX for ; Tue, 27 Jun 2017 21:54:02 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id E2D265FAE1 for ; Tue, 27 Jun 2017 21:54:01 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 323E3E00A0 for ; Tue, 27 Jun 2017 21:54:01 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id E4B7124124 for ; Tue, 27 Jun 2017 21:54:00 +0000 (UTC) Date: Tue, 27 Jun 2017 21:54:00 +0000 (UTC) From: "Gavin DeSchutter (JIRA)" To: dev@avro.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Comment Edited] (AVRO-1815) Incompatible schema change not detected when wrapped in a UNION MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 27 Jun 2017 21:54:05 -0000 [ https://issues.apache.org/jira/browse/AVRO-1815?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16065543#comment-16065543 ] Gavin DeSchutter edited comment on AVRO-1815 at 6/27/17 9:53 PM: ----------------------------------------------------------------- We are encountering similar issues when using `full transitive` compatibility. Here is an example schema: {code:javascript} { "type": "record", "name": "Foo", "namespace": "events", "fields": [ { "name": "bar", "type": { "type": "record", "name": "Bar", "fields": [ { "name": "baz", "type": [ "string", { "type": "record", "name": "Baz", "fields": [ { "name": "customer", "type": "boolean" } ] } ] } ] } } ] } {code} Altering the field of `customer` to `["int", "string"]` does not return an incompatibility error. was (Author: gdeschut): We are encountering similar issues when using `full transitive` compatibility. Here is an example schema: {code:json} { "type": "record", "name": "Foo", "namespace": "events", "fields": [ { "name": "bar", "type": { "type": "record", "name": "Bar", "fields": [ { "name": "baz", "type": [ "string", { "type": "record", "name": "Baz", "fields": [ { "name": "customer", "type": "boolean" } ] } ] } ] } } ] } {code} Altering the field of `customer` to `["int", "string"]` does not return an incompatibility error. > Incompatible schema change not detected when wrapped in a UNION > --------------------------------------------------------------- > > Key: AVRO-1815 > URL: https://issues.apache.org/jira/browse/AVRO-1815 > Project: Avro > Issue Type: Bug > Components: java > Affects Versions: 1.7.7 > Reporter: Martin Boyle > Attachments: AVRO-1815.patch > > > An incompatible schema change is not detected when it is in a UNION and the change is to the value type of a map e.g. > field > { "name": "segmentEkv", "type": ["null", {"type": "map", "values": {"type": "map", "values": "string"}}], "default": null}, > changes to > { "name": "segmentEkv", "type": ["null", {"type": "map", "values": {"type": "array", "items": "int"}}], "default": null}, > The SchemaValidatorBuilder() will pass this as being compatible. Whereas SchemaCompatibility.check_reader_writer_compatibility will return an incompatible result. The problem for me is that the Confluent Schema Registry uses SchemaValidatorBuilder. > Problem appears to be that while the ResolvingGrammerGenerator correctly marks the field as being an incompatible change, the check for errors on the Symbol object does not descend into the UnionAdjustActionField -- This message was sent by Atlassian JIRA (v6.4.14#64029)