Property [name] is missing for plugin [plugin-descriptor.properties] while starting

Hello.

Installed ES

ii  elasticsearch               8.15.2                         amd64        Distributed RESTful search engine built for the cloud

When configured as a first node for future cluster:

cluster.name: osir-cluster
node.name: node01
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 10.10.7.41

xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12

xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
cluster.initial_master_nodes: ["10.10.7.41"]

http.host: 0.0.0.0
transport.host: 0.0.0.0

During starting ES has got a issue:

[2024-11-14T10:33:47,879][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:302) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:263) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:252) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:81) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.16.0.jar:?]

But not plugins are installed:

ls -la /usr/share/elasticsearch/plugins
total 8
drwxr-xr-x 2 root root 4096 Sep 19 13:13 .
drwxr-xr-x 7 root root 4096 Nov 14 10:22 ..

How to resolve this issue?

Welcome!

I'm surprised to see:

ii  elasticsearch               8.15.2                         amd64        Distributed RESTful search engine built for the cloud

And:

(PluginDescriptor.java:302) ~[elasticsearch-8.16.0.jar:?]

Could you explain? And check what exactly you are doing?
It would help to reproduce the problem.

I was trying to update from 8.15.2 to 8.16.0

ii  elasticsearch                8.16.0                                             amd64        Distributed RESTful search engine built for the cloud

But it hasn't resolved the issue yet.

How to reproduce:

root@node01:~# systemctl start elasticsearch.service 
Job for elasticsearch.service failed because the control process exited with error code.
See "systemctl status elasticsearch.service" and "journalctl -xe" for details.
root@node01:~# systemctl status elasticsearch.service 
● elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Thu 2024-11-14 12:31:20 MSK; 4s ago
       Docs: https://www.elastic.co
    Process: 1158 ExecStart=/usr/share/elasticsearch/bin/systemd-entrypoint -p ${PID_DIR}/elasticsearch.pid --quiet (code=exited, status=1/FAILURE)
   Main PID: 1158 (code=exited, status=1/FAILURE)
        CPU: 7.357s

Nov 14 12:31:17 node01 systemd[1]: Starting Elasticsearch...
Nov 14 12:31:19 node01 systemd-entrypoint[1217]: CompileCommand: dontinline java/lang/invoke/MethodHandle.setAsTypeCache bool dontinline = true
Nov 14 12:31:19 node01 systemd-entrypoint[1217]: CompileCommand: dontinline java/lang/invoke/MethodHandle.asTypeUncached bool dontinline = true
Nov 14 12:31:20 node01 systemd-entrypoint[1158]: ERROR: Elasticsearch did not exit normally - check the logs at /var/log/elasticsearch/osir-cluster.log
Nov 14 12:31:20 node01 systemd-entrypoint[1158]: ERROR: Elasticsearch died while starting up, with exit code 1
Nov 14 12:31:20 node01 systemd[1]: elasticsearch.service: Main process exited, code=exited, status=1/FAILURE
Nov 14 12:31:20 node01 systemd[1]: elasticsearch.service: Failed with result 'exit-code'.
Nov 14 12:31:20 node01 systemd[1]: Failed to start Elasticsearch.
Nov 14 12:31:20 node01 systemd[1]: elasticsearch.service: Consumed 7.357s CPU time.

So I just tried a very basic thing (on MacOS):

mkdir es-distribution
cd es-distribution
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.16.0-darwin-aarch64.tar.gz
tar xzf elasticsearch-8.16.0-darwin-aarch64.tar.gz
cd elasticsearch-8.16.0
bin/elasticsearch

And all worked well OOTB for me.

One of the difference I could see with your installation is that the plugins dir belongs to root whereas mine belongs to my current user.

Could you share the full logs from the start?

You know, all the files inside /usr/share/elasticsearch have been owned by root:root and also tried to change owner like as "chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/" but id didn't resolve the issue.

Logs in /var/log/elasticsearch/osir-cluster.log have the same content:

[2024-11-14T10:08:44,673][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:301) ~[elasticsearch-8.15.2.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:262) ~[elasticsearch-8.15.2.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:251) ~[elasticsearch-8.15.2.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:80) ~[elasticsearch-8.15.2.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:167) ~[elasticsearch-8.15.2.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:75) ~[elasticsearch-8.15.2.jar:?]
[2024-11-14T10:23:49,450][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:302) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:263) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:252) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:81) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.16.0.jar:?]

But that's the very first line of the log file?

There were the head of the log during starting ES first time after installation 8.15.2.
Nothing else.

But when you started the 8.16 version? Is that the start of the log file?

Here is the full log:

root@node01:~# cat /var/log/elasticsearch/osir-cluster.log
[2024-11-14T10:08:44,673][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:301) ~[elasticsearch-8.15.2.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:262) ~[elasticsearch-8.15.2.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:251) ~[elasticsearch-8.15.2.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:80) ~[elasticsearch-8.15.2.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:167) ~[elasticsearch-8.15.2.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:75) ~[elasticsearch-8.15.2.jar:?]
[2024-11-14T10:23:49,450][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:302) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:263) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:252) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:81) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.16.0.jar:?]
[2024-11-14T10:24:04,135][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:302) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:263) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:252) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:81) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.16.0.jar:?]
[2024-11-14T10:30:51,302][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:302) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:263) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:252) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:81) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.16.0.jar:?]
[2024-11-14T10:33:47,879][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:302) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:263) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:252) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:81) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.16.0.jar:?]
[2024-11-14T12:31:20,400][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:302) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:263) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:252) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:81) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.16.0.jar:?]
[2024-11-14T13:32:51,255][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:302) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:263) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:252) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:81) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.16.0.jar:?]
[2024-11-14T13:39:33,556][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:302) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:263) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:252) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:81) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.16.0.jar:?]
[2024-11-14T13:40:18,571][ERROR][o.e.b.Elasticsearch      ] [node01] fatal exception while booting Elasticsearch
java.lang.IllegalArgumentException: property [name] is missing for plugin [plugin-descriptor.properties]
	at org.elasticsearch.plugins.PluginDescriptor.readNonEmptyString(PluginDescriptor.java:302) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readerInternalDescriptor(PluginDescriptor.java:263) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.plugins.PluginDescriptor.readFromProperties(PluginDescriptor.java:252) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Spawner.spawnNativeControllers(Spawner.java:81) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.16.0.jar:?]

Tried update to 8.16.0 and then changing owner for elasticsearch folders - without any success.
Package has been installed from

 "deb [trusted=yes] https://mirror.yandex.ru/mirrors/elastic/8/ stable main"

Just to make sure. Could you start in another directory with the exact commands I shared previously?

Nope.

With root got:

java.lang.RuntimeException: can not run elasticsearch as root
	at org.elasticsearch.bootstrap.Elasticsearch.initializeNatives(Elasticsearch.java:287) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:169) ~[elasticsearch-8.16.0.jar:?]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:74) ~[elasticsearch-8.16.0.jar:?]

With regular user

user@node01:/tmp/elasticsearch-8.16.0$ bin/elasticsearch
bin/elasticsearch-cli: line 14: /tmp/elasticsearch-8.16.0/jdk/bin/java: Permission denied

Notice.
Procedures of installing and configuring ES Cluster have been deployed with root user.

Don't run as root but as a standard user.