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 0DBF2200C52 for ; Mon, 27 Mar 2017 06:30:47 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 0C4A3160B92; Mon, 27 Mar 2017 04:30:47 +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 2BAFF160B87 for ; Mon, 27 Mar 2017 06:30:46 +0200 (CEST) Received: (qmail 58756 invoked by uid 500); 27 Mar 2017 04:30:45 -0000 Mailing-List: contact dev-help@curator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@curator.apache.org Delivered-To: mailing list dev@curator.apache.org Received: (qmail 58745 invoked by uid 99); 27 Mar 2017 04:30:45 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 27 Mar 2017 04:30:45 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id E330BC04DE for ; Mon, 27 Mar 2017 04:30:44 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -99.202 X-Spam-Level: X-Spam-Status: No, score=-99.202 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id VlBwGKZcdzQ2 for ; Mon, 27 Mar 2017 04:30:43 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 3B52E5FB7A for ; Mon, 27 Mar 2017 04:30:43 +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 28408E0596 for ; Mon, 27 Mar 2017 04:30:42 +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 9F26C24062 for ; Mon, 27 Mar 2017 04:30:41 +0000 (UTC) Date: Mon, 27 Mar 2017 04:30:41 +0000 (UTC) From: "ASF GitHub Bot (JIRA)" To: dev@curator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CURATOR-394) UnrecognizedPropertyException: "enabled" incompatibility MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Mon, 27 Mar 2017 04:30:47 -0000 [ https://issues.apache.org/jira/browse/CURATOR-394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15942619#comment-15942619 ] ASF GitHub Bot commented on CURATOR-394: ---------------------------------------- Github user cammckenzie commented on the issue: https://github.com/apache/curator/pull/208 I can't think of a better option other than deprecating the 1 arg constructor, and forcing clients to explicitly define their behaviour going forward. > UnrecognizedPropertyException: "enabled" incompatibility > -------------------------------------------------------- > > Key: CURATOR-394 > URL: https://issues.apache.org/jira/browse/CURATOR-394 > Project: Apache Curator > Issue Type: Bug > Components: Recipes > Affects Versions: 2.12.0 > Reporter: Gian Merlino > > When doing a rolling upgrade of our services from Curator 2.10.0 to Curator 2.12.0 we noticed some of the non-upgraded services started throwing this error. The cause seems to the combination of a new field added to ServiceInstance in CURATOR-275, and the lack of an "ignore unknown properties" setting on the ObjectMapper used by Curator 2.10.0. > This makes it so clients need to be upgraded before services. But if you have a cluster where some services are also clients of other services (or of a service they are a part of) then I don't see a way to do a rolling upgrade with the way things currently are. Whatever instance you upgrade first will start announcing itself in a way that breaks instances running the previous version of the code. This doesn't seem to be configurable either, so the new "enabled" field can't be omitted from the serialized form. > One possible solution is to revert CURATOR-275, add an "ignore unknown properties" to the ObjectMapper, and then re-introduce CURATOR-275 in a future release. That'd create a "you must go through release X first to upgrade to release Y" situation, but it would at least make it possible to do rolling updates. > Another possible solution is to accept that clients always need to be upgraded before services, and accept that if you can't do this, it's impossible to update without downtime. This seems like something that'd be good to avoid though. > {code} > 2017-03-23 16:22:35,652 [DruidTaskResolver[com.metamx.tranquility.druid.IndexService@37a0ec3c]] WARN c.m.t.finagle.DruidTaskResolver - Poll failed, trying again at[2017-03-23T16:23:10.899Z]. > org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "enabled" (Class org.apache.curator.x.discovery.ServiceInstance), not marked as ignorable > at [Source: [B@e9cde06; line: 1, column: 226] (through reference chain: org.apache.curator.x.discovery.ServiceInstance["enabled"]) > at org.codehaus.jackson.map.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:53) ~[org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar:1.9.13] > at org.codehaus.jackson.map.deser.StdDeserializationContext.unknownFieldException(StdDeserializationContext.java:267) ~[org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar:1.9.13] > at org.codehaus.jackson.map.deser.std.StdDeserializer.reportUnknownProperty(StdDeserializer.java:673) ~[org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar:1.9.13] > at org.codehaus.jackson.map.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:659) ~[org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar:1.9.13] > at org.codehaus.jackson.map.deser.BeanDeserializer.handleUnknownProperty(BeanDeserializer.java:1365) ~[org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar:1.9.13] > at org.codehaus.jackson.map.deser.BeanDeserializer._handleUnknown(BeanDeserializer.java:725) ~[org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar:1.9.13] > at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:703) ~[org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar:1.9.13] > at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580) ~[org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar:1.9.13] > at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732) ~[org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar:1.9.13] > at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1973) ~[org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar:1.9.13] > at org.apache.curator.x.discovery.details.JsonInstanceSerializer.deserialize(JsonInstanceSerializer.java:50) ~[org.apache.curator.curator-x-discovery-2.10.0.jar:na] > at org.apache.curator.x.discovery.details.ServiceCacheImpl.addInstance(ServiceCacheImpl.java:193) ~[org.apache.curator.curator-x-discovery-2.10.0.jar:na] > at org.apache.curator.x.discovery.details.ServiceCacheImpl.start(ServiceCacheImpl.java:96) ~[org.apache.curator.curator-x-discovery-2.10.0.jar:na] > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)