第 7 章 已知问题
本节论述了 AMQ Broker 7.12 中已知的问题。
ENTMQBR-9103 - 在关闭多个使用 AMQP 的线程时,NullPointerException
当为 AMQP 信息运行多线程消费者时,代理有时会生成 WARN 级别日志消息,如下所示:
2024-05-13 18:11:46,048 WARN [io.netty.util.concurrent.AbstractEventExecutor] 一个任务引发异常。任务: org.apache.activemq.artemis.protocol.amqp.proton.AMQPLargeMessageWriter$$Lambda$643/0x00007fa4ff5153c0@33bff98e java.lang.NullPointerException: null
当客户端完成使用消息且有时由堆栈追踪附带时,会生成消息。
没有信息会丢失,消息可以被忽略。
ENTMQBR-8106 - 在更改 CR 中的 MessageMigration 后 AMQ Broker Drainer pod 无法正常工作
您无法更改正在运行的代理部署中
messageMigration
属性的值。要临时解决这个问题,您必须在新的ActiveMQ Artemis
CR 中为messageMigration
属性设置所需的值,并创建新的代理部署。
ENTMQBR-8166 - 带有 UseClientAuth=true 的自签名证书可防止与 Jolokia 的 Operator 通信
如果在
ActiveMQ Artemis
CR 的console
部分中将useClientAuth
属性设置为true
,Operator 无法在代理上配置某些功能,如创建地址。在 Operator 日志中,您会看到以remote error: tls: bad certificate
结尾的错误消息。
ENTMQBR-7359 - 更改为当前使用 7.10.0 Operator 的凭证 secret 处理
Operator 存储管理员用户名和密码,用于在 secret 中连接到代理。默认 secret 名称格式为 <
custom-resource-name>-credentials-secret
。您可以手动创建 secret,或允许 Operator 创建 secret。如果在 7.10.0 之前的自定义资源中配置了
adminUser
和adminPassword
属性,Operator 会使用这些属性的值更新手动创建的 secret。从 7.10.0 开始,Operator 不再更新手动创建的 secret。因此,如果您更改了 CR 中的adminUser
和adminPassword
属性的值,则必须:- 使用新用户名和密码更新 secret
-
删除 secret 并允许 Operator 创建 secret。当 Operator 创建 secret 时,如果在 CR 中指定它们,它会添加
adminUser
和adminPassword
属性的值。如果这些属性不在 CR 中,Operator 会为 secret 生成随机凭证。
ENTMQBR-7111 - 7.10 版本的 Operator 通常会在升级过程中删除 StatefulSet
如果您要升级到 AMQ Broker Operator 7.10.0,新的 Operator 会在协调过程中自动删除每个部署的现有 StatefulSet。当 Operator 删除 StatefulSet 时,现有代理 pod 会被删除,这会导致临时代理中断。
您可以运行以下命令来手动删除 StatefulSet,并在 Operator 被删除 StatefulSet: oc delete statefulset <statefulset-name> --cascade=orphan 前删除正在运行的 pod: oc delete statefulset < statefulset-name> --cascade=orphan
在升级过程中手动删除 StatefulSet,新 Operator 可以在不删除正在运行的 pod 的情况下协调 StatefulSet。如需更多信息,请参阅在 OpenShift 上部署 AMQ Broker 中的使用 OperatorHub 升级 Operator。
ENTMQBR-5749 - 删除 OperatorHub 中可见的不受支持的 operator
仅支持 从 OperatorHub 部署 Operator 中提到的 Operator 和 Operator 频道。出于与 Operator 出版物相关的技术原因,其他 Operator 和频道在 OperatorHub 中可见,应该会被忽略。为了便于参考,以下列表显示了哪些 Operator 可见,但不支持:
- Red Hat Integration - AMQ Broker LTS - 所有频道
- Red Hat Integration - AMQ Broker - alpha、current 和 current-76
ENTMQBR-4140 - AMQ Broker Operator:如果
storage.size
被不正确的指定,则安装将不可用如果您配置自定义资源(CR)实例的
storage.size
属性,以指定部署持久性存储中的代理所需的持久性卷声明(PVC)大小,如果没有正确指定这个值,Operator 安装将不可用。例如,假设您将storage.size
的值设置为1 (
即,没有指定单元)。在这种情况下,Operator 无法使用 CR 创建代理部署。另外,即使您删除 CR 并使用正确指定storage.size
部署新版本,Operator 仍无法使用此 CR 创建部署。要临时解决这个问题,首先停止 Operator。在 OpenShift Container Platform Web 控制台中,单击 Deployments。对于与 AMQ Broker Operator 对应的 Pod,点 More options 菜单(三个垂直点)。单击 Edit Pod Count,并将值设为
0。
当 Operator Pod 停止后,使用storage.size
创建 CR 的新版本。然后,要重启 Operator,请再次点 Edit Pod Count,并将值设为1
。
ENTMQBR-4141 - AMQ Broker Operator:增加持久性卷大小需要在重新创建状态集后手动参与
如果您试图增加部署持久性存储中的代理所需的持久性卷声明(PVC)的大小,则更改不会生效,而无需进一步手动步骤。例如,假设您配置自定义资源(CR)实例的
storage.size
属性,以指定 PVC 的初始大小。如果您修改了 CR 来指定storage.size
的不同值,现有代理将继续使用原始 PVC 大小。即使将部署缩减为零个代理,也会发生这种情况,然后备份到原始数字。但是,如果您扩展部署的大小以添加额外的代理,则新代理将使用新的 PVC 大小。要临时解决这个问题,并确保部署中的所有代理都使用相同的 PVC 大小,使用 OpenShift Container Platform Web 控制台扩展部署使用的 PVC 大小。在控制台中,单击
。点您的部署。在右上角的 Actions 下拉菜单中,选择 Expand PVC
并输入新值。