Cannot bring up ROR with ES 8.8.0 (using docker)

Hi,

was using ROR without problems with LES 7.9.1. Since my migration to 8.8.0, I can no longer initialize a cluster with ROR.

Here is the message with the reboot following the installation of ROR:

[2023-08-11T10:37:48,809][INFO ][o.e.p.PluginsService ] [master-ES8-es8-dev001] loaded module [wildcard]
[2023-08-11T10:37:48,810][INFO ][o.e.p.PluginsService ] [master-ES8-es8-dev001] loaded module [x-pack-sql]
[2023-08-11T10:37:48,810][INFO ][o.e.p.PluginsService ] [master-ES8-es8-dev001] loaded module [unsigned-long]
[2023-08-11T10:37:48,810][INFO ][o.e.p.PluginsService ] [master-ES8-es8-dev001] loaded module [runtime-fields-common]
[2023-08-11T10:37:48,810][INFO ][o.e.p.PluginsService ] [master-ES8-es8-dev001] loaded module [x-pack-async]
[2023-08-11T10:37:48,810][INFO ][o.e.p.PluginsService ] [master-ES8-es8-dev001] loaded module [vector-tile]
[2023-08-11T10:37:48,810][INFO ][o.e.p.PluginsService ] [master-ES8-es8-dev001] loaded module [lang-expression]
[2023-08-11T10:37:48,811][INFO ][o.e.p.PluginsService ] [master-ES8-es8-dev001] loaded module [x-pack-eql]
[2023-08-11T10:37:48,811][INFO ][o.e.p.PluginsService ] [master-ES8-es8-dev001] loaded plugin [readonlyrest]
[2023-08-11T10:37:52,996][WARN ][stderr ] [master-ES8-es8-dev001] Aug 11, 2023 10:37:52 AM org.apache.lucene.store.MemorySegmentIndexInputProvider
[2023-08-11T10:37:53,008][INFO ][o.e.e.NodeEnvironment ] [master-ES8-es8-dev001] using [1] data paths, mounts [[/usr/share/elasticsearch/data (/dev/vda1)]], net usable_space [57.6gb], net total_space [96.7gb], types [ext4]
[2023-08-11T10:37:53,009][INFO ][o.e.e.NodeEnvironment ] [master-ES8-es8-dev001] heap size [1gb], compressed ordinary object pointers [true]
[2023-08-11T10:37:53,087][INFO ][o.e.n.Node ] [master-ES8-es8-dev001] node name [master-ES8-es8-dev001], node ID [IZwWPtzOS3m0vB3jMDHn7w], cluster name [cluster-es-dev-08], roles [master]
[2023-08-11T10:37:56,745][INFO ][o.e.x.m.p.l.CppLogMessageHandler] [master-ES8-es8-dev001] [controller/83] [Main.cc@123] controller (64 bit): Version 8.8.0 (Build e011a2f1bf1ba7) Copyright (c) 2023 Elasticsearch BV
[2023-08-11T10:37:57,066][INFO ][o.e.x.s.Security ] [master-ES8-es8-dev001] Security is disabled
[2023-08-11T10:37:57,594][INFO ][o.e.x.p.ProfilingPlugin ] [master-ES8-es8-dev001] Profiling is enabled
[2023-08-11T10:37:59,211][DEBUG][o.e.a.ActionModule ] [master-ES8-es8-dev001] Using REST interceptor from plugin org.elasticsearch.xpack.security.Security
[2023-08-11T10:37:59,302][INFO ][o.e.t.n.NettyAllocator ] [master-ES8-es8-dev001] creating NettyAllocator with the following configs: [name=unpooled, suggested_max_allocation_size=1mb, factors={es.unsafe.use_unpooled_allocator=null, g1gc_enabled=true, g1gc_region_size=4mb, heap_size=1gb}]
[2023-08-11T10:37:59,352][INFO ][o.e.i.r.RecoverySettings ] [master-ES8-es8-dev001] using rate limit [40mb] with [default=40mb, read=0b, write=0b, max=0b]
[2023-08-11T10:37:59,426][INFO ][o.e.d.DiscoveryModule ] [master-ES8-es8-dev001] using discovery type [single-node] and seed hosts providers [settings]
[2023-08-11T10:38:00,275][WARN ][o.e.t.TransportService ] [master-ES8-es8-dev001] invalid action name [upgrade_action] must start with one of: [indices:internal, internal:, cluster:internal, cluster:admin, cluster:monitor, indices:data/write, indices:admin, indices:monitor, indices:data/read]
[2023-08-11T10:38:00,516][WARN ][o.e.t.TransportService ] [master-ES8-es8-dev001] invalid action name [cat_action] must start with one of: [indices:internal, internal:, cluster:internal, cluster:admin, cluster:monitor, indices:data/write, indices:admin, indices:monitor, indices:data/read]
[2023-08-11T10:38:01,045][ERROR][o.e.b.Elasticsearch ] [master-ES8-es8-dev001] fatal exception while booting Elasticsearch
org.joor.ReflectException: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.function.UnaryOperator org.elasticsearch.rest.RestController.handlerWrapper accessible: module org.elasticsearch.server does not “opens org.elasticsearch.rest” to unnamed module @b324f4f
at org.joor.Reflect.field(Reflect.java:450) ~[?:?]
at org.joor.Reflect.get(Reflect.java:429) ~[?:?]
at tech.beshu.ror.es.utils.RestControllerOps.$anonfun$decorateRestHandlersWith$1(RestControllerOps.scala:34) ~[?:?]
at tech.beshu.ror.utils.AccessControllerHelper$$anon$1.run(AccessControllerHelper.scala:27) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:319) ~[?:?]
at tech.beshu.ror.utils.AccessControllerHelper$.doPrivileged(AccessControllerHelper.scala:26) ~[?:?]
at tech.beshu.ror.es.utils.RestControllerOps.decorateRestHandlersWith(RestControllerOps.scala:33) ~[?:?]
at tech.beshu.ror.es.ReadonlyRestPlugin.getRestHandlers(ReadonlyRestPlugin.scala:249) ~[?:?]
at org.elasticsearch.action.ActionModule.initRestHandlers(ActionModule.java:965) ~[elasticsearch-8.8.0.jar:?]
at org.elasticsearch.node.Node.(Node.java:1159) ~[elasticsearch-8.8.0.jar:?]
at org.elasticsearch.node.Node.(Node.java:327) ~[elasticsearch-8.8.0.jar:?]
at org.elasticsearch.bootstrap.Elasticsearch$2.(Elasticsearch.java:216) ~[elasticsearch-8.8.0.jar:?]
at org.elasticsearch.bootstrap.Elasticsearch.initPhase3(Elasticsearch.java:216) ~[elasticsearch-8.8.0.jar:?]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:67) ~[elasticsearch-8.8.0.jar:?]
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.function.UnaryOperator org.elasticsearch.rest.RestController.handlerWrapper accessible: module org.elasticsearch.server does not “opens org.elasticsearch.rest” to unnamed module @b324f4f
at java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:387) ~[?:?]
at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:363) ~[?:?]
at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:311) ~[?:?]
at java.lang.reflect.Field.checkCanSetAccessible(Field.java:181) ~[?:?]
at java.lang.reflect.Field.setAccessible(Field.java:175) ~[?:?]
at org.joor.Reflect.accessible(Reflect.java:279) ~[?:?]
at org.joor.Reflect.field0(Reflect.java:466) ~[?:?]
at org.joor.Reflect.field(Reflect.java:446) ~[?:?]
… 13 more
I used a light config file:
readonlyrest:
access_control_rules:

- name: "Require HTTP Basic Auth"
  type: allow
  auth_key: user:password

my version of ROR: 1.50.0 for ES 8.8.0 (readonlyrest-1.50.0_es8.8.0.zip)
my version of ES : 8.8.0

an idea ?

Best Regards

Hi,
I found my problem, as my instance is under docker , ROR can’t update jars (:- The official ES image can’t run as root for obvious security reason. So I realized the installation in service mode to recover the 3 jars and mount them under my container and it works perfectly :slight_smile:

Best regards

1 Like

yes, correct. You can patch ROR and then switch the user. See the similar question.