From patchwork Fri Sep 4 07:27:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Morten Linderud X-Patchwork-Id: 1772 Return-Path: Delivered-To: patchwork@archlinux.org Received: from apollo.archlinux.org (localhost [127.0.0.1]) by apollo.archlinux.org (Postfix) with ESMTP id 715F21AEC1AC3 for ; Fri, 4 Sep 2020 07:28:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on apollo.archlinux.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1, MAILING_LIST_MULTI=-1,RCVD_IN_DNSWL_MED=-2.3,RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,SPF_HELO_NONE=0.001,T_DMARC_POLICY_NONE=0.01 autolearn=ham autolearn_force=no version=3.4.4 X-Spam-BL-Results: [127.0.9.2] [127.0.0.19] Received: from orion.archlinux.org (orion.archlinux.org [88.198.91.70]) by apollo.archlinux.org (Postfix) with ESMTPS for ; Fri, 4 Sep 2020 07:28:23 +0000 (UTC) Received: from orion.archlinux.org (localhost [127.0.0.1]) by orion.archlinux.org (Postfix) with ESMTP id CC2EF1D389B3AE; Fri, 4 Sep 2020 07:28:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=luna2; t=1599204500; bh=amT+YX5fA9G6wHymXyvTgRmx0a7VnDrSv9JaXNYv88w=; h=From:To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe; b=h+ortAtEApVr6Tyu+BiiBDJZ09lN/loJSjLlVdJSnNInKGmQd3bmW4DGPrsM9U7vD TZ22sLFdB5xx+BfLUVuXJt1UZvg+wW23BH4ySpTjNUYic+Jckg4O9c5p8AMMqNew8C c3/yamJPnWhaHlge4z4wM02Cnb/fcG+F1e23AlFB7bZHMgwVabo28AmYRrgzLu64br y5YUAWZQg7Oy7b9bNJFL96+bZfEaS0FvQ5UEoawzrK63AUr7t+lP9+ZdKCzEixw+uO /BF3gkOb2JrwrBqxWOnkGOgO+5uO4WVTs8rLIGfKvmAUbgfvH4Y2Q2PM/amJ4r16/j W3Su7vUssS6TBLWodfLHRMbSOuFXwA4SKm6bhRSggPu1SJjD7UXKui2txFbAQ1R6sb QxGtX4UyJBB4Ayf5eOjp61Sy1ewlINjCizeGrmIdyLqhceax/QUVeX29jUZZcFKDcc wrdcHx9f9N6Yhj+thXeI93xHnMxmFHB4j0XcV73EYdCRIaWMjnyeqktAcKVcHNruIf 3zGj8YPvMbXEKEFm5YhyAi/zGYNt8ZrHKICS4adIseR2ersLw2dpBWcEra+dBxalmO 9MAfCEohwiz2zg6XX2B1T7Dj0HQbT6TsBqVG6pVz3XtcsoSblzRjtoS+Zw/Q9zSHFi CKGzATzRIp/0u/hJHNefdYcs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=orion; t=1599204500; bh=amT+YX5fA9G6wHymXyvTgRmx0a7VnDrSv9JaXNYv88w=; h=From:To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe; b=M8bY5VqtXXdDWbVNOeKn5L3jqTYHjJWWIihPJSzbUAiuEqh2sLO8yNGR3mqv0i6KT TE9OCZQ4mE/iWlOtDaY9H+o85a8Qfq2wt9lrfDk/eOpoyCm4NaAws4WINEjw76wdnY X10q0lXYlt378GT5v9GcuwZm8a93+z6puBMzkE14/BgyjVuaqlh5Ho+OjHtMHgRV8G wbARadkhh7i0zzXdE7wYALqtThfsEI1r601mGOQrtPgViPAmorEoWeuLeWnwNJbybl F9epSnJ+ZoFBh7TkdHg83Yvr6Mr4IupzhDOBFsKhxKIY342kh6fFJ1JDvbgHan4ROP fe2mRp6002vTXEJQGq/qqOs9z90SpqdYx0CIRpDWI8uCcYPWwFu+Z7O9P+NQ/sk8Zy hpfqJmdbvvxXAo4fiayhX/OJg2B5wMvmnHXRaf7hOBo+G06FwzZrTl389sDE/BnntD CWZPRN+q8HAw1ys6wUrRtCvXD4FKetQg1Yxsbfige+GehegzJUJzhQGoCMj3ZTaHBv 583V2s8ktIqAv8pP/jIFHyqJAlDMbVE3Idr5S9MdY3awwK1/55JEkCAtBYLolYeXCk 7/RDV4x+wX4g3N8pqnStw6mlC2K62b/FyY5IBhWBGzEuA+hvsk75q2DYvGMUVnBE0L Z77frep7Kejjn7iQ8DmXTBdk= From: foxboron@archlinux.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=orion; t=1599204485; bh=amT+YX5fA9G6wHymXyvTgRmx0a7VnDrSv9JaXNYv88w=; h=From:To:Cc:Subject:Date; b=i5MURoLfo5+dqCbYS/sB6r5xJz3gTTfIsWgC/OqR+IrWaVEsjTsDwEEAgFZGWlx8F kJVGUfr5g784pRmoJb1RTJzfQe8HQG2J8fJAs3IU0Wb0EWAiR+5Et9hOp8GqekWYQW Q3jTX6sG+dbAHc+L3iSc7yW69UkQ93grWcWfblWj9CimF/oa3N8rAhGD2zETxEJYB2 t/svljRaDjH1dBZyeW8/VsHbSACsVdVt4qgDBQmZ15p7zXEclVcJUSIXNe02zhinx5 vQU9eTjOJOFHfosI0RAitz3dN9yZTfx9H9UDbaInjr39YuajhuqV4vyAFELZz6wp37 COL3PTr+eDkuvtSiMGtCELFNIqSXUZ9q6X/ze2QxgpfO/dZHML5YF5ReZt2gFA4soF iTBD8UQNPwSF9I4VrTpLZ1HMWVumtJMCM91IAWTQEfkaJwGSXAoSrwTnVS91m3Ln0J mPatbhnOWIEH+4jslFEmavtDPHUidfqPvGibB4iU80vZdeJYByzG0Iy3bK9uEKWEOE Wn4XD99gS1hzw2TlQdKwTQDx2BkLnA18lAv2XU32GoItCgNp61yo/REFIV05As3Jrc O3YNBnvC9xksyJJc/vb6eRwnlvY04DfosBrF8gPXYDIdvl9xw4Fx8l/ZOBvetxB/SQ ZBz0cqaVCkJh4zw0MCu9ctPk= To: aur-dev@archlinux.org Cc: Morten Linderud Subject: [PATCH] pkg_search_page: Limit number of results on package search Date: Fri, 4 Sep 2020 09:27:34 +0200 Message-Id: <20200904072734.2720507-1-foxboron@archlinux.org> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 X-BeenThere: aur-dev@archlinux.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: "Arch User Repository \(AUR\) Development" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: aur-dev-bounces@archlinux.org Sender: "aur-dev" From: Morten Linderud The current package search query is quite poorly optimized and becomes a resource hog when the offsets gets large enough. This DoSes the service. A quick fix is to just ensure we have some limit to the number of hits we return. The current hardcoding of 2500 is based on the following: * 250 hits pr page max * 10 pages We can maybe consider having it lower, but it seems easier to just have this a multiple of 250 in the first iteration. Signed-off-by: Morten Linderud --- web/lib/pkgfuncs.inc.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php index 8c915711..948e716c 100644 --- a/web/lib/pkgfuncs.inc.php +++ b/web/lib/pkgfuncs.inc.php @@ -624,6 +624,10 @@ function pkg_search_page($params, $show_headers=true, $SID="") { $params['O'] = 0; } + if($params['O'] >= 2500){ + $params['O'] = 2500; + } + if (isset($params["PP"])) { $params["PP"] = bound(intval($params["PP"]), 50, 250); } else { @@ -772,6 +776,9 @@ function pkg_search_page($params, $show_headers=true, $SID="") { if ($result_t) { $row = $result_t->fetch(PDO::FETCH_NUM); $total = $row[0]; + if ($total >= 2500) { + $total = 2500; + } } else { $total = 0;