Skip to content

Wrong message when bad network.host config #19868

@dadoonet

Description

@dadoonet

Elasticsearch version: 5.0.0-alpha5 (RC4)
Plugins installed: none
JVM version: 1.8.0_60

java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

OS version: OS X El Capitan 10.11.6 (15G31)
Description of the problem including expected versus actual behavior:

Starting with _local_

I'm starting a new blank version of alpha5 with this config:

network.host: _local_

Everything starts correctly:

[2016-08-08 16:40:23,452][INFO ][node                     ] [] initializing ...
[2016-08-08 16:40:23,520][INFO ][env                      ] [7kX1QFh] using [1] data paths, mounts [[/ (/dev/disk1)]], net usable_space [30.1gb], net total_space [464.7gb], spins? [unknown], types [hfs]
[2016-08-08 16:40:23,520][INFO ][env                      ] [7kX1QFh] heap size [1.9gb], compressed ordinary object pointers [true]
[2016-08-08 16:40:23,521][INFO ][node                     ] [7kX1QFh] node name [7kX1QFh] derived from node ID; set [node.name] to override
[2016-08-08 16:40:23,522][INFO ][node                     ] [7kX1QFh] version[5.0.0-alpha5], pid[38688], build[d327dd4/2016-08-04T08:59:39.568Z], OS[Mac OS X/10.11.6/x86_64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_60/25.60-b23]
[2016-08-08 16:40:24,488][INFO ][io.netty.util.internal.PlatformDependent] Your platform does not provide complete low-level API for accessing direct buffers reliably. Unless explicitly requested, heap buffer will always be preferred to avoid potential system unstability.
[2016-08-08 16:40:24,492][INFO ][plugins                  ] [7kX1QFh] loaded module [aggs-matrix-stats]
[2016-08-08 16:40:24,492][INFO ][plugins                  ] [7kX1QFh] loaded module [ingest-common]
[2016-08-08 16:40:24,492][INFO ][plugins                  ] [7kX1QFh] loaded module [lang-expression]
[2016-08-08 16:40:24,493][INFO ][plugins                  ] [7kX1QFh] loaded module [lang-groovy]
[2016-08-08 16:40:24,493][INFO ][plugins                  ] [7kX1QFh] loaded module [lang-mustache]
[2016-08-08 16:40:24,493][INFO ][plugins                  ] [7kX1QFh] loaded module [lang-painless]
[2016-08-08 16:40:24,493][INFO ][plugins                  ] [7kX1QFh] loaded module [percolator]
[2016-08-08 16:40:24,493][INFO ][plugins                  ] [7kX1QFh] loaded module [reindex]
[2016-08-08 16:40:24,493][INFO ][plugins                  ] [7kX1QFh] loaded module [transport-netty3]
[2016-08-08 16:40:24,493][INFO ][plugins                  ] [7kX1QFh] loaded module [transport-netty4]
[2016-08-08 16:40:24,494][INFO ][plugins                  ] [7kX1QFh] no plugins loaded
[2016-08-08 16:40:26,363][INFO ][node                     ] [7kX1QFh] initialized
[2016-08-08 16:40:26,364][INFO ][node                     ] [7kX1QFh] starting ...
[2016-08-08 16:40:26,489][INFO ][transport                ] [7kX1QFh] publish_address {127.0.0.1:9300}, bound_addresses {[fe80::1]:9300}, {[::1]:9300}, {127.0.0.1:9300}
[2016-08-08 16:40:26,494][WARN ][bootstrap                ] [7kX1QFh] initial heap size [268435456] not equal to maximum heap size [2147483648]; this can cause resize pauses and prevents mlockall from locking the entire heap
[2016-08-08 16:40:26,494][WARN ][bootstrap                ] [7kX1QFh] please set [discovery.zen.minimum_master_nodes] to a majority of the number of master eligible nodes in your cluster
[2016-08-08 16:40:29,553][INFO ][cluster.service          ] [7kX1QFh] new_master {7kX1QFh}{7kX1QFhPSxaGAHLjRzxeXQ}{I3OnGNGsRGu92A57qXLIoQ}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-elected-as-master ([0] nodes joined)
[2016-08-08 16:40:29,573][INFO ][http                     ] [7kX1QFh] publish_address {127.0.0.1:9200}, bound_addresses {[fe80::1]:9200}, {[::1]:9200}, {127.0.0.1:9200}
[2016-08-08 16:40:29,573][INFO ][node                     ] [7kX1QFh] started
[2016-08-08 16:40:29,580][INFO ][gateway                  ] [7kX1QFh] recovered [0] indices into cluster_state

Starting with _local_,_eth0:ipv4_

Then I change the network configuration with a bad network card name eth0 (does not exist on my Mac):

network.host: _local_,_eth0:ipv4_

It stops nicely with this expected message:

[2016-08-08 16:41:40,677][INFO ][node                     ] [7kX1QFh] starting ...
[2016-08-08 16:41:40,742][WARN ][bootstrap                ] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupError: java.lang.IllegalArgumentException: No interface named 'eth0' found, got [name:lo0 (lo0), name:en0 (en0), name:awdl0 (awdl0)]
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:105)
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:96)
    at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54)
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:88)
    at org.elasticsearch.cli.Command.main(Command.java:54)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:75)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:68)
Caused by: java.lang.IllegalArgumentException: No interface named 'eth0' found, got [name:lo0 (lo0), name:en0 (en0), name:awdl0 (awdl0)]
    at org.elasticsearch.common.network.NetworkUtils.getAddressesForInterface(NetworkUtils.java:232)
    at org.elasticsearch.common.network.NetworkService.resolveInternal(NetworkService.java:261)
    at org.elasticsearch.common.network.NetworkService.resolveInetAddresses(NetworkService.java:220)
    at org.elasticsearch.common.network.NetworkService.resolveBindHostAddresses(NetworkService.java:130)
    at org.elasticsearch.transport.TcpTransport.bindServer(TcpTransport.java:569)
    at org.elasticsearch.transport.netty4.Netty4Transport.doStart(Netty4Transport.java:181)
    at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:68)
    at org.elasticsearch.transport.TransportService.doStart(TransportService.java:177)
    at org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:68)
    at org.elasticsearch.node.Node.start(Node.java:469)
    at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:193)
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:257)
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:101)
    ... 6 more
[2016-08-08 16:41:41,699][INFO ][node                     ] [7kX1QFh] stopping ...
[2016-08-08 16:41:41,701][INFO ][node                     ] [7kX1QFh] stopped
[2016-08-08 16:41:41,701][INFO ][node                     ] [7kX1QFh] closing ...
[2016-08-08 16:41:41,710][INFO ][node                     ] [7kX1QFh] closed

Starting with _local_,_en0:ipv4_

Now, I change the configuration to:

network.host: _local_,_en0:ipv4_

When I start, I'm getting this error message which is confusing:

[2016-08-08 16:43:37,203][INFO ][node                     ] [7kX1QFh] starting ...
[2016-08-08 16:43:37,336][INFO ][transport                ] [7kX1QFh] publish_address {192.168.0.48:9300}, bound_addresses {[fe80::1]:9300}, {[::1]:9300}, {127.0.0.1:9300}, {192.168.0.48:9300}
[2016-08-08 16:43:37,340][INFO ][bootstrap                ] [7kX1QFh] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
[2016-08-08 16:43:37,343][WARN ][bootstrap                ] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupError: java.lang.RuntimeException: bootstrap checks failed
initial heap size [268435456] not equal to maximum heap size [2147483648]; this can cause resize pauses and prevents mlockall from locking the entire heap
please set [discovery.zen.minimum_master_nodes] to a majority of the number of master eligible nodes in your cluster
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:105)
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:96)
    at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54)
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:88)
    at org.elasticsearch.cli.Command.main(Command.java:54)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:75)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:68)
Caused by: java.lang.RuntimeException: bootstrap checks failed
initial heap size [268435456] not equal to maximum heap size [2147483648]; this can cause resize pauses and prevents mlockall from locking the entire heap
please set [discovery.zen.minimum_master_nodes] to a majority of the number of master eligible nodes in your cluster
    at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:132)
    at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:85)
    at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:65)
    at org.elasticsearch.bootstrap.Bootstrap$5.validateNodeBeforeAcceptingRequests(Bootstrap.java:178)
    at org.elasticsearch.node.Node.start(Node.java:471)
    at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:193)
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:257)
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:101)
    ... 6 more
    Suppressed: java.lang.IllegalStateException: initial heap size [268435456] not equal to maximum heap size [2147483648]; this can cause resize pauses and prevents mlockall from locking the entire heap
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
        at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
        at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:133)
        ... 13 more
    Suppressed: java.lang.IllegalStateException: please set [discovery.zen.minimum_master_nodes] to a majority of the number of master eligible nodes in your cluster
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
        at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
        at org.elasticsearch.bootstrap.BootstrapCheck.check(BootstrapCheck.java:133)
        ... 13 more
[2016-08-08 16:43:37,345][INFO ][node                     ] [7kX1QFh] stopping ...
[2016-08-08 16:43:37,360][INFO ][node                     ] [7kX1QFh] stopped
[2016-08-08 16:43:37,360][INFO ][node                     ] [7kX1QFh] closing ...
[2016-08-08 16:43:37,370][INFO ][node                     ] [7kX1QFh] closed

It looks strange to me that:

  • it does not start because it found my en0 IP V4 address: 192.168.0.48
  • it prints an error message about heap size (but looks like a WARN only though).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions