Disable gerrit.enableReverseDnsLookup by default
Using reverse DNS lookup by default can cause unexpected performance
issues when writing the ref log, because the hostname of the user's
client is looked up on every ref log creation. For example this can
add a noticable delay (around 5 seconds) when adding a code review label,
due to the ref update of the notedb metadata refs in git.
Change the default of gerrit.enableReverseDnsLookup to false so that
DNS lookup is by default disabled.
Reported-by: Roman Karlstetter <Roman.Karlstetter@ifta.com>
Change-Id: I68af8e545fc54ea0c3819454d81bb4c598f65e93
diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index f9f6414..95baed6 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -2000,9 +2000,14 @@
[[gerrit.enableReverseDnsLookup]]gerrit.enableReverseDnsLookup::
+
-Enable reverse DNS lookup during computing ref log entry for identified user.
+Enable reverse DNS lookup during computing ref log entry for identified user,
+to record the actual hostname of the user's host in the ref log.
+
-Defaults to true.
+Enabling reverse DNS lookup can cause performance issues on git push when
+the reverse DNS lookup is slow.
++
+Defaults to false, reverse DNS lookup is disabled. The user's IP address
+will be recorded in the ref log rather than their hostname.
[[gerrit.secureStoreClass]]gerrit.secureStoreClass::
+
diff --git a/java/com/google/gerrit/server/config/EnableReverseDnsLookupProvider.java b/java/com/google/gerrit/server/config/EnableReverseDnsLookupProvider.java
index d8863ce..71086a9 100644
--- a/java/com/google/gerrit/server/config/EnableReverseDnsLookupProvider.java
+++ b/java/com/google/gerrit/server/config/EnableReverseDnsLookupProvider.java
@@ -23,7 +23,7 @@
@Inject
EnableReverseDnsLookupProvider(@GerritServerConfig Config config) {
- enableReverseDnsLookup = config.getBoolean("gerrit", null, "enableReverseDnsLookup", true);
+ enableReverseDnsLookup = config.getBoolean("gerrit", null, "enableReverseDnsLookup", false);
}
@Override