Failed to start Machine Learning on Elasticsearch 7.0.0

Hello, today I installed the new version 7.0.0 to probe it on a new machine (with Centos 7) and see what is new respect other versions but when i turn on elasticsearch i receive the next error:

[2019-04-24T10:17:33,270][INFO ][o.e.x.s.a.s.FileRolesStore] [elastic] parsed [0] roles from file [/etc/elasticsearch/roles.yml]
[2019-04-24T10:17:46,356][ERROR][o.e.b.Bootstrap          ] [elastic] Exception
org.elasticsearch.ElasticsearchException: Failed to create native process factories for Machine Learning
    at org.elasticsearch.xpack.ml.MachineLearning.createComponents(MachineLearning.java:427) ~[?:?]
    at org.elasticsearch.node.Node.lambda$new$9(Node.java:438) ~[elasticsearch-7.0.0.jar:7.0.0]
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:271) ~[?:?]
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654) ~[?:?]
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[?:?]
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[?:?]
    at org.elasticsearch.node.Node.<init>(Node.java:441) ~[elasticsearch-7.0.0.jar:7.0.0]
    at org.elasticsearch.node.Node.<init>(Node.java:251) ~[elasticsearch-7.0.0.jar:7.0.0]
    at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:211) ~[elasticsearch-7.0.0.jar:7.0.0]
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:211) ~[elasticsearch-7.0.0.jar:7.0.0]
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:325) [elasticsearch-7.0.0.jar:7.0.0]
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) [elasticsearch-7.0.0.jar:7.0.0]
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) [elasticsearch-7.0.0.jar:7.0.0]
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) [elasticsearch-7.0.0.jar:7.0.0]
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) [elasticsearch-cli-7.0.0.jar:7.0.0]
    at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-cli-7.0.0.jar:7.0.0]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) [elasticsearch-7.0.0.jar:7.0.0]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) [elasticsearch-7.0.0.jar:7.0.0]
Caused by: java.io.FileNotFoundException: /tmp/elasticsearch-823224049424515570/controller_log_14145 (No such file or directory)
    ... and more

My version of java is:

openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

What should I do? I didn't found nothing that can be usseful to me. Thanks to all.

Perhaps this is relevant: Unable to create ML job

Didn't work for me. I tried to reinstall elasticsearch on a new machine but it still failing

Did you attempt to create a writable directory and set $ES_TMPDIR like the post notes?

Try running the controller process separately to Elasticsearch:

/usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller --version

Does that print out the version? If not what is the error? It could be something related to missing OS libraries or old hardware. We build on the assumption that SSE4.2 instructions will be available for example.

If that works, try without the --version, so:

/usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

Does that fail within a few seconds? If it does, what is the error? If not CTRL-C it because we don't want to cause confusion by leaving a stray controller running.

Finally, with Elasticsearch stopped, open two terminal windows. Start Elasticsearch in one using:

sudo systemctl start elasticsearch.service

Between 1 and 9 seconds later in the other terminal run:

ps -e | grep controller

Does controller appear in the process list?

1 Like

Yes, but the error keeps

The first command shows the following error:

si_signo 4, si_code: 2, si_errno: 0, address: 0x7fa2ccd25fe2, library: /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/../lib/libMlCore.so, base: 0x7fa2ccc96000, normalized address: 0x8ffe2
Illegal instruction

The next one also dosn't give a correct output, it shows the same error as the previous one.

When start elasticsearch the controller dosn't appear.

[root@elastic ~]# ps -e | grep controller
[root@elastic ~]#

Thanks for all, based on what you have said I'll keep investigating in how to fix it.

Sorry for to take so long in my answers, it's the time when I can touch the computer equipment in the company.


We're using a Intel Xeon E5310 that only supports up to SSE3 instructions, so I couldn't install it on this machine, right? if so, thank you very much for the help to both

We're using a Intel Xeon E5310 that only supports up to SSE3 instructions, so I couldn't install it on this machine, right?

Yes, that's correct. Since version 6.1 we having been compiling the ML programs on the assumption that SSE4.2 instructions are available.

These instructions were introduced into the "Nehalem" generation of processors, introduced in Q1 2009. You are using a "Clovertown" generation processor, introduced in Q4 2006. If you could move the install to a slightly newer machine then it should start to work.

2 Likes

Yes, I have never had failures to try elastic battery versions, I will install it in a new machine.

Thank you so much for everything. :heart:

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.