为什么 cassandra cqlsh 响应:无法加载触发器类 'mypackage.myclass'



我创建了一个触发器类"mypackage.myclass",它在标准cassandra容器上运行良好。我已经将所有内容打包到/etc/cassandra/triggers/my-fat-jar.jar中的一个jar文件中(权限为root 644(

但是,当我在Red Hat OpenShift CP下部署相同的容器时,无法加载该触发器。它只是简单地说:

‘<stdin>:1:InvalidRequest: Error from server: code=2200 [Invalid query] message="Trigger class 'mypackage.myclass' couldn't be loaded"’

我不知道那个错误是从哪里来的。。你知道在哪里看吗?

谢谢。

使用的版本:[cklsh 6.0.0 | Cassandra 4.0.1 | CQL规范3.4.5 |本机协议v5]

如果不详细了解您是如何构建映像和文件权限的,很难确定,但由于这可能是文件权限问题,您可能会遇到有关任意用户ID的Openshift安全策略问题。理论上,644权限应该意味着这不是问题,但也许任意用户在访问目录本身时遇到了问题。

(此外,根据Dockerfile中的内容,您可以尝试添加anyuidSCC,以验证这是否是问题的原因。(

一般来说,我会浏览OpenShift平台特定的指导方针,因为这将为您提供确保文件权限有效的具体说明。

我也只需要使用oc debug在有问题的容器中获取一个shell,并验证对相关目录/文件的访问权限。

最新更新