Performance analyzer fails if ipv6 is disabled

#1

I’m having problems getting elastic to start, apparently related to ipv6 not being enabled:

java.io.FileNotFoundException: /proc/net/tcp6 (No such file or directory)
at java.io.FileInputStream.open0(Native Method) ~[?:?]
at java.io.FileInputStream.open(FileInputStream.java:219) ~[?:?]
at java.io.FileInputStream.(FileInputStream.java:157) ~[?:?]
at java.io.FileReader.(FileReader.java:75) ~[?:?]
at com.amazon.opendistro.elasticsearch.performanceanalyzer.hwnet.NetworkE2E.mapTCPMetrics(NetworkE2E.java:128) [opendistro_performance_analyzer-0.7.0.0.jar:0.7.0.0]
at com.amazon.opendistro.elasticsearch.performanceanalyzer.hwnet.NetworkE2E.mapTCPMetrics(NetworkE2E.java:144) [opendistro_performance_analyzer-0.7.0.0.jar:0.7.0.0]
at com.amazon.opendistro.elasticsearch.performanceanalyzer.hwnet.NetworkE2E.addSample(NetworkE2E.java:201) [opendistro_performance_analyzer-0.7.0.0.jar:0.7.0.0]
at com.amazon.opendistro.elasticsearch.performanceanalyzer.metrics_generator.linux.LinuxTCPMetricsGenerator.addSample(LinuxTCPMetricsGenerator.java:65) [opendistro_performance_analyzer-0.7.0.0.jar:0.7.0.0]
at com.amazon.opendistro.elasticsearch.performanceanalyzer.collectors.NetworkE2ECollector.collectMetrics(NetworkE2ECollector.java:38) [opendistro_performance_analyzer-0.7.0.0.jar:0.7.0.0]
at com.amazon.opendistro.elasticsearch.performanceanalyzer.collectors.PerformanceAnalyzerMetricsCollector.lambda$run$0(PerformanceAnalyzerMetricsCollector.java:57) [opendistro_performance_analyzer-0.7.0.0.jar:0.7.0.0]
at com.amazon.opendistro.elasticsearch.performanceanalyzer.PerformanceAnalyzerPlugin.lambda$invokePrivileged$1(PerformanceAnalyzerPlugin.java:104) [opendistro_performance_analyzer-0.7.0.0.jar:0.7.0.0]
at java.security.AccessController.doPrivileged(Native Method) [?:?]
at com.amazon.opendistro.elasticsearch.performanceanalyzer.PerformanceAnalyzerPlugin.invokePrivileged(PerformanceAnalyzerPlugin.java:102) [opendistro_performance_analyzer-0.7.0.0.jar:0.7.0.0]
at com.amazon.opendistro.elasticsearch.performanceanalyzer.collectors.PerformanceAnalyzerMetricsCollector.run(PerformanceAnalyzerMetricsCollector.java:57) [opendistro_performance_analyzer-0.7.0.0.jar:0.7.0.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]

is there any configuration option I can pass to avoid performance analyzer trying to use/read ipv6 metrics?

#2

Thanks for reporting the issue. Exception logging is misleading, but looking at the code, logging this exception as error is not correct if ipv6 is not enabled https://github.com/opendistro-for-elasticsearch/performance-analyzer/blob/opendistro-0.7/src/main/java/com/amazon/opendistro/elasticsearch/performanceanalyzer/hwnet/NetworkE2E.java#L138

But it shouldn’t fail elastic to start because of this (because of the code I pasted, where we are absorbing this, logging the error). Are you sure this is the only exception or any other exceptions you see because of which the start has failed

#3

thanks.

You’re right, the exception was not causing Elasticsearch to not start; in my case I had a combination of this misleading exception and some corrupted/large indexes which prevented elasticsearch from starting in a timely manner.
Sorry for the confusion.

1 Like