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 5FB15200D08 for ; Thu, 21 Sep 2017 21:48:04 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 5C9701609E1; Thu, 21 Sep 2017 19:48:04 +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 A29D01609DB for ; Thu, 21 Sep 2017 21:48:03 +0200 (CEST) Received: (qmail 70032 invoked by uid 500); 21 Sep 2017 19:48:02 -0000 Mailing-List: contact dev-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zookeeper.apache.org Delivered-To: mailing list dev@zookeeper.apache.org Received: (qmail 70021 invoked by uid 99); 21 Sep 2017 19:48:02 -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; Thu, 21 Sep 2017 19:48:02 +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 04867D6F56 for ; Thu, 21 Sep 2017 19:48:02 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-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 (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id W813twI1-pZk for ; Thu, 21 Sep 2017 19:48:01 +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 1BF495FBBB for ; Thu, 21 Sep 2017 19:48: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 7BB51E02C7 for ; Thu, 21 Sep 2017 19:48:00 +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 157082190E for ; Thu, 21 Sep 2017 19:48:00 +0000 (UTC) Date: Thu, 21 Sep 2017 19:48:00 +0000 (UTC) From: "Jordan Zimmerman (JIRA)" To: dev@zookeeper.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Issue Comment Deleted] (ZOOKEEPER-2901) Session ID that is negative causes mis-calculation of Ephemeral Type MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Thu, 21 Sep 2017 19:48:04 -0000 [ https://issues.apache.org/jira/browse/ZOOKEEPER-2901?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jordan Zimmerman updated ZOOKEEPER-2901: ---------------------------------------- Comment: was deleted (was: The fix for this is straightforward. The hard part is backward compatibility: * End users have data files with potentially corrupted data ** If they've used a ServerId > 127 with ZK versions 3.5.1+ ** If they've used a ServerId > 63 with ZK version 3.5.3 * ContainerManager will treat ephemeral nodes created by servers with the bad Server IDs as container or TTL nodes. The fix created here _must_ expire these sessions so that they don't cause problems. The tricky part is how to do this. We need a way to identify old session IDs and new ones. We _could_ bump the {{FileTxnLog.VERSION}} but that would also be tricky to do in a backward compatible way. I'd appreciate ideas here.) > Session ID that is negative causes mis-calculation of Ephemeral Type > -------------------------------------------------------------------- > > Key: ZOOKEEPER-2901 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2901 > Project: ZooKeeper > Issue Type: Bug > Components: server > Affects Versions: 3.5.3 > Environment: Running 3.5.3-beta in Docker container > Reporter: Mark Johnson > Assignee: Jordan Zimmerman > Priority: Blocker > > In the code that determines the EphemeralType it is looking at the owner (which is the client ID or connection ID): > EphemeralType.java: > public static EphemeralType get(long ephemeralOwner) { > if (ephemeralOwner == CONTAINER_EPHEMERAL_OWNER) { > return CONTAINER; > } > if (ephemeralOwner < 0) { > return TTL; > } > return (ephemeralOwner == 0) ? VOID : NORMAL; > } > However my connection ID is: > header.getClientId(): -720548323429908480 > This causes the code to think this is a TTL Ephemeral node instead of a > NORMAL Ephemeral node. > This also explains why this is random - if my client ID is non-negative > then the node gets added correctly. -- This message was sent by Atlassian JIRA (v6.4.14#64029)