From dev-return-112922-archive-asf-public=cust-asf.ponee.io@kafka.apache.org Thu Apr 9 04:14:08 2020 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id F343618057A for ; Thu, 9 Apr 2020 06:14:07 +0200 (CEST) Received: (qmail 92741 invoked by uid 500); 9 Apr 2020 04:14:04 -0000 Mailing-List: contact dev-help@kafka.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@kafka.apache.org Delivered-To: mailing list dev@kafka.apache.org Received: (qmail 92720 invoked by uid 99); 9 Apr 2020 04:14:03 -0000 Received: from mailrelay1-us-west.apache.org (HELO mailrelay1-us-west.apache.org) (209.188.14.139) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Apr 2020 04:14:03 +0000 Received: from jira-he-de.apache.org (static.172.67.40.188.clients.your-server.de [188.40.67.172]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 44F49E30B6 for ; Thu, 9 Apr 2020 04:14:02 +0000 (UTC) Received: from jira-he-de.apache.org (localhost.localdomain [127.0.0.1]) by jira-he-de.apache.org (ASF Mail Server at jira-he-de.apache.org) with ESMTP id 37C50780440 for ; Thu, 9 Apr 2020 04:14:00 +0000 (UTC) Date: Thu, 9 Apr 2020 04:14:00 +0000 (UTC) From: "Anna Povzner (Jira)" To: dev@kafka.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (KAFKA-9839) IllegalStateException on metadata update when broker learns about its new epoch after the controller MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 Anna Povzner created KAFKA-9839: ----------------------------------- Summary: IllegalStateException on metadata update when broker = learns about its new epoch after the controller Key: KAFKA-9839 URL: https://issues.apache.org/jira/browse/KAFKA-9839 Project: Kafka Issue Type: Bug Components: controller, core Affects Versions: 2.3.1 Reporter: Anna Povzner Broker throws=C2=A0"java.lang.IllegalStateException: Epoch XXX larger than = current broker epoch YYY"=C2=A0 on UPDATE_METADATA when the controller lear= ns about the broker epoch and sends UPDATE_METADATA before KafkaZkCLient.re= gisterBroker completes (the broker learns about its new epoch). Here is the scenario we observed in more detail: 1. ZK session expires on broker 1 2. Broker 1 establishes new session to ZK and creates znode 3. Controller learns about broker 1 and assigns epoch 4. Broker 1 receives UPDATE_METADATA from controller, but it does not know = about its new epoch yet, so we get an exception: ERROR [KafkaApi-3] Error when handling request: clientId=3D1, correlationId= =3D0, api=3DUPDATE_METADATA, body=3D{ ......... java.lang.IllegalStateException: Epoch XXX larger than current broker epoch= YYY at kafka.server.KafkaApis.isBrokerEpochStale(KafkaApis.scala:2725) at = kafka.server.KafkaApis.handleUpdateMetadataRequest(KafkaApis.scala:320) at = kafka.server.KafkaApis.handle(KafkaApis.scala:139) at kafka.server.KafkaReq= uestHandler.run(KafkaRequestHandler.scala:69) at java.lang.Thread.run(Threa= d.java:748) 5.=C2=A0KafkaZkCLient.registerBroker completes on broker 1: "INFO Stat of t= he created znode at /brokers/ids/1" The result is the broker has a stale metadata for some time. Possible solutions: 1. Broker returns a more specific error and controller retries UPDATE_MEDAT= A 2. Broker accepts UPDATE_METADATA with larger broker epoch. -- This message was sent by Atlassian Jira (v8.3.4#803005)