From 47c645deefd668e17bcf36550068b83f4c563c7b Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sat, 9 Aug 2025 14:37:10 -0500 Subject: [PATCH 1/5] Remove log spam from periodic network and IP address queries Fixes #2050 --- .../photonvision/common/hardware/metrics/MetricsManager.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsManager.java b/photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsManager.java index 8d7c597c68..930a12b3be 100644 --- a/photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsManager.java +++ b/photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsManager.java @@ -224,9 +224,7 @@ public double[] getNpuUsage() { */ public String getIpAddress() { String dev = ConfigManager.getInstance().getConfig().getNetworkConfig().networkManagerIface; - logger.debug("Requesting IP addresses for \"" + dev + "\""); String addr = NetworkUtils.getIPAddresses(dev); - logger.debug("Got value \"" + addr + "\""); return addr; } From 3abf171b9eb2c93f0604b0f2b914cb1b3f804a3c Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sat, 9 Aug 2025 15:04:16 -0500 Subject: [PATCH 2/5] remove "publishing metrics ..." spam too --- .../photonvision/common/hardware/metrics/MetricsManager.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsManager.java b/photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsManager.java index 930a12b3be..717c844146 100644 --- a/photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsManager.java +++ b/photon-core/src/main/java/org/photonvision/common/hardware/metrics/MetricsManager.java @@ -242,8 +242,6 @@ public double getUptime() { } public void publishMetrics() { - logger.debug("Publishing Metrics..."); - // Check that the hostname hasn't changed if (!CameraServerJNI.getHostname() .equals(NetworkTable.basenameKey(metricPublisher.getTopic().getName()))) { From 49e47d0ed37425d7cf8fb877c537a65b1c826147 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sat, 9 Aug 2025 21:33:28 -0500 Subject: [PATCH 3/5] getAllInterfaces is much quieter and only logs when changes occur --- .../common/networking/NetworkUtils.java | 53 ++++++++++--------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/photon-core/src/main/java/org/photonvision/common/networking/NetworkUtils.java b/photon-core/src/main/java/org/photonvision/common/networking/NetworkUtils.java index a26195eaf4..3b5b084941 100644 --- a/photon-core/src/main/java/org/photonvision/common/networking/NetworkUtils.java +++ b/photon-core/src/main/java/org/photonvision/common/networking/NetworkUtils.java @@ -66,7 +66,7 @@ public NMDeviceInfo(String c, String d, String type) { } } - private static List allInterfaces = new ArrayList<>(); + private static List allInterfaces = null; private static long lastReadTimestamp = 0; public static List getAllInterfaces() { @@ -76,35 +76,36 @@ public static List getAllInterfaces() { var ret = new ArrayList(); - if (!Platform.isLinux()) { - // Can only determine interface name on Linux, give up - return ret; - } - - try { - var shell = new ShellExec(true, false); - shell.executeBashCommand( - "nmcli -t -f GENERAL.CONNECTION,GENERAL.DEVICE,GENERAL.TYPE device show"); - String out = shell.getOutput(); - if (out == null) { - return new ArrayList<>(); + if (Platform.isLinux()) { + String out = null; + try { + var shell = new ShellExec(true, false); + shell.executeBashCommand( + "nmcli -t -f GENERAL.CONNECTION,GENERAL.DEVICE,GENERAL.TYPE device show", true, false); + out = shell.getOutput(); + } catch (IOException e) { + logger.error("IO Exception occured when calling nmcli to get network interfaces!", e); } - Pattern pattern = - Pattern.compile("GENERAL.CONNECTION:(.*)\nGENERAL.DEVICE:(.*)\nGENERAL.TYPE:(.*)"); - Matcher matcher = pattern.matcher(out); - while (matcher.find()) { - if (!matcher.group(2).equals("lo")) { - // only include non-loopback devices - ret.add(new NMDeviceInfo(matcher.group(1), matcher.group(2), matcher.group(3))); + if (out != null) { + Pattern pattern = + Pattern.compile("GENERAL.CONNECTION:(.*)\nGENERAL.DEVICE:(.*)\nGENERAL.TYPE:(.*)"); + Matcher matcher = pattern.matcher(out); + while (matcher.find()) { + if (!matcher.group(2).equals("lo")) { + // only include non-loopback devices + ret.add(new NMDeviceInfo(matcher.group(1), matcher.group(2), matcher.group(3))); + } } } - } catch (IOException e) { - logger.error("Could not get active network interfaces!", e); } - - logger.debug("Found network interfaces: " + ret); - - allInterfaces = ret; + if (!ret.equals(allInterfaces)) { + if (ret.isEmpty()){ + logger.error("Unable to identify network interfaces!"); + } else { + logger.debug("Found network interfaces: " + ret); + } + allInterfaces = ret; + } return ret; } From 44b860e7aef050f75ea1f506e89c3e97d97944ff Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sat, 9 Aug 2025 21:36:57 -0500 Subject: [PATCH 4/5] spotless --- .../java/org/photonvision/common/networking/NetworkUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/photon-core/src/main/java/org/photonvision/common/networking/NetworkUtils.java b/photon-core/src/main/java/org/photonvision/common/networking/NetworkUtils.java index 3b5b084941..78eb01afbd 100644 --- a/photon-core/src/main/java/org/photonvision/common/networking/NetworkUtils.java +++ b/photon-core/src/main/java/org/photonvision/common/networking/NetworkUtils.java @@ -99,7 +99,7 @@ public static List getAllInterfaces() { } } if (!ret.equals(allInterfaces)) { - if (ret.isEmpty()){ + if (ret.isEmpty()) { logger.error("Unable to identify network interfaces!"); } else { logger.debug("Found network interfaces: " + ret); From 71796d852f4798c3aaa5a3fc665f398945cd77a4 Mon Sep 17 00:00:00 2001 From: Craig Schardt Date: Sat, 9 Aug 2025 22:00:38 -0500 Subject: [PATCH 5/5] in overload, wait is now handled correctly --- .../src/main/java/org/photonvision/common/util/ShellExec.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/photon-core/src/main/java/org/photonvision/common/util/ShellExec.java b/photon-core/src/main/java/org/photonvision/common/util/ShellExec.java index 59c3329cc1..958b6767f2 100644 --- a/photon-core/src/main/java/org/photonvision/common/util/ShellExec.java +++ b/photon-core/src/main/java/org/photonvision/common/util/ShellExec.java @@ -60,7 +60,7 @@ public int executeBashCommand(String command) throws IOException { * @return process exit code */ public int executeBashCommand(String command, boolean wait) throws IOException { - return executeBashCommand(command, true, true); + return executeBashCommand(command, wait, true); } /**