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?
issue