(when /admin/luke
is slow/blocked and keeps timing out on OpenSolr)
Replace Solr’s heavy Luke handler with a lightweight ping so Drupal stops stalling:
<!-- solrconfig.xml --> <requestHandler name="/admin/luke" class="solr.PingRequestHandler"> <lst name="defaults"> <str name="q">*:*</str> </lst> </requestHandler>
Why: Drupal’s search_api_solr
probes /admin/luke
for capabilities. On large cores or restricted setups, that call can take seconds and return megabytes, causing PHP-FPM timeouts. Mapping /admin/luke
→ Ping returns a fast, tiny 200 OK.
/admin/luke
, and/admin/luke
is restricted or very slow.Log in to your OpenSolr Dashboard.
Open your Index Settings for the affected core.
In the Configuration Files section, locate and edit your solrconfig.xml
.
(You can use the built-in file editor; no shell access needed.)
Replace the existing /admin/luke
request handler block with the snippet above.
(Remove or comment out any previous <requestHandler name="/admin/luke" ...>
section.)
Save your changes.
OpenSolr will automatically detect and reload your index configuration gracefully — no manual restart required.
Verify that /admin/luke
responds instantly:
curl -sS -u <user>:<pass> -w '%{http_code}\n' "https://<yourcluster>.opensolr.com/solr/<CORE>/admin/luke?wt=json"
You should get a quick 200
response with a small JSON payload.
(Optional) Clear Drupal caches after the fix:
drush cr
/admin/luke
. Admin tools that rely on the full Luke dump will no longer work on that path.// settings.php $settings['search_api_solr']['skip_schema_check'] = TRUE; $settings['search_api_solr']['timeout'] = 3; $settings['search_api_solr']['connect_timeout'] = 1;
/admin/luke
instead:RewriteRule ^/solr/(.*)/admin/luke.*$ - [R=200,L]
Drupal only needs a quick “OK” response during capability probing. Replacing the heavy Luke dump with a fast ping avoids the long stalls that block PHP-FPM and Apache — and OpenSolr’s reload process applies this instantly and gracefully.