Kafka - java.lang.VerifyError: Uninitialized object exists on backward branch 193

简介: Kafka - java.lang.VerifyError: Uninitialized object exists on backward branch 193


问题

[root@localhost bin]# ./kafka-server-start.sh ../config/server.properties
[2023-10-25 14:37:59,386] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
[2023-10-25 14:37:59,697] ERROR Exiting Kafka due to fatal exception (kafka.Kafka$)
java.lang.VerifyError: Uninitialized object exists on backward branch 193
Exception Details:
  Location:
    scala/collection/immutable/HashMap$HashTrieMap.split()Lscala/collection/immutable/Seq; @238: goto
  Reason:
    Error exists in the bytecode
  Bytecode:
    0000000: 2ab6 0044 04a0 000f bb00 da59 2ab2 00df
    0000010: b700 e2b0 2ab6 003e b800 523c 1b04 a401
    0000020: 5b1b 056c 3d2a 1b05 6c2a b600 3eb7 00e4
    0000030: 3e2a b600 3e02 1d78 7e36 042a b600 3e02
    0000040: 1020 1d64 7c7e 3605 bb00 1c59 b200 e92a
    0000050: b600 41c0 00eb b600 efb7 00f2 1cb6 00f6
    0000060: 3a06 1906 c600 1a19 06b6 00f9 c000 773a
    0000070: 0719 06b6 00fc c000 773a 08a7 000c bb00
    0000080: fe59 01b7 0101 bf19 073a 0919 083a 0abb
    0000090: 0002 5915 0419 09bb 001c 59b2 00e9 1909
    00000a0: c000 ebb6 00ef b700 f203 b801 073a 0e3a
    00000b0: 0d03 190d b901 0b01 0019 0e3a 1136 1036
    00000c0: 0f15 0f15 10a0 0008 1911 a700 2715 0f04
    00000d0: 6015 1019 0d15 0fb9 010e 0200 c000 053a
    00000e0: 1719 1119 17b8 0112 3a11 3610 360f a7ff
    00000f0: d3b8 0116 b700 803a 0bbb 0002 5915 0519
    0000100: 0abb 001c 59b2 00e9 190a c000 ebb6 00ef
    0000110: b700 f203 b801 073a 133a 1203 1912 b901
    0000120: 0b01 0019 133a 1636 1536 1415 1415 15a0
    0000130: 0008 1916 a700 2715 1404 6015 1519 1215
    0000140: 14b9 010e 0200 c000 053a 1819 1619 18b8
    0000150: 0119 3a16 3615 3614 a7ff d3b8 0116 b700
    0000160: 803a 0cbb 00da 5919 0bbb 00da 5919 0cb2
    0000170: 00df b700 e2b7 00e2 b02a b600 4103 32b6
    0000180: 011b b0
  Stackmap Table:
    same_frame(@20)
    full_frame(@126,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#147]},{})
    append_frame(@135,Object[#119],Object[#119])
    full_frame(@193,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#147],Object[#119],Object[#119],Object[#119],Object[#119],Top,Top,Object[#28],Object[#78],Integer,Integer,Object[#145]},{Uninitialized[#143],Uninitialized[#143],Integer,Object[#119]})
    full_frame(@205,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#147],Object[#119],Object[#119],Object[#119],Object[#119],Top,Top,Object[#28],Object[#78],Integer,Integer,Object[#145]},{Uninitialized[#143],Uninitialized[#143],Integer,Object[#119]})
    full_frame(@241,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#147],Object[#119],Object[#119],Object[#119],Object[#119],Top,Top,Object[#28],Object[#78],Integer,Integer,Object[#145]},{Uninitialized[#143],Uninitialized[#143],Integer,Object[#119],Object[#145]})
    full_frame(@299,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#147],Object[#119],Object[#119],Object[#119],Object[#119],Object[#2],Top,Object[#28],Object[#78],Integer,Integer,Object[#145],Object[#28],Object[#78],Integer,Integer,Object[#145]},{Uninitialized[#249],Uninitialized[#249],Integer,Object[#119]})
    full_frame(@311,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#147],Object[#119],Object[#119],Object[#119],Object[#119],Object[#2],Top,Object[#28],Object[#78],Integer,Integer,Object[#145],Object[#28],Object[#78],Integer,Integer,Object[#145]},{Uninitialized[#249],Uninitialized[#249],Integer,Object[#119]})
    full_frame(@347,{Object[#2],Integer,Integer,Integer,Integer,Integer,Object[#147],Object[#119],Object[#119],Object[#119],Object[#119],Object[#2],Top,Object[#28],Object[#78],Integer,Integer,Object[#145],Object[#28],Object[#78],Integer,Integer,Object[#145]},{Uninitialized[#249],Uninitialized[#249],Integer,Object[#119],Object[#145]})
    full_frame(@377,{Object[#2],Integer},{})
        at scala.collection.immutable.HashMap$.scala$collection$immutable$HashMap$$makeHashTrieMap(HashMap.scala:340)
        at scala.collection.immutable.HashMap$.scala$collection$immutable$HashMap$$makeHashTrieMap(HashMap.scala:344)
        at scala.collection.immutable.HashMap$HashMap1.updated0(HashMap.scala:390)
        at scala.collection.immutable.HashMap.updated(HashMap.scala:79)
        at scala.collection.immutable.Map$Map4.updated(Map.scala:467)
        at scala.collection.immutable.Map$Map4.$plus(Map.scala:468)
        at scala.collection.immutable.Map$Map4.$plus(Map.scala:430)
        at scala.collection.mutable.MapBuilder.$plus$eq(MapBuilder.scala:32)
        at scala.collection.mutable.MapBuilder.$plus$eq(MapBuilder.scala:28)
        at scala.collection.generic.Growable.$anonfun$$plus$plus$eq$1(Growable.scala:62)
        at scala.collection.generic.Growable$$Lambda$6/315138752.apply(Unknown Source)
        at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
        at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
        at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
        at scala.collection.generic.Growable.$plus$plus$eq(Growable.scala:62)
        at scala.collection.generic.Growable.$plus$plus$eq$(Growable.scala:53)
        at scala.collection.mutable.MapBuilder.$plus$plus$eq(MapBuilder.scala:28)
        at scala.collection.generic.GenMapFactory.apply(GenMapFactory.scala:51)
        at kafka.server.KafkaConfig$.<init>(KafkaConfig.scala:338)
        at kafka.server.KafkaConfig$.<clinit>(KafkaConfig.scala)
        at kafka.Kafka$.buildServer(Kafka.scala:72)
        at kafka.Kafka$.main(Kafka.scala:91)
        at kafka.Kafka.main(Kafka.scala)

排查思路

这玩意儿一看就是JDK版本的问题

问题出在 JDK 次要版本上。 Scala 2.12 需要更新版本的 JDK,然后是 1.8.0_111

我这里的版本虽然看起来对,但是JAVA_HOME不对。 无论运行哪个版本的 JRE,都需要 JAVA_HOME 指向正确的 JDK 版本。

解决办法

  1. 要么更新系统默认的JAVA_HOME的值
  2. 要么启动前 export JAVA_HOME

我采用了第二种方法

[root@localhost bin]# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre
[root@localhost bin]# ./kafka-server-start.sh ../config/server.properties

问题解决



相关文章
|
4天前
|
Java
Java Object 类详解
在 Java 中,`Object` 类是所有类的根类,每个 Java 类都直接或间接继承自 `Object`。作为所有类的超类,`Object` 定义了若干基本方法,如 `equals`、`hashCode`、`toString` 等,这些方法在所有对象中均可使用。通过重写这些方法,可以实现基于内容的比较、生成有意义的字符串表示以及确保哈希码的一致性。此外,`Object` 还提供了 `clone`、`getClass`、`notify`、`notifyAll` 和 `wait` 等方法,支持对象克隆、反射机制及线程同步。理解和重写这些方法有助于提升 Java 代码的可读性和可维护性。
|
2月前
|
Java
【Java基础面试二十】、介绍一下Object类中的方法
这篇文章介绍了Java中Object类的常用方法,包括`getClass()`、`equals()`、`hashCode()`、`toString()`、`wait()`、`notify()`、`notifyAll()`和`clone()`,并提到了不推荐使用的`finalize()`方法。
【Java基础面试二十】、介绍一下Object类中的方法
|
2月前
|
消息中间件 Java Kafka
【Azure 事件中心】在微软云中国区 (Mooncake) 上实验以Apache Kafka协议方式发送/接受Event Hubs消息 (Java版)
【Azure 事件中心】在微软云中国区 (Mooncake) 上实验以Apache Kafka协议方式发送/接受Event Hubs消息 (Java版)
|
2月前
|
JSON 前端开发 Java
java系列之 页面打印出 [object Object],[object Object]
文章解释了在前端页面打印JSON对象时出现`[object Object]`的原因,并提供了使用`JSON.stringify(json对象)`方法将对象转换为可读字符串的解决方案。
java系列之 页面打印出 [object Object],[object Object]
|
2月前
|
消息中间件 Java Kafka
"Kafka快速上手:从环境搭建到Java Producer与Consumer实战,轻松掌握分布式流处理平台"
【8月更文挑战第10天】Apache Kafka作为分布式流处理平台的领头羊,凭借其高吞吐量、可扩展性和容错性,在大数据处理、实时日志收集及消息队列领域表现卓越。初学者需掌握Kafka基本概念与操作。Kafka的核心组件包括Producer(生产者)、Broker(服务器)和Consumer(消费者)。Producer发送消息到Topic,Broker负责存储与转发,Consumer则读取这些消息。首先确保已安装Java和Kafka,并启动服务。接着可通过命令行创建Topic,并使用提供的Java API实现Producer发送消息和Consumer读取消息的功能。
60 8
|
2月前
|
消息中间件 Java 大数据
"深入理解Kafka单线程Consumer:核心参数配置、Java实现与实战指南"
【8月更文挑战第10天】在大数据领域,Apache Kafka以高吞吐和可扩展性成为主流数据流处理平台。Kafka的单线程Consumer因其实现简单且易于管理而在多种场景中受到欢迎。本文解析单线程Consumer的工作机制,强调其在错误处理和状态管理方面的优势,并通过详细参数说明及示例代码展示如何有效地使用KafkaConsumer类。了解这些内容将帮助开发者优化实时数据处理系统的性能与可靠性。
74 7
|
2月前
|
前端开发 Java 编译器
【前端学java】java中的Object类和前端中的Object有什么区别(9)
【8月更文挑战第10天】java中的Object类和前端中的Object有什么区别
34 0
【前端学java】java中的Object类和前端中的Object有什么区别(9)
|
2月前
|
消息中间件 负载均衡 Java
"深入Kafka核心:探索高效灵活的Consumer机制,以Java示例展示数据流的优雅消费之道"
【8月更文挑战第10天】在大数据领域,Apache Kafka凭借其出色的性能成为消息传递与流处理的首选工具。Kafka Consumer作为关键组件,负责优雅地从集群中提取并处理数据。它支持消息的负载均衡与容错,通过Consumer Group实现消息的水平扩展。下面通过一个Java示例展示如何启动Consumer并消费数据,同时体现了Kafka Consumer设计的灵活性与高效性,使其成为复杂消费场景的理想选择。
101 4
|
2月前
|
消息中间件 负载均衡 Java
"Kafka核心机制揭秘:深入探索Producer的高效数据发布策略与Java实战应用"
【8月更文挑战第10天】Apache Kafka作为顶级分布式流处理平台,其Producer组件是数据高效发布的引擎。Producer遵循高吞吐、低延迟等设计原则,采用分批发送、异步处理及数据压缩等技术提升性能。它支持按消息键值分区,确保数据有序并实现负载均衡;提供多种确认机制保证可靠性;具备失败重试功能确保消息最终送达。Java示例展示了基本配置与消息发送流程,体现了Producer的强大与灵活性。
59 3