apache / rocketmq

Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications.
https://rocketmq.apache.org/
Apache License 2.0
21.13k stars 11.64k forks source link

[Bug] controller start panic #8636

Open zonghaishang opened 3 weeks ago

zonghaishang commented 3 weeks ago

Before Creating the Bug Report

Runtime platform environment

yiji@yiji-m1 ~ % uname -a Darwin yiji-m1.local 23.5.0 Darwin Kernel Version 23.5.0: Wed May 1 20:12:58 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T6000 arm64

JDK: yiji@yiji-m1 rocketmq % java -version java version "1.8.0_331" Java(TM) SE Runtime Environment (build 1.8.0_331-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.331-b09, mixed mode)

RocketMQ version

5.3.1-SNAPSHOT

JDK Version

No response

Describe the Bug

start controller panic:

Connected to the target VM, address: '127.0.0.1:52955', transport: 'socket'
load config properties file OK, /Users/yiji/rocketmq/home/conf/controller-n0.conf
Sofa-Middleware-Log SLF4J Warn : No log util is usable, Default app logger will be used.
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGILL (0x4) at pc=0x0000000127b6dd40, pid=97230, tid=0x0000000000002203
#
# JRE version: Java(TM) SE Runtime Environment (8.0_331-b09) (build 1.8.0_331-b09)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.331-b09 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C  [librocksdbjni7657158669296250959.jnilib+0x49d40]  Java_org_rocksdb_WriteBatch_00024Handler_createNewHandler0+0xc80
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/yiji/opensource/rocketmq/hs_err_pid97230.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Disconnected from the target VM, address: '127.0.0.1:52955', transport: 'socket'

Process finished with exit code 134 (interrupted by signal 6:SIGABRT)

start conf for controller:

yiji@yiji-m1 ~ % cat /Users/yiji/rocketmq/home/conf/controller-n0.conf
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

#controllerDLegerGroup = group1
#controllerDLegerPeers = n0-127.0.0.1:9878;n1-127.0.0.1:9868;n2-127.0.0.1:9858
#controllerDLegerSelfId = n0
controllerStorePath=/Users/yiji/rocketmq/home/controller/n0

clientCallbackExecutorThreads=2
controllerThreadPoolNums=2

controllerType = jRaft
jRaftGroupId = jRaft-Controller
jRaftServerId = localhost:9880
jRaftInitConf = localhost:9880,localhost:9881,localhost:9882
jRaftControllerRPCAddr = localhost:9770,localhost:9771,localhost:9772
jRaftSnapshotIntervalSecs = 3600

Steps to Reproduce

image

What Did You Expect to See?

jdk 1.8 mac arm可以运行broker

What Did You See Instead?

Problematic frame:

C [librocksdbjni7657158669296250959.jnilib+0x49d40] Java_org_rocksdb_WriteBatch_00024Handler_createNewHandler0+0xc80


rocksdb 库在mac os arm机器有问题?

Additional Context

No response

zonghaishang commented 3 weeks ago

rocketmq-rocksdb 需要兼容一下arm64, 我把 rocketmq-rocksdb 依赖替换成 9.5.2</rocksdb.version> 就可以了.

不过broker 又依赖rocketmq-rocksdb的一些新增java。。

lizhimins commented 1 week ago

依赖了加了 compaction filter 的 rocksdb,可以主动 set compaction filter 而不是源码编译 rocksdb,可以修改下