You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by GitBox <gi...@apache.org> on 2021/04/15 14:49:05 UTC

[GitHub] [solr] janhoy commented on a change in pull request #78: SOLR-15252 Solr should log WARN log when a query requests huge rows number

janhoy commented on a change in pull request #78:
URL: https://github.com/apache/solr/pull/78#discussion_r614138208



##########
File path: solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java
##########
@@ -236,6 +240,21 @@ public void prepare(ResponseBuilder rb) throws IOException
     if (rb.getSortSpec().getOffset() < 0) {
       throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "'start' parameter cannot be negative");
     }
+    if(rb.getSortSpec().getCount() > ROWS_WARN_THRESHOLD && shouldLogPeriodically("rowsWarn", 60)) {
+      log.warn("Very high 'rows' parameter detected. This may lead to performance- and memory problems. " +
+          "Consider pagination, see https://solr.apache.org/guide/pagination-of-results.html. " +
+          "This warning will mute for 60s.");
+    }
+  }
+
+  // Decides whether to log again based on key and interval
+  private static boolean shouldLogPeriodically(String key, int intervalSeconds) {

Review comment:
       I know this is a bit of an overkill for just one use. Are you aware of similar logic elsewhere that we could use instead? Or some Util class where this static method could live?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org