RabbitMQ 无法分配可执行内存。改用解释器

RabbitMQ Cannot allocate executable memory. Use the interpreter instead

我已经使用 yum install rabbitmq-server 在 Fedora 35 上安装了 rabbitmq。我没有接触任何配置。只是 运行 命令 sudo systemctl start rabbitmq-server 。输出:

    Job for rabbitmq-server.service failed because a fatal signal was delivered causing the control process to dump core.

    See "systemctl status rabbitmq-server.service" and "journalctl -xeu rabbitmq-server.service" for details.

还有运行:sudo systemctl status rabbitmq-server。输出:

Dec 16 08:18:07 fedora35.linuxvmimages.local systemd[1]: Starting RabbitMQ broker...

Dec 16 08:18:07 fedora35.linuxvmimages.local rabbitmq-server[4953]: beam/jit/x86/beam_asm.cpp:167:pick_allocator(): Internal error: jit: Cannot allocate executable memory. Use the interpreter instead.

Dec 16 08:18:07 fedora35.linuxvmimages.local systemd[1]: rabbitmq-server.service: Main process exited, code=dumped, status=6/ABRT

Dec 16 08:18:07 fedora35.linuxvmimages.local systemd[1]: rabbitmq-server.service: Failed with result 'core-dump'.

Dec 16 08:18:07 fedora35.linuxvmimages.local systemd[1]: Failed to start RabbitMQ broker.

我自己看到了同样的问题,并且在以前的版本中看到过。

我建议通过一组额外的存储库使用官方的 Team RabbitMQ 包,因为它们可以工作并且是最新的: https://www.rabbitmq.com/install-rpm.html

然后删除现有的 erlang 和 rabbitmq 包并在禁用 fedora 更新包的情况下安装。

sudo dnf remove erlang* rabbitmq-server
sudo dnf install rabbitmq-server erlang --disablerepo updates

您可能还想通过添加以下内容使 fedora-updates 存储库永久排除:

exclude=rabbitmq_server erlang*

到您的 /etc/yum.repos.d/fedora-updates.repo [更新] 部分。

从 Fedora 34 升级到 35 时也可能遇到同样的问题。绝对是核心转储。为我解决它的步骤是使用此处记录的“零依赖”选项:https://www.rabbitmq.com/install-rpm.html

基本上:

  • 删除原件:sudo dnf remove 'erlang*' rabbitmq-server
  • 安装这个 Erlang,“RabbitMQ 的零依赖 Erlang RPM”:https://github.com/rabbitmq/erlang-rpm
  • 添加回购:sudo cat >/etc/yum.repos.d/rabbitmq.repo # ... contents of zero-dep repo
  • 安装最少的软件包:sudo dnf install --repo rabbitmq_erlang --repo rabbitmq_server erlang rabbitmq-server