DescriptorIndexCollector does not delete extraneous local files if remote paths with leading /
Today I realized that metrics-web does not delete any extraneous local files since we made DescriptorIndexCollector the default in metrics-lib version 1.6.0.
Turns out that the following metrics-web patch works around the issue:
diff --git a/modules/collectdescs/src/main/java/org/torproject/metrics/collectdescs/Main.java b/modules/collectdescs/src/main/java/org/torproject/metrics/collectdescs/Main.java
index 499dff9..39b3b69 100644
--- a/modules/collectdescs/src/main/java/org/torproject/metrics/collectdescs/Main.java
+++ b/modules/collectdescs/src/main/java/org/torproject/metrics/collectdescs/Main.java
@@ -17,14 +17,14 @@ public class Main {
DescriptorSourceFactory.createDescriptorCollector();
collector.collectDescriptors(
"https://collector.torproject.org", new String[] {
- "/recent/bridge-descriptors/extra-infos/",
- "/recent/bridge-descriptors/server-descriptors/",
- "/recent/bridge-descriptors/statuses/",
- "/recent/exit-lists/",
- "/recent/relay-descriptors/consensuses/",
- "/recent/relay-descriptors/extra-infos/",
- "/recent/relay-descriptors/server-descriptors/",
- "/recent/torperf/"
+ "recent/bridge-descriptors/extra-infos/",
+ "recent/bridge-descriptors/server-descriptors/",
+ "recent/bridge-descriptors/statuses/",
+ "recent/exit-lists/",
+ "recent/relay-descriptors/consensuses/",
+ "recent/relay-descriptors/extra-infos/",
+ "recent/relay-descriptors/server-descriptors/",
+ "recent/torperf/"
}, 0L, new File("../../shared/in"), true);
}
}
However, I think we need to fix this in metrics-lib by accepting remote paths with leading / for fetching remote files and deleting extraneous local files.
iwakeh, want to look into this?
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information