1.9. 已知问题
查看以下已知问题,了解红帽构建的 Quarkus 3.2 限制和临时解决方案。
1.9.1. 由于版本 3.2.9.SP1 中的安全修复,使用 CDI 拦截器解析多租户 OIDC 配置会失败 复制链接链接已复制到粘贴板!
在红帽构建的 Quarkus 版本 3.2.9.SP1 中实施的安全修复来解决 CVE-2023-6267 的问题。
只有在使用带有 RestEasy Classic 的多个 OIDC 供应商时,只有在使用上下文和依赖注入(CDI)拦截器以编程方式解析 OIDC 租户配置标识符时,才会进行这种中断更改。
在此次更新之前,CDI 拦截器会在身份验证检查前运行。在引入修复后,会在 CDI 拦截器被触发前进行身份验证。因此,使用 CDI 拦截器解析多个 OIDC 供应商配置标识符不再可以正常工作。RESTEasy 主动应用不会受到影响。
临时解决方案: 使用 quarkus.oidc.TenantResolver 方法解析当前的 OIDC 配置租户 ID。
如需更多信息,请参阅 Quarkus "Using OpenID Connect (OIDC)多租户指南中的使用 注解解析租户标识符 部分。
1.9.2. podman 4.6 及更新的版本不适用于 SELinux 和 Testcontainers 库 复制链接链接已复制到粘贴板!
Ryuk 容器(对于 dev mode 中使用的 testcontainers 库)非常重要,在使用 Podman 4.6 或更高版本时无法启动。具体来说,这些问题清单在使用 SELinux 时,并防止 Ryuk 容器成功启动。
以下是具体问题和相应的临时解决方案:
与 Docker 守护进程套接字 的连接失败:默认情况下,
在尝试连接到 unix:///var/run/docker.sock 的 Docker 守护进程套接字时会出现 Permission denied错误。"-
临时解决方案:更新
containers.conf文件,使其包含label=false。
-
临时解决方案:更新
SELinux 和容器配置不匹配 :如果在操作系统上启用了
SELinux,但在containers.conf文件中禁用了 SELinux,则会出现InternalServerErrorException。-
临时解决方案:运行
sudo setenforce 0以禁用SELinux。
-
临时解决方案:运行
-
Unresolved Oracle Cloud Infrastructure (OCI) permissions error: an message appearsing,
OCI permissions denied.这个问题还没有临时解决方案。
根据这些问题,请考虑以下选项:
-
禁止使用
Ryuk容器,直到此已知问题解决为止。 - 使用与 Red Hat Enterprise Linux 8 及更新的版本兼容的 Podman 的早期版本,如 4.5.x。
如需更多信息,请参阅以下资源:
1.9.3. 由 Testcontainers 生成的容器偶尔会失败 复制链接链接已复制到粘贴板!
由 testcontainers 库为 dev 模式持续测试生成的容器偶尔会失败,并显示 Broken pipeline 错误。
临时解决方案:要解决这个问题,请重启 dev 模式。此问题不会影响生产环境模式。
1.9.4. 在特定流控制条件下,HTTP/1.1 升级到 H2C 会失败 复制链接链接已复制到粘贴板!
当将 HTTP/1.1 连接升级到 H2C 时,服务器不会考虑 H2 流控制器中的入站 HTTP 消息。当窗口大小达到零时,这会导致未处理的消息。
计划在以后的版本中对此问题的修复。
临时解决方案:目前还没有可用的临时解决方案。在解决这个问题前,如果消息有效负载大小超过流控制窗口大小,则从将 HTTP/1.1 连接升级到 H2C。
如需更多信息,请参阅以下资源:
1.9.5. 主动 Oracle 数据源因为特定的 Oracle JDBC 驱动程序版本失败 复制链接链接已复制到粘贴板!
被动 Oracle 数据源依赖于 Oracle 的 Java™ 数据库连接(JDBC)驱动程序Reactive 扩展。Oracle JDBC 驱动程序版本 23.2 和 21.11 中存在一个错误,导致应用程序失败在以下条件下接收任何响应:
-
您可以使用 Reactive 扩展来运行
UPDATE或INSERT查询,该查询会生成错误,如约束违反。 - 您可以启用 生成的密钥检索。
Oracle 可能不支持使用带有 Oracle 23 数据库的 Oracle JDBC 驱动程序 v21.10.0.0。
临时解决方案:
-
将
pom.xml文件中的 Oracle JDBC 驱动程序版本或等同的配置更改为com.oracle.database.jdbc:ojdbc11:21.10.0.0。 -
避免运行需要生成的密钥检索的查询。例如,在运行
INSERT查询前加载序列值。
如需更多信息,请参阅在 Oracle DB 中插入 null 或空字符串时 QUARKUS-3339 - Vertx SQL 客户端挂起。
1.9.6. 社区工件用于特定平台上的原生 Vert.x 依赖项 复制链接链接已复制到粘贴板!
在新支持的平台中使用 Vert.x 扩展的应用程序,如 aarch64 和 Windows on x86-64 上的 Linux,意外下载 com.aayushatharva.brotli4j 工件,而不是红帽提供的。此问题没有影响功能。
计划在以后的版本中对此问题的修复。
临时解决方案:目前还没有可用的临时解决方案。
如需更多信息,请参阅 QUARKUS-3314 - com.aayushatharva.brotli4j:native-linux-aarch64 和 native-windows-x86_64 不是 productized。
Kafka Streams 在 Windows 操作系统上加载 RocksDB,因为 librocksdbjni-win64.dll 原生库不在红帽构建的 Quarkus 中。
临时解决方案:在 Windows 上运行 Quarkus Kafka Streams 没有临时解决方案。在修复可用前,使用非 Windows 操作系统,或者确认在 Windows 上不支持此扩展。
Kafka Streams 是一个技术预览功能。
如需更多信息,请参阅 因为缺少 librocksdbjni-win64.dll,在 Windows 上不支持 QUARKUS-3434 - Ghost: Quarkus Kafka Streams
1.9.8. 社区工件用于特定平台上的一些原生依赖项 复制链接链接已复制到粘贴板!
Red Hat build of Quarkus 具有用于以下组件的 x86_64 架构的原生库。
-
io.netty.netty-transport-native-epoll -
io.netty.netty-transport-native-unix-common -
com.aayushatharva.brotli4j
但是,Red Hat build of Quarkus 在 ppc64le 和 s390x 构架中缺少这些组件的原生库。相反,它会下载工件的 Quarkus 社区版本,而不是红帽提供的工件版本。此问题没有影响功能。
临时解决方案:目前还没有可用的临时解决方案。
如需更多信息,请参阅以下资源:
1.9.9. 对 org.apache.maven:maven:pom:3.6.3 的依赖项可能会导致代理问题 复制链接链接已复制到粘贴板!
在使用某些 Quarkus 扩展时,可能会解决对 org.apache.maven:maven:pom:3.6.3 的依赖。这不适用于 Gradle 插件,但会影响到任何具有 io.smallrye:smallrye-parent:pom:37 的项目,在其父项目对象模型(POM)层次结构中。对于代理后面的环境,这个依赖关系可能会导致构建失败,以限制对版本 3.6.x 的 org.apache.maven 工件的访问。Maven 3.6.3 中的二进制软件包都作为 Quarkus 核心框架或支持的 Quarkus 扩展的依赖项下载。
临时解决方案:目前还没有可用的临时解决方案。
1.9.10. 在红帽扩展 registry 的 JBang 生成的初学者应用程序中构建失败 复制链接链接已复制到粘贴板!
构建 JBang 使用红帽扩展 registry 生成的初学程序应用程序可能会导致 postBuild () 运行时未指定的错误:
[jbang] [ERROR] Issue running postBuild() dev.jbang.cli.ExitException: Issue running postBuild()
[jbang] [ERROR] Issue running postBuild()
dev.jbang.cli.ExitException: Issue running postBuild()
红帽构建的 Quarkus 不支持此 JBang 场景或开发工具。
临时解决方案:目前还没有可用的临时解决方案。
如需更多信息,请参阅 QUARKUS-3371 - 使用 jbang 创建的应用程序无法构建