You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Christine Poerschke (Jira)" <ji...@apache.org> on 2021/04/13 13:18:00 UTC

[jira] [Commented] (SOLR-15311) MODIFYCOLLECTION configName with async fails

    [ https://issues.apache.org/jira/browse/SOLR-15311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17320171#comment-17320171 ] 

Christine Poerschke commented on SOLR-15311:
--------------------------------------------

Hello [~kstoney], thanks for reporting this issue! I can reproduce locally via the following steps:
{code:java}
./gradlew -p solr dev

solr/packaging/build/solr-9.0.0-SNAPSHOT/bin/solr start -e cloud -noprompt

curl "http://localhost:8983/solr/admin/collections?action=MODIFYCOLLECTION&collection=gettingstarted&collection.configName=_default&async=1234"

curl "http://localhost:8983/solr/admin/collections?action=REQUESTSTATUS&requestid=1234"

solr/packaging/build/solr-9.0.0-SNAPSHOT/bin/solr stop -all
{code}
As an aside, I note that [https://solr.apache.org/guide/8_8/collection-management.html#modifycollection] does _not yet_ document the {{async}} parameter i.e. when the issue is fixed we can hopefully document it as supported and in the meantime optimistically we assume that it was intended to be supported (since it's not explicitly rejected when supplied) and the non-documentation was an oversight.

What I'm seeing is that the modification itself works but the collection reload fails, is that what you are seeing too?

From a cursory look at the code around [https://github.com/apache/lucene-solr/blob/releases/lucene-solr/8.8.2/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java#L638] I wonder (thinking out aloud) what the required code pattern or user expectations are in this scenario e.g. as a user do we expect to be given only "1234" back as the request id to track (and that covers all the necessary work) or do we expect to be given back "1234" and possibly additional request ids to track i.e. a separate request id for async reload? If the user expects no additional ids then how does that look like from an implementation perspective, will there be an internal async id for the reload or does the reload happen synchronously within the task tracked by the "1234" request id? <end of thinking out aloud>

> MODIFYCOLLECTION configName with async fails
> --------------------------------------------
>
>                 Key: SOLR-15311
>                 URL: https://issues.apache.org/jira/browse/SOLR-15311
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 8.8, 8.8.1
>            Reporter: Karl Stoney
>            Priority: Minor
>
> Hi, 
> If you perform a `MODIFYCOLLECTION` with an `async` number, it will fail after about 30 seconds.  However the exact same request without async works just fine and returns successfully instantly.
> {{
> 11:34:01.057 [OverseerThreadFactory-20-thread-5-processing-n:solr-0.search-solr.svc.cluster.local:80_solr] ERROR org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler - Collection: at-uk-004 operation: modifycollection failed:org.apache.solr.common.SolrException: Could not modify collection {
>   "collection":"at-uk-004",
>   "async":"1617449610",
>   "operation":"modifycollection"}
>         at org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler.modifyCollection(OverseerCollectionMessageHandler.java:669)
>         at org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler.processMessage(OverseerCollectionMessageHandler.java:266)
>         at org.apache.solr.cloud.OverseerTaskProcessor$Runner.run(OverseerTaskProcessor.java:524)
>         at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:218)
>         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>         at java.base/java.lang.Thread.run(Thread.java:834)
> }}
> The request i'm sending (POST):
> {{
>     const url = `${this.host}/solr/admin/collections`
>     const searchParams = {
>       action: 'MODIFYCOLLECTION',
>       collection: collectionName,
>       'collection.configName': newConfigName
>     }
> }}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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