sentrysoftware / metricshub

Universal Metrics Collection for OpenTelemetry
https://metricshub.com
GNU Affero General Public License v3.0
11 stars 4 forks source link

`NullPointerException` thrown when calling SNMP Get Next #267

Open CherfaElyes opened 3 weeks ago

CherfaElyes commented 3 weeks ago

Problem

[2024-06-19T18:16:56,103][DEBUG][o.s.m.e.s.d.SnmpGetNextCriterionProcessor] Hostname [HOSTNAME] - SNMP test failed - SNMP GetNext of [SNMPID] was unsuccessful due to an exception. Message: Cannot invoke "java.lang.CharSequence.length()" because "this.text" is null. Connector ID: [CONNECTORID].
java.lang.NullPointerException: Cannot invoke "java.lang.CharSequence.length()" because "this.text" is null
    at java.base/java.util.regex.Matcher.getTextLength(Unknown Source) ~[?:?]
    at java.base/java.util.regex.Matcher.reset(Unknown Source) ~[?:?]
    at java.base/java.util.regex.Matcher.<init>(Unknown Source) ~[?:?]
    at java.base/java.util.regex.Pattern.matcher(Unknown Source) ~[?:?]
    at org.sentrysoftware.metricshub.extension.snmp.detection.SnmpGetNextCriterionProcessor.checkSNMPGetNextExpectedValue(SnmpGetNextCriterionProcessor.java:195) ~[metricshub-snmp-extension-0.9.05-SNAPSHOT.jar:?]
    at org.sentrysoftware.metricshub.extension.snmp.detection.SnmpGetNextCriterionProcessor.checkSNMPGetNextResult(SnmpGetNextCriterionProcessor.java:253) ~[metricshub-snmp-extension-0.9.05-SNAPSHOT.jar:?]
    at org.sentrysoftware.metricshub.extension.snmp.detection.SnmpGetNextCriterionProcessor.process(SnmpGetNextCriterionProcessor.java:105) ~[metricshub-snmp-extension-0.9.05-SNAPSHOT.jar:?]
    at org.sentrysoftware.metricshub.extension.snmpv3.SnmpV3Extension.processCriterion(SnmpV3Extension.java:167) ~[metricshub-snmpv3-extension-0.9.05-SNAPSHOT.jar:?]
    at org.sentrysoftware.metricshub.engine.strategy.detection.CriterionProcessor.lambda$processCriterionThroughExtension$0(CriterionProcessor.java:355) ~[metricshub-agent-0.9.05-SNAPSHOT.jar:?]
    at java.base/java.util.Optional.map(Unknown Source) ~[?:?]
    at org.sentrysoftware.metricshub.engine.strategy.detection.CriterionProcessor.processCriterionThroughExtension(CriterionProcessor.java:355) ~[metricshub-agent-0.9.05-SNAPSHOT.jar:?]
    at org.sentrysoftware.metricshub.engine.strategy.detection.CriterionProcessor.process(CriterionProcessor.java:367) ~[metricshub-agent-0.9.05-SNAPSHOT.jar:?]
    at org.sentrysoftware.metricshub.engine.connector.model.identity.criterion.SnmpGetNextCriterion.accept(SnmpGetNextCriterion.java:67) ~[metricshub-agent-0.9.05-SNAPSHOT.jar:?]
    at org.sentrysoftware.metricshub.engine.strategy.detection.AbstractConnectorProcessor.lambda$processCriterion$8(AbstractConnectorProcessor.java:331) ~[metricshub-agent-0.9.05-SNAPSHOT.jar:?]
    at org.sentrysoftware.metricshub.engine.strategy.detection.AbstractConnectorProcessor.processCriterion(AbstractConnectorProcessor.java:344) ~[metricshub-agent-0.9.05-SNAPSHOT.jar:?]
    at org.sentrysoftware.metricshub.engine.strategy.detection.AbstractConnectorProcessor.runConnectorDetectionCriteria(AbstractConnectorProcessor.java:401) ~[metricshub-agent-0.9.05-SNAPSHOT.jar:?]
    at org.sentrysoftware.metricshub.engine.strategy.detection.AbstractConnectorProcessor.lambda$runConnectorsSimultaneously$1(AbstractConnectorProcessor.java:145) ~[metricshub-agent-0.9.05-SNAPSHOT.jar:?]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
    at java.base/java.lang.Thread.run(Unknown Source) [?:?]
NassimBtk commented 3 weeks ago

In any case the criterion is going to be failed, since the NPE is not blocker, this is just an enhancement request to avoid the NPE in the logs.