Log any failures updating the change index If the index fails and nobody is waiting on the future the admin doesn't know the index operation failed. Always log the failure. Change-Id: I3dfa859cf383bf0fa628ccc8b67d7a372ff95a1c
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Reindex.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Reindex.java index 7be6444..29d9eb5 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Reindex.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Reindex.java
@@ -56,8 +56,6 @@ import org.eclipse.jgit.storage.file.FileBasedConfig; import org.eclipse.jgit.util.FS; import org.kohsuke.args4j.Option; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; @@ -70,8 +68,6 @@ import java.util.concurrent.atomic.AtomicBoolean; public class Reindex extends SiteProgram { - private static final Logger log = LoggerFactory.getLogger(Reindex.class); - @Option(name = "--threads", usage = "Number of threads to use for indexing") private int threads = Runtime.getRuntime().availableProcessors(); @@ -226,7 +222,6 @@ } private void fail(Change change, Throwable t) { - log.error("Failed to index change " + change.getId(), t); ok.set(false); failed.update(1); }
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeIndexerImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeIndexerImpl.java index b3100bd..9258311 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeIndexerImpl.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/ChangeIndexerImpl.java
@@ -21,6 +21,9 @@ import com.google.gerrit.server.util.RequestScopePropagator; import com.google.inject.Inject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.IOException; import java.util.concurrent.Callable; @@ -31,6 +34,9 @@ * compute some of the fields and/or update the index. */ public class ChangeIndexerImpl implements ChangeIndexer { + private static final Logger log = + LoggerFactory.getLogger(ChangeIndexerImpl.class); + private final ListeningScheduledExecutorService executor; private final ChangeIndex index; @@ -64,9 +70,16 @@ } @Override - public Void call() throws IOException { - index.replace(new ChangeData(change)); - return null; + public Void call() throws Exception { + try { + index.replace(new ChangeData(change)); + return null; + } catch (Exception e) { + log.error(String.format( + "Failed to index change %d in %s", + change.getChangeId(), change.getProject().get()), e); + throw e; + } } @Override