[jira] [Commented] (SOLR-17704) Change ZkDistributedLock to use Curator
[ https://issues.apache.org/jira/browse/SOLR-17704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936230#comment-17936230 ] Houston Putman commented on SOLR-17704: --- Yeah, definitely agree with the ticket, but not sure it should be a sub-task. I'm also really thinking about how to best do the shardTerms as a Curator recipe, but that might be a bit more bespoke than this. > Change ZkDistributedLock to use Curator > --- > > Key: SOLR-17704 > URL: https://issues.apache.org/jira/browse/SOLR-17704 > Project: Solr > Issue Type: Sub-task >Reporter: David Smiley >Priority: Major > > Now that Solr is using Curator for connection management, we can finally use > it to replace Solr code. ZkDistributedLock looks like very low-hanging > fruit, used by the non-Overseer distributed mode. That mode is still > experimental so we can change it in backwards-incompatible ways in Solr 10. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17043: Remove SolrClient path pattern matching [solr]
dsmiley commented on code in PR #3238: URL: https://github.com/apache/solr/pull/3238#discussion_r1999350676 ## solr/solrj/src/java/org/apache/solr/client/solrj/SolrRequest.java: ## @@ -185,8 +193,21 @@ public void setQueryParams(Set queryParams) { this.queryParams = queryParams; } - /** This method defines the type of this Solr request. */ - public abstract String getRequestType(); + /** + * The type of this Solr request. + * + * Pattern matches {@link SolrRequest#getPath} to identify ADMIN requests and other special + * cases. Overriding this method may affect request routing within various clients (i.e. {@link + * CloudSolrClient}). + */ + public SolrRequestType getRequestType() { +String path = getPath(); +if (path != null && CommonParams.ADMIN_PATHS.contains(path)) { Review Comment: I see "qt" makes this harder. I hate it; I _almost_ removed it completely as one of my first big actions as a committer, forever ago, but I went half-way by removing its processing server-side. It's _still_ present in SolrJ as you see here; _sigh_. I'd love to see this gone. I know it's a convenience for tests that want a SolrParams to be sort of all-encompassing about the request. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17043: Remove SolrClient path pattern matching [solr]
dsmiley commented on code in PR #3238: URL: https://github.com/apache/solr/pull/3238#discussion_r1999351627 ## solr/solrj/src/java/org/apache/solr/client/solrj/SolrRequest.java: ## @@ -185,8 +193,21 @@ public void setQueryParams(Set queryParams) { this.queryParams = queryParams; } - /** This method defines the type of this Solr request. */ - public abstract String getRequestType(); + /** + * The type of this Solr request. + * + * Pattern matches {@link SolrRequest#getPath} to identify ADMIN requests and other special + * cases. Overriding this method may affect request routing within various clients (i.e. {@link + * CloudSolrClient}). + */ + public SolrRequestType getRequestType() { +String path = getPath(); +if (path != null && CommonParams.ADMIN_PATHS.contains(path)) { Review Comment: Are there any "real" risks of mis-classification of the request type in SolrJ? -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[PR] SOLR-17584: Remove code and documentation for "trusted" configsets [solr]
abumarjikar opened a new pull request, #3272: URL: https://github.com/apache/solr/pull/3272 https://issues.apache.org/jira/browse/SOLR-X # Description Please provide a short description of the changes you're making with this pull request. # Solution Please provide a short description of the approach taken to implement your solution. # Tests Please describe the tests you've developed or run to confirm this patch implements the feature or solves the problem. # Checklist Please review the following and check all that apply: - [ ] I have reviewed the guidelines for [How to Contribute](https://github.com/apache/solr/blob/main/CONTRIBUTING.md) and my code conforms to the standards described there to the best of my ability. - [ ] I have created a Jira issue and added the issue ID to my pull request title. - [ ] I have given Solr maintainers [access](https://help.github.com/en/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork) to contribute to my PR branch. (optional but recommended, not available for branches on forks living under an organisation) - [ ] I have developed this patch against the `main` branch. - [ ] I have run `./gradlew check`. - [ ] I have added tests for my changes. - [ ] I have added documentation for the [Reference Guide](https://github.com/apache/solr/tree/main/solr/solr-ref-guide) -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[jira] [Updated] (SOLR-17584) Remove code and documentation for "trusted"configsets
[ https://issues.apache.org/jira/browse/SOLR-17584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] ASF GitHub Bot updated SOLR-17584: -- Labels: newdev pull-request-available (was: newdev) > Remove code and documentation for "trusted"configsets > - > > Key: SOLR-17584 > URL: https://issues.apache.org/jira/browse/SOLR-17584 > Project: Solr > Issue Type: Improvement > Components: configset-api, security >Reporter: Jason Gerlowski >Priority: Minor > Labels: newdev, pull-request-available > Time Spent: 10m > Remaining Estimate: 0h > > SOLR-16781 removed the ability for configsets to load code and resources > using "" directives. > These (now removed) "" directives were the primary motivation for the > trusted/untrusted configset distinction that was evolved over time to > restrict which configs/collections could load external libraries. Now that > they're gone, we should remove code and documentation related to the > trusted/untrusted distinction. > Technically, several components (XSLTUpdateRequestHandler, > ScriptUpdateRequestProcessor) still check configset "trustedness" when being > loaded. But both of these components require enabling a module at startup > time (e.g. {{SOLR_MODULES=scripting}}. And if an administrator has already > put these things on the classpath, layering "trustedness" on top of that > doesn't seem to add any value or security. (Especially given that the > "trustedness" determination itself probably shouldn't be relied on, due to > the number of gaps found in it over the years. In fact this is the main > motivation for the recent removal of in the first place.) -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] Fix 'setup-zk' bash syntax error [solr-operator]
madrob commented on PR #769: URL: https://github.com/apache/solr-operator/pull/769#issuecomment-2730457223 Yes, shellcheck. Auto-correct got me! -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [I] Solr 9.8.0 pods do not become ready [solr-operator]
HoustonPutman closed issue #761: Solr 9.8.0 pods do not become ready URL: https://github.com/apache/solr-operator/issues/761 -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] Fix 'setup-zk' bash syntax error [solr-operator]
gerlowskija commented on PR #769: URL: https://github.com/apache/solr-operator/pull/769#issuecomment-2730254419 "Spellcheck" or "[ShellCheck](https://github.com/koalaman/shellcheck)"? Assuming you mean "ShellCheck", but I'm not too familiar with it. Seems like a good thing to have analysis on generally - our unit tests validate that the container "command" looks the way we expect, but nothing ever really ensures that it's even valid bash 😦 Thanks for the pointer; will take a look and file a follow-on ticket if it seems promising! -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] Fix 'setup-zk' bash syntax error [solr-operator]
gerlowskija merged PR #769: URL: https://github.com/apache/solr-operator/pull/769 -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [I] Zk-setup error [solr-operator]
gerlowskija closed issue #759: Zk-setup error URL: https://github.com/apache/solr-operator/issues/759 -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17584: Remove code and documentation for "trusted" configsets [solr]
abumarjikar commented on code in PR #3272: URL: https://github.com/apache/solr/pull/3272#discussion_r1999683086 ## solr/core/src/java/org/apache/solr/handler/configsets/CloneConfigSet.java: ## @@ -64,8 +64,8 @@ public SolrJerseyResponse cloneExistingConfigSet(CloneConfigsetRequestBody reque } if (!DISABLE_CREATE_AUTH_CHECKS -&& !isTrusted(solrQueryRequest.getUserPrincipal(), coreContainer.getAuthenticationPlugin()) -&& configSetService.isConfigSetTrusted(requestBody.baseConfigSet)) { +&& !isTrusted( Review Comment: not sure if we still need this, i kept it because this check on the not null on auth plugin and user principal. ## solr/core/src/java/org/apache/solr/handler/configsets/ConfigSetAPIBase.java: ## @@ -134,24 +134,9 @@ protected void createBaseNode( throws IOException { if (overwritesExisting) { if (!requestIsTrusted) { -ensureOverwritingUntrustedConfigSet(configName); +throw new SolrException( Review Comment: The trusted configs was always true and after considering that if the request is not trusted then we should directly throw exception. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-16903: Migrate all tests using File to NIO Path [solr]
mlbiscoc commented on code in PR #3263: URL: https://github.com/apache/solr/pull/3263#discussion_r1999375059 ## solr/core/src/test/org/apache/solr/search/TestRecovery.java: ## @@ -1779,11 +1778,11 @@ public void testRecoveryMultipleLogs() throws Exception { assertU(adoc("id", "CC")); h.close(); - String[] files = ulog.getLogList(logDir.toPath()); + String[] files = ulog.getLogList(logDir); Arrays.sort(files); String fname = files[files.length - 1]; byte[] content; - try (RandomAccessFile raf = new RandomAccessFile(new File(logDir, fname), "rw")) { + try (RandomAccessFile raf = new RandomAccessFile(logDir.resolve(fname).toFile(), "rw")) { Review Comment: Still trying to figure out the the NIO Path equivalent is here. Going to leave this comment to come back ## solr/core/src/test/org/apache/solr/cli/StreamToolTest.java: ## @@ -185,11 +183,11 @@ public void testReadStream() throws Exception { @Test @SuppressWarnings({"unchecked", "rawtypes"}) public void testLocalCatStream() throws Exception { -File localFile = File.createTempFile("topLevel1", ".txt"); -populateFileWithData(localFile.toPath()); +Path localFile = Files.createTempFile("topLevel1", ".txt"); +populateFileWithData(localFile); StreamTool.LocalCatStream catStream = -new StreamTool.LocalCatStream(localFile.getAbsolutePath(), -1); +new StreamTool.LocalCatStream(localFile.toAbsolutePath().toString(), -1); Review Comment: We can but would required some refactor of [CatStream](https://github.com/apache/solr/blob/af97ef7037aec0c1fb028e173b6d8931cd12588d/solr/core/src/java/org/apache/solr/handler/CatStream.java#L52) which does a bunch of string parsing and changes the path string and adds comma delimiters. Not sure how Path would change the underlying path, if at all. ## solr/core/src/test/org/apache/solr/SolrInfoBeanTest.java: ## @@ -88,30 +90,37 @@ public void testCallMBeanInfo() throws Exception { } private static List> getClassesForPackage(String pckgname) throws Exception { -ArrayList directories = new ArrayList<>(); +ArrayList directories = new ArrayList<>(); ClassLoader cld = h.getCore().getResourceLoader().getClassLoader(); String path = pckgname.replace('.', '/'); Enumeration resources = cld.getResources(path); while (resources.hasMoreElements()) { final URI uri = resources.nextElement().toURI(); if (!"file".equalsIgnoreCase(uri.getScheme())) continue; - final File f = new File(uri); + final Path f = Path.of(uri); directories.add(f); } ArrayList> classes = new ArrayList<>(); -for (File directory : directories) { - if (directory.exists()) { -String[] files = directory.list(); -for (String file : files) { - if (file.endsWith(".class")) { -String clazzName = file.substring(0, file.length() - 6); -// exclude Test classes that happen to be in these packages. -// class.ForName'ing some of them can cause trouble. -if (!clazzName.endsWith("Test") && !clazzName.startsWith("Test")) { - classes.add(Class.forName(pckgname + '.' + clazzName)); -} - } +for (Path directory : directories) { + if (Files.exists(directory)) { +try (Stream files = Files.list(directory)) { Review Comment: The Path equivalent for `directory.list();` in path is `Files.list` but this requires a try-with-resources since it returns a stream and the try with close the stream at the end. Other option is removing the try with resources but we need to call a `.close()` to close it manually. ## solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java: ## @@ -558,32 +555,34 @@ public void testInteractiveSolrCloudExample() throws Exception { @Test public void testFailExecuteScript() throws Exception { -File solrHomeDir = new File(ExternalPaths.SERVER_HOME); -if (!solrHomeDir.isDirectory()) - fail(solrHomeDir.getAbsolutePath() + " not found and is required to run this test!"); +Path solrHomeDir = Path.of(ExternalPaths.SERVER_HOME); +if (!Files.isDirectory(solrHomeDir)) + fail(solrHomeDir.toAbsolutePath() + " not found and is required to run this test!"); -Path tmpDir = createTempDir(); -File solrExampleDir = tmpDir.toFile(); -File solrServerDir = solrHomeDir.getParentFile(); +Path solrExampleDir = createTempDir(); +Path solrServerDir = solrHomeDir.getParent(); // need a port to start the example server on int bindPort = -1; try (ServerSocket socket = new ServerSocket(0)) { bindPort = socket.getLocalPort(); } -File toExecute = new File(tmpDir.toString(), "failExecuteScript"); -assertTrue( -"Should have been able to create file '" + toExecute.getAbsolutePath() + "' ", -
[I] SolrBackup should call DELETEBACKUP with purgeUnused=true [solr-operator]
killdash9 opened a new issue, #772: URL: https://github.com/apache/solr-operator/issues/772 When keeping only the most recent n backups, orphaned files can accumulate in the backup repository. Calling /solr/admin/collections?action=DELETEBACKUP&name=myBackupName&location=/path/to/my/shared/drive&purgeUnused=true will clean those up. See https://solr.apache.org/guide/solr/latest/deployment-guide/collection-management.html for documentation on this api call. The SolrBackup CRD should call this api as part of managing recurring backups. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-16903: Migrate all tests using File to NIO Path [solr]
epugh commented on PR #3263: URL: https://github.com/apache/solr/pull/3263#issuecomment-2730981611 Looks like some nice progress.. I just clicked the unit tests button. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[jira] [Commented] (SOLR-17584) Remove code and documentation for "trusted"configsets
[ https://issues.apache.org/jira/browse/SOLR-17584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936313#comment-17936313 ] Abhishek Umarjikar commented on SOLR-17584: --- [~epugh] Added my comment on that. [~gerlowskija] wanted some clarity on whether we need to consider the *requestIsTrusted* as part of the trustedness logic. > Remove code and documentation for "trusted"configsets > - > > Key: SOLR-17584 > URL: https://issues.apache.org/jira/browse/SOLR-17584 > Project: Solr > Issue Type: Improvement > Components: configset-api, security >Reporter: Jason Gerlowski >Priority: Minor > Labels: newdev, pull-request-available > Time Spent: 1h > Remaining Estimate: 0h > > SOLR-16781 removed the ability for configsets to load code and resources > using "" directives. > These (now removed) "" directives were the primary motivation for the > trusted/untrusted configset distinction that was evolved over time to > restrict which configs/collections could load external libraries. Now that > they're gone, we should remove code and documentation related to the > trusted/untrusted distinction. > Technically, several components (XSLTUpdateRequestHandler, > ScriptUpdateRequestProcessor) still check configset "trustedness" when being > loaded. But both of these components require enabling a module at startup > time (e.g. {{SOLR_MODULES=scripting}}. And if an administrator has already > put these things on the classpath, layering "trustedness" on top of that > doesn't seem to add any value or security. (Especially given that the > "trustedness" determination itself probably shouldn't be relied on, due to > the number of gaps found in it over the years. In fact this is the main > motivation for the recent removal of in the first place.) -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [I] Getting unauthorized requests for cluster/replicas/balance in v0.8.0 [solr-operator]
jstaf commented on issue #653: URL: https://github.com/apache/solr-operator/issues/653#issuecomment-2731064995 As a workaround, you can manually add `/v2/cluster/replicas/balance` in the security screen to the `k8s-oper` and `admin` users on a new cluster. However just a warning that rebalancing doesn't seem to work very well so you may just want to leave it off... it seems to just create a whole bunch of replicas then time out, then leaves a bunch of replicas on the new nodes without deleting the ones on the old node. After failing, it runs rebalance again, then instantly declares it was a "success" even though the replicas never got moved properly and now you have more replicas than you started with. ``` 2025-03-15 00:59:28.579 INFO (OverseerThreadFactory-120-thread-2) [c: s: r: x: t:] o.a.s.c.a.c.ReplicaMigrationUtils Timed out waiting for 1 leader replicas to recover 2025-03-15 00:59:28.579 INFO (OverseerThreadFactory-120-thread-2) [c: s: r: x: t:] o.a.s.c.a.c.ReplicaMigrationUtils Failed to create some replicas. Cleaning up all newly created replicas. org.apache.solr.common.SolrException: collection,shard,replica are required params "at org.apache.solr.cloud.api.collections.CollectionHandlingUtils.checkRequired(CollectionHandlingUtils.java:196) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at org.apache.solr.cloud.api.collections.DeleteReplicaCmd.deleteReplica(DeleteReplicaCmd.java:86) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler.processMessage(OverseerCollectionMessageHandler.java:130) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]" 2025-03-15 00:59:28.579 ERROR (OverseerThreadFactory-120-thread-2) [c: s: r: x: t:] o.a.s.c.a.c.CollectionHandlingUtils Operation balance_replicas failed => org.apache.solr.common.SolrException: collection,shard,replica are required params "at org.apache.solr.cloud.api.collections.CollectionHandlingUtils.checkRequired(CollectionHandlingUtils.java:196) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at org.apache.solr.cloud.api.collections.DeleteReplicaCmd.deleteReplica(DeleteReplicaCmd.java:86) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at org.apache.solr.cloud.api.collections.ReplicaMigrationUtils.migrateReplicas(ReplicaMigrationUtils.java:217) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at org.apache.solr.cloud.api.collections.BalanceReplicasCmd.call(BalanceReplicasCmd.java:81) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler.processMessage(OverseerCollectionMessageHandler.java:130) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:363) ~[solr-solrj-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?]" 2025-03-15 00:59:28.579 WARN (OverseerThreadFactory-120-thread-2) [c: s: r: x: t:] o.a.s.c.a.c.ReplicaMigrationUtils Error deleting replica => org.apache.solr.common.SolrException: collection,shard,replica are required params "at org.apache.solr.cloud.api.collections.CollectionHandlingUtils.checkRequired(CollectionHandlingUtils.java:196)" "at org.apache.solr.cloud.api.collections.ReplicaMigrationUtils.migrateReplicas(ReplicaMigrationUtils.java:217) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at org.apache.solr.cloud.api.collections.BalanceReplicasCmd.call(BalanceReplicasCmd.java:81) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at org.apache.solr.cloud.api.collections.CollApiCmds$TraceAwareCommand.call(CollApiCmds.java:225) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at org.apache.solr.cloud.OverseerTaskProcessor$Runner.run(OverseerTaskProcessor.java:564) ~[solr-core-9.6.1.jar:9.6.1 d7f7166567f52f1b31e3315b0188e11f2c4c9b60 - houston - 2024-05-23 13:50:22]" "at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:363) ~[so
[jira] [Updated] (SOLR-17707) HttpJdkSolrClient threads stuck on exceptions
[ https://issues.apache.org/jira/browse/SOLR-17707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Artem Abeleshev updated SOLR-17707: --- Environment: (was: There is a problem with _HttpJdkSolrClient_ used by {_}SolrJ{_}. In case of exception occurs on sending data (in my case it was {_}connection reset by peer{_}) the thread from the http client pool get stuck. Internally, _HttpJdkSolrClient_ using _PipedOutputStream_ and _PipedInputStream_ and in case of exception it ends up waiting forever. Seems like _PipedOutputStream_ buffer remains full and _PipedInputStream_ stuck in a waiting state waiting for the avaialble space to write. This will consume one thread from the pool making it blocked. By default, _HttpJdkSolrClient_ created with an executor of a _4_ threads, if all of them are blocked the _SolrJ_ will be unable to work. There seems to be no problem with that if switching to use _Http2SolrClient_ instead of _HttpJdkSolrClient_ as _Http2SolrClient_ doesn't use _PipedOutputStream_ and {_}PipedInputStream{_}. Here is a part of threaddump showing the http client threads get stuck: {code:java} "HttpJdkSolrClient-1-thread-1-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=52 TIMED_WAITING on java.io.PipedInputStream@67168d76 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@67168d76 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@bdec8d6 "HttpJdkSolrClient-1-thread-2-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=53 TIMED_WAITING on java.io.PipedInputStream@571e7f87 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@571e7f87 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@7e6cf6f2 "HttpJdkSolrClient-1-thread-3-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=54 TIMED_WAITING on java.io.PipedInputStream@497c4c19 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@497c4c19 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@7a2b5f30 "HttpJdkSolrClient-1-thread-4-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=55 TIMED_WAITING on java.io.PipedInputStream@77907562 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@77907562 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.write(FastOutputStream.java:97) at org.apache.solr.common.util.JavaBinCodec.writeStr(JavaBinCodec.java:916) at org.apache.solr.common.util.JavaBinCodec.writePrimitive(JavaBinCodec.java:1062) ... Number of locked synchronizers = 1 - java.
[jira] [Updated] (SOLR-17707) HttpJdkSolrClient threads stuck on exceptions
[ https://issues.apache.org/jira/browse/SOLR-17707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Artem Abeleshev updated SOLR-17707: --- Description: There is a problem with _HttpJdkSolrClient_ used by {_}SolrJ{_}. In case of exception occurs on sending data (in my case it was {_}connection reset by peer{_}) the thread from the http client pool get stuck. Internally, _HttpJdkSolrClient_ using _PipedOutputStream_ and _PipedInputStream_ and in case of exception it ends up waiting forever. Seems like _PipedOutputStream_ buffer remains full and _PipedInputStream_ stuck in a waiting state waiting for the avaialble space to write. This will consume one thread from the pool making it blocked. By default, _HttpJdkSolrClient_ created with an executor of a _4_ threads, if all of them are blocked the _SolrJ_ will be unable to work. There seems to be no problem with that if switching to use _Http2SolrClient_ instead of _HttpJdkSolrClient_ as _Http2SolrClient_ doesn't use _PipedOutputStream_ and {_}PipedInputStream{_} facility. Here is a part of threaddump showing the http client threads get stuck: {code:java} "HttpJdkSolrClient-1-thread-1-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=52 TIMED_WAITING on java.io.PipedInputStream@67168d76 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@67168d76 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@bdec8d6 "HttpJdkSolrClient-1-thread-2-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=53 TIMED_WAITING on java.io.PipedInputStream@571e7f87 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@571e7f87 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@7e6cf6f2 "HttpJdkSolrClient-1-thread-3-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=54 TIMED_WAITING on java.io.PipedInputStream@497c4c19 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@497c4c19 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@7a2b5f30 "HttpJdkSolrClient-1-thread-4-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=55 TIMED_WAITING on java.io.PipedInputStream@77907562 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@77907562 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.write(FastOutputStream.java:97) at org.apache.solr.common.util.JavaBin
[jira] [Updated] (SOLR-17707) HttpJdkSolrClient threads stuck on exceptions
[ https://issues.apache.org/jira/browse/SOLR-17707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Artem Abeleshev updated SOLR-17707: --- Description: There is a problem with _HttpJdkSolrClient_ used by {_}SolrJ{_}. In case of exception occurs on sending data (in my case it was {_}connection reset by peer{_}) the thread from the http client pool get stuck. Internally, _HttpJdkSolrClient_ using _PipedOutputStream_ and _PipedInputStream_ and in case of exception it ends up waiting forever. Seems like _PipedOutputStream_ buffer remains full and _PipedInputStream_ stuck in a waiting state waiting for the avaialble space to write. This will consume one thread from the pool making it blocked. By default, _HttpJdkSolrClient_ created with an executor of a _4_ threads, if all of them are blocked the _SolrJ_ will be unable to work. There seems to be no problem with that if switching to use _Http2SolrClient_ instead of _HttpJdkSolrClient_ as _Http2SolrClient_ doesn't use _PipedOutputStream_ and {_}PipedInputStream{_}. Here is a part of threaddump showing the http client threads get stuck: {code:java} "HttpJdkSolrClient-1-thread-1-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=52 TIMED_WAITING on java.io.PipedInputStream@67168d76 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@67168d76 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@bdec8d6 "HttpJdkSolrClient-1-thread-2-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=53 TIMED_WAITING on java.io.PipedInputStream@571e7f87 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@571e7f87 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@7e6cf6f2 "HttpJdkSolrClient-1-thread-3-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=54 TIMED_WAITING on java.io.PipedInputStream@497c4c19 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@497c4c19 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@7a2b5f30 "HttpJdkSolrClient-1-thread-4-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=55 TIMED_WAITING on java.io.PipedInputStream@77907562 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@77907562 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.write(FastOutputStream.java:97) at org.apache.solr.common.util.JavaBinCodec.wri
[jira] [Updated] (SOLR-17707) HttpJdkSolrClient threads stuck on exceptions
[ https://issues.apache.org/jira/browse/SOLR-17707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Artem Abeleshev updated SOLR-17707: --- Description: There is a problem with _HttpJdkSolrClient_ used by {_}SolrJ{_}. In case of exception occurs on sending data (in my case it was {_}connection reset by peer{_}) the thread from the http client pool get stuck. Internally, _HttpJdkSolrClient_ using _PipedOutputStream_ and _PipedInputStream_ and in case of exception it ends up waiting forever. Seems like _PipedOutputStream_ buffer remains full and _PipedInputStream_ stuck in a waiting state waiting for the avaialble space to write. This will consume one thread from the pool making it blocked. By default, _HttpJdkSolrClient_ created with an executor of a _4_ threads, if all of them are blocked the _SolrJ_ will be unable to work. There seems to be no problem with that if switching to use _Http2SolrClient_ instead of _HttpJdkSolrClient_ as _Http2SolrClient_ doesn't use _PipedOutputStream_ and {_}PipedInputStream{_}. Here is a part of threaddump showing the http client threads get stuck: {code:java} "HttpJdkSolrClient-1-thread-1-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=52 TIMED_WAITING on java.io.PipedInputStream@67168d76 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@67168d76 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@bdec8d6 "HttpJdkSolrClient-1-thread-2-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=53 TIMED_WAITING on java.io.PipedInputStream@571e7f87 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@571e7f87 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@7e6cf6f2 "HttpJdkSolrClient-1-thread-3-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=54 TIMED_WAITING on java.io.PipedInputStream@497c4c19 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@497c4c19 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.flushBuffer(FastOutputStream.java:200) at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:170) at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.marshal(JavaBinUpdateRequestCodec.java:100) ... Number of locked synchronizers = 1 - java.util.concurrent.ThreadPoolExecutor$Worker@7a2b5f30 "HttpJdkSolrClient-1-thread-4-processing-system ad571f96-762d-4e9a-8f9c-f5580413397d" prio=5 Id=55 TIMED_WAITING on java.io.PipedInputStream@77907562 at java.base@17.0.12/java.lang.Object.wait(Native Method) - waiting on java.io.PipedInputStream@77907562 at java.base@17.0.12/java.io.PipedInputStream.awaitSpace(Unknown Source) at java.base@17.0.12/java.io.PipedInputStream.receive(Unknown Source) at java.base@17.0.12/java.io.PipedOutputStream.write(Unknown Source) at org.apache.solr.common.util.FastOutputStream.flush(FastOutputStream.java:207) at org.apache.solr.common.util.FastOutputStream.write(FastOutputStream.java:97) at org.apache.solr.common.util.JavaBinCodec.wri
[jira] [Commented] (SOLR-17699) High Query Time in Solr When Using OR with frange in fq
[ https://issues.apache.org/jira/browse/SOLR-17699?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936345#comment-17936345 ] ASF subversion and git services commented on SOLR-17699: Commit ac74ced99e288f74a18655ec4cd2f205b976ca54 in solr's branch refs/heads/main from David Smiley [ https://gitbox.apache.org/repos/asf?p=solr.git;h=ac74ced99e2 ] SOLR-17699: Fix {!frange} perf regression in disjunction (#3259) Since 9.0 with "frange" function queries when in a disjunction (OR). TwoPhaseIterator must be used; was iterating all docs instead. > High Query Time in Solr When Using OR with frange in fq > --- > > Key: SOLR-17699 > URL: https://issues.apache.org/jira/browse/SOLR-17699 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) >Affects Versions: 9.0, 9.6.1 >Reporter: Puneet Sharma >Priority: Major > Labels: pull-request-available > Time Spent: 50m > Remaining Estimate: 0h > > h3. High Query Time in Solr When Using {{OR}} with {{frange}} in {{fq}} > I am experiencing high query times in Solr when using an {{fq}} filter that > combines an {{OR}} condition with {{{}frange{}}}. The response time > significantly increases compared to queries that do not use this combination. > h4. Query Example > > {{fq=\{!cache=false tag=prm}field:value OR \{!frange l=1 u=1 v=$funcQuery}}} > Here, {{$funcQuery}} is a function query that retrieves documents dynamically > based on dynamic parameters. > h4. Observations > * When I use just {{{}{!frange l=1 u=1 v=$funcQuery}{}}}, the query executes > quickly[20ms]. > * When I use {{{!cache=false tag=prm}field:value}} alone, the query is also > fast. > * However, when combining both with {{{}OR{}}}, the query time increases > significantly [700ms]. > * The dataset is relatively large, but other queries with similar complexity > run efficiently. > h4. Questions > # Why does the {{OR}} operation with {{frange}} cause a significant increase > in query time? > # Are there any optimizations or alternative query structures that could > improve performance? > # Would it help to restructure how function queries and filters are applied > in this case? > # Is there any alternative for frange for this use case because in our use > case, this cannot be done at index time because the function parameters > change very frequently? > Any insights or suggestions would be greatly appreciated! -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-16903: Migrate all tests using File to NIO Path [solr]
mlbiscoc commented on code in PR #3263: URL: https://github.com/apache/solr/pull/3263#discussion_r1998742643 ## solr/core/src/test/org/apache/solr/SolrInfoBeanTest.java: ## @@ -88,30 +90,37 @@ public void testCallMBeanInfo() throws Exception { } private static List> getClassesForPackage(String pckgname) throws Exception { -ArrayList directories = new ArrayList<>(); +ArrayList directories = new ArrayList<>(); ClassLoader cld = h.getCore().getResourceLoader().getClassLoader(); String path = pckgname.replace('.', '/'); Enumeration resources = cld.getResources(path); while (resources.hasMoreElements()) { final URI uri = resources.nextElement().toURI(); if (!"file".equalsIgnoreCase(uri.getScheme())) continue; - final File f = new File(uri); + final Path f = Path.of(uri); directories.add(f); } ArrayList> classes = new ArrayList<>(); -for (File directory : directories) { - if (directory.exists()) { -String[] files = directory.list(); -for (String file : files) { - if (file.endsWith(".class")) { -String clazzName = file.substring(0, file.length() - 6); -// exclude Test classes that happen to be in these packages. -// class.ForName'ing some of them can cause trouble. -if (!clazzName.endsWith("Test") && !clazzName.startsWith("Test")) { - classes.add(Class.forName(pckgname + '.' + clazzName)); -} - } +for (Path directory : directories) { + if (Files.exists(directory)) { +try (Stream files = Files.list(directory)) { Review Comment: The Path equivalent for `directory.list();` in path is `Files.list` but this requires a try-with-resources since it returns a stream and closes the stream at the end. Other option is removing the try with resources but we need to call a `.close()` to close it manually. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[jira] [Comment Edited] (SOLR-17699) High Query Time in Solr When Using OR with frange in fq
[ https://issues.apache.org/jira/browse/SOLR-17699?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936369#comment-17936369 ] Puneet Sharma edited comment on SOLR-17699 at 3/18/25 5:22 AM: --- {quote}When you tried just the {{frange}} alone in a fq and said it was fast, did you disable the cache on it as well with {{{}cache=false{}}}? {quote} yes [~dsmiley] I used {{{}cache=false w{}}}hen i tried just the {{frange}} alone in a fq. {quote}Puneet Sharma In the scenario you describe, I suppose field:value in your query is often true? {quote} I have 8.1 million doc in solr and for 77125 docs field:value is true. was (Author: JIRAUSER304723): {quote}When you tried just the {{frange}} alone in a fq and said it was fast, did you disable the cache on it as well with {{{}cache=false{}}}? {quote} yes [~dsmiley] I used {{{}cache=false w{}}}hen i tried just the {{frange}} alone in a fq. {quote}Puneet Sharma In the scenario you describe, I suppose field:value in your query is often true? {quote} I have 8.1 million doc in solr and 77125 docs field:value is true. > High Query Time in Solr When Using OR with frange in fq > --- > > Key: SOLR-17699 > URL: https://issues.apache.org/jira/browse/SOLR-17699 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) >Affects Versions: 9.0, 9.6.1 >Reporter: Puneet Sharma >Priority: Major > Labels: pull-request-available > Time Spent: 50m > Remaining Estimate: 0h > > h3. High Query Time in Solr When Using {{OR}} with {{frange}} in {{fq}} > I am experiencing high query times in Solr when using an {{fq}} filter that > combines an {{OR}} condition with {{{}frange{}}}. The response time > significantly increases compared to queries that do not use this combination. > h4. Query Example > > {{fq=\{!cache=false tag=prm}field:value OR \{!frange l=1 u=1 v=$funcQuery}}} > Here, {{$funcQuery}} is a function query that retrieves documents dynamically > based on dynamic parameters. > h4. Observations > * When I use just {{{}{!frange l=1 u=1 v=$funcQuery}{}}}, the query executes > quickly[20ms]. > * When I use {{{!cache=false tag=prm}field:value}} alone, the query is also > fast. > * However, when combining both with {{{}OR{}}}, the query time increases > significantly [700ms]. > * The dataset is relatively large, but other queries with similar complexity > run efficiently. > h4. Questions > # Why does the {{OR}} operation with {{frange}} cause a significant increase > in query time? > # Are there any optimizations or alternative query structures that could > improve performance? > # Would it help to restructure how function queries and filters are applied > in this case? > # Is there any alternative for frange for this use case because in our use > case, this cannot be done at index time because the function parameters > change very frequently? > Any insights or suggestions would be greatly appreciated! -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[jira] [Commented] (SOLR-17699) High Query Time in Solr When Using OR with frange in fq
[ https://issues.apache.org/jira/browse/SOLR-17699?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936369#comment-17936369 ] Puneet Sharma commented on SOLR-17699: -- {quote}When you tried just the {{frange}} alone in a fq and said it was fast, did you disable the cache on it as well with {{{}cache=false{}}}? {quote} yes [~dsmiley] I used {{{}cache=false w{}}}hen i tried just the {{frange}} alone in a fq. {quote}Puneet Sharma In the scenario you describe, I suppose field:value in your query is often true? {quote} I have 8.1 million doc in solr and 77125 docs field:value is true. > High Query Time in Solr When Using OR with frange in fq > --- > > Key: SOLR-17699 > URL: https://issues.apache.org/jira/browse/SOLR-17699 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) >Affects Versions: 9.0, 9.6.1 >Reporter: Puneet Sharma >Priority: Major > Labels: pull-request-available > Time Spent: 50m > Remaining Estimate: 0h > > h3. High Query Time in Solr When Using {{OR}} with {{frange}} in {{fq}} > I am experiencing high query times in Solr when using an {{fq}} filter that > combines an {{OR}} condition with {{{}frange{}}}. The response time > significantly increases compared to queries that do not use this combination. > h4. Query Example > > {{fq=\{!cache=false tag=prm}field:value OR \{!frange l=1 u=1 v=$funcQuery}}} > Here, {{$funcQuery}} is a function query that retrieves documents dynamically > based on dynamic parameters. > h4. Observations > * When I use just {{{}{!frange l=1 u=1 v=$funcQuery}{}}}, the query executes > quickly[20ms]. > * When I use {{{!cache=false tag=prm}field:value}} alone, the query is also > fast. > * However, when combining both with {{{}OR{}}}, the query time increases > significantly [700ms]. > * The dataset is relatively large, but other queries with similar complexity > run efficiently. > h4. Questions > # Why does the {{OR}} operation with {{frange}} cause a significant increase > in query time? > # Are there any optimizations or alternative query structures that could > improve performance? > # Would it help to restructure how function queries and filters are applied > in this case? > # Is there any alternative for frange for this use case because in our use > case, this cannot be done at index time because the function parameters > change very frequently? > Any insights or suggestions would be greatly appreciated! -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[jira] [Updated] (SOLR-17514) SolrJ: Create a CborJacksonRequestWriter
[ https://issues.apache.org/jira/browse/SOLR-17514?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] David Smiley updated SOLR-17514: Description: Once Solr accepts CBOR more completely for indexing, we should create a CborJacksonRequestWriter that works with Jackson supporting CBOR to write updates. Can separate this into two phases -- Jackson for JSON, then CBOR. Note/risk: Does the OpenAPI direction for SolrJ lead to another alternative conception of how the indexing classes work? -_(as of this writing, RequestWriter is in need of a refactor so that it's an abstract class or interface instead of being for XML)._- was: Once Solr accepts CBOR more completely for indexing, we should create a CborJacksonRequestWriter that works with Jackson supporting CBOR to write updates. Can separate this into two phases -- Jackson for JSON, then CBOR. Note/risk: Does the OpenAPI direction for SolrJ lead to another alternative conception of how the indexing classes work? _(as of this writing, RequestWriter is in need of a refactor so that it's an abstract class or interface instead of being for XML)._ > SolrJ: Create a CborJacksonRequestWriter > > > Key: SOLR-17514 > URL: https://issues.apache.org/jira/browse/SOLR-17514 > Project: Solr > Issue Type: New Feature > Components: SolrJ >Reporter: David Smiley >Priority: Major > > Once Solr accepts CBOR more completely for indexing, we should create a > CborJacksonRequestWriter that works with Jackson supporting CBOR to write > updates. Can separate this into two phases -- Jackson for JSON, then CBOR. > Note/risk: Does the OpenAPI direction for SolrJ lead to another alternative > conception of how the indexing classes work? > -_(as of this writing, RequestWriter is in need of a refactor so that it's an > abstract class or interface instead of being for XML)._- -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[jira] [Commented] (SOLR-17584) Remove code and documentation for "trusted"configsets
[ https://issues.apache.org/jira/browse/SOLR-17584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936314#comment-17936314 ] Abhishek Umarjikar commented on SOLR-17584: --- [~gerlowskija] wanted some clarity on whether we need to consider the *requestIsTrusted* as part of the trustedness logic. > Remove code and documentation for "trusted"configsets > - > > Key: SOLR-17584 > URL: https://issues.apache.org/jira/browse/SOLR-17584 > Project: Solr > Issue Type: Improvement > Components: configset-api, security >Reporter: Jason Gerlowski >Priority: Minor > Labels: newdev, pull-request-available > Time Spent: 1h > Remaining Estimate: 0h > > SOLR-16781 removed the ability for configsets to load code and resources > using "" directives. > These (now removed) "" directives were the primary motivation for the > trusted/untrusted configset distinction that was evolved over time to > restrict which configs/collections could load external libraries. Now that > they're gone, we should remove code and documentation related to the > trusted/untrusted distinction. > Technically, several components (XSLTUpdateRequestHandler, > ScriptUpdateRequestProcessor) still check configset "trustedness" when being > loaded. But both of these components require enabling a module at startup > time (e.g. {{SOLR_MODULES=scripting}}. And if an administrator has already > put these things on the classpath, layering "trustedness" on top of that > doesn't seem to add any value or security. (Especially given that the > "trustedness" determination itself probably shouldn't be relied on, due to > the number of gaps found in it over the years. In fact this is the main > motivation for the recent removal of in the first place.) -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-14410: switch from SysV to systemd service [solr]
janhoy commented on PR #428: URL: https://github.com/apache/solr/pull/428#issuecomment-2731247982 Hi @davispuh. Instead of replying to a merged PR, pleas either file a JIRA ticket, a new PR with a proposal, or start a discussion on us...@solr.apache.org mailing list. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [I] Scaling Down Causes "Down" Replicas [solr-operator]
HoustonPutman commented on issue #754: URL: https://github.com/apache/solr-operator/issues/754#issuecomment-2730921928 Oof, yeah that's really not great. I think ultimately it's a Solr bug that when an error happens when moving/creating replicas, Solr doesn't always delete the replicas it was trying to create. So it can create more and more broken replicas. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[PR] Bump github.com/containerd/containerd from 1.7.23 to 1.7.27 [solr-operator]
dependabot[bot] opened a new pull request, #771: URL: https://github.com/apache/solr-operator/pull/771 Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.7.23 to 1.7.27. Release notes Sourced from https://github.com/containerd/containerd/releases";>github.com/containerd/containerd's releases. containerd 1.7.27 Welcome to the v1.7.27 release of containerd! The twenty-seventh patch release for containerd 1.7 contains various fixes and updates. Highlights Fix integer overflow in User ID handling (https://github.com/containerd/containerd/security/advisories/GHSA-265r-hfxg-fhmg";>GHSA-265r-hfxg-fhmg) Update image type checks to avoid unnecessary logs for attestations (https://redirect.github.com/containerd/containerd/pull/11538";>#11538) Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues";>https://github.com/containerd/containerd/issues. Contributors Jin Dong Akhil Mohan Derek McGowan Maksym Pavlenko Paweł Gronowski Phil Estes Akihiro Suda Craig Ingram Krisztian Litkey Samuel Karp Changes https://github.com/containerd/containerd/commit/05044ec0a9a75232cad458027ca83437aae3f4da";>05044ec0a Merge commit from fork https://github.com/containerd/containerd/commit/11504c3fc5f45634f2d93d57743a998194430b82";>11504c3fc validate uid/gid Prepare release notes for v1.7.27 (https://redirect.github.com/containerd/containerd/pull/11540";>#11540) https://github.com/containerd/containerd/commit/1be04be6c307a7f67423574ca1b9744e57377753";>1be04be6c Prepare release notes for v1.7.27 Update image type checks to avoid unnecessary logs for attestations (https://redirect.github.com/containerd/containerd/pull/11538";>#11538) https://github.com/containerd/containerd/commit/82b5c43fed40d1f32e88215a3f0acbaf8cd9af10";>82b5c43fe core/remotes: Handle attestations in MakeRefKey https://github.com/containerd/containerd/commit/2c670e79bf19bc7716c8b9f1f82c700ad8233af3";>2c670e79b core/images: Ignore attestations when traversing children update build to go1.23.7, test go1.24.1 (https://redirect.github.com/containerd/containerd/pull/11515";>#11515) https://github.com/containerd/containerd/commit/a39863c9fd52abb50895a4b6f653cf501a2e3388";>a39863c9f update build to go1.23.7, test go1.24.1 Remove hashicorp/go-multierror dependency and fix CI (https://redirect.github.com/containerd/containerd/pull/11499";>#11499) https://github.com/containerd/containerd/commit/49537b3a75bdcd982e7e26855779b346bb363a54";>49537b3a7 e2e: use the shim bundled with containerd artifact https://github.com/containerd/containerd/commit/fe490b76fd78cc1461f20aab89951be5f88fc454";>fe490b76f Bump up github.com/intel/goresctrl to 0.5.0 https://github.com/containerd/containerd/commit/13fc9d3132fc4c77f6533551049d2d865d4e4b45";>13fc9d313 update containerd/project-checks to 1.2.1 https://github.com/containerd/containerd/commit/585699c94f68649a89b0af46d675d6e998d67ccd";>585699c94 Remove unnecessary joinError unwrap https://github.com/containerd/containerd/commit/4b9df59be202a011c4f65604bbeab75eeb85ab46";>4b9df59be Remove hashicorp/go-multierror go.{mod,sum}: bump CDI deps to v0.8.1. (https://redirect.github.com/containerd/containerd/pull/11422";>#11422) https://github.com/containerd/containerd/commit/5ba28f8dc1d007059ed3eb1a7b55025e72abd525";>5ba28f8dc go.{mod,sum}: bump CDI deps to v0.8.1, re-vendor. CI: arm64-8core-32gb -> ubuntu-24.04-arm (https://redirect.github.com/containerd/containerd/pull/11437";>#11437) https://github.com/containerd/containerd/commit/85f10bd9221f35ef1c2b8ec2d67520f461aa51a0";>85f10bd92 CI: arm64-8core-32gb -> ubuntu-24.04-arm ... (truncated) Commits https://github.com/containerd/containerd/commit/05044ec0a9a75232cad458027ca83437aae3f4da";>05044ec Merge commit from fork https://github.com/containerd/containerd/commit/0b7f2a55f71f04a3655e9576ab22377c3e45f32d";>0b7f2a5 Merge pull request https://redirect.github.com/containerd/containerd/issues/11540";>#11540 from dmcgowan/prepare-1.7.27 https://github.com/containerd/containerd/commit/574a30406e06045a602f8fab59c2e0e725de6e24";>574a304 Merge pull request https://redirect.github.com/containerd/containerd/issues/11538";>#11538 from dmcgowan/backport-11327 https://github.com/containerd/containerd/commit/1be04be6c307a7f67423574ca1b9744e57377753";>1be04be Prepare release notes for v1.7.27 https://github.com/containerd/containerd/commit/82b5c43fed40d1f32e88215a3f0acbaf8cd9af10";>82b5c43 core/remotes: Handle attestations in MakeRefKey https://github.com/containerd/containerd/commit/2c670e79bf19bc7716c8b9f1f82c700ad8233af3";>2c670e7 core/images: Ignore attestations when traversing children https://github.com/containerd/contai
Re: [PR] forbidden-apis: Don't need java.solr.txt file [solr]
github-actions[bot] closed pull request #2866: forbidden-apis: Don't need java.solr.txt file URL: https://github.com/apache/solr/pull/2866 -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[jira] [Comment Edited] (SOLR-17584) Remove code and documentation for "trusted"configsets
[ https://issues.apache.org/jira/browse/SOLR-17584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936313#comment-17936313 ] Abhishek Umarjikar edited comment on SOLR-17584 at 3/17/25 9:24 PM: [~epugh] Added my comment on that. was (Author: JIRAUSER309064): [~epugh] Added my comment on that. [~gerlowskija] wanted some clarity on whether we need to consider the *requestIsTrusted* as part of the trustedness logic. > Remove code and documentation for "trusted"configsets > - > > Key: SOLR-17584 > URL: https://issues.apache.org/jira/browse/SOLR-17584 > Project: Solr > Issue Type: Improvement > Components: configset-api, security >Reporter: Jason Gerlowski >Priority: Minor > Labels: newdev, pull-request-available > Time Spent: 1h > Remaining Estimate: 0h > > SOLR-16781 removed the ability for configsets to load code and resources > using "" directives. > These (now removed) "" directives were the primary motivation for the > trusted/untrusted configset distinction that was evolved over time to > restrict which configs/collections could load external libraries. Now that > they're gone, we should remove code and documentation related to the > trusted/untrusted distinction. > Technically, several components (XSLTUpdateRequestHandler, > ScriptUpdateRequestProcessor) still check configset "trustedness" when being > loaded. But both of these components require enabling a module at startup > time (e.g. {{SOLR_MODULES=scripting}}. And if an administrator has already > put these things on the classpath, layering "trustedness" on top of that > doesn't seem to add any value or security. (Especially given that the > "trustedness" determination itself probably shouldn't be relied on, due to > the number of gaps found in it over the years. In fact this is the main > motivation for the recent removal of in the first place.) -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] Deprecations [solr]
dsmiley merged PR #3159: URL: https://github.com/apache/solr/pull/3159 -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] forbidden-apis: Don't need java.solr.txt file [solr]
github-actions[bot] commented on PR #2866: URL: https://github.com/apache/solr/pull/2866#issuecomment-2731223120 This PR is now closed due to 60 days of inactivity after being marked as stale. Re-opening this PR is still possible, in which case it will be marked as active again. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17699: Fix frange perf regression when sub-clause [solr]
dsmiley merged PR #3259: URL: https://github.com/apache/solr/pull/3259 -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[jira] [Commented] (SOLR-17584) Remove code and documentation for "trusted"configsets
[ https://issues.apache.org/jira/browse/SOLR-17584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936208#comment-17936208 ] Abhishek Umarjikar commented on SOLR-17584: --- Hey [~gerlowskija], Can i work on this? I have seen the isConfigSetTrusted being used with the trusted request. > Remove code and documentation for "trusted"configsets > - > > Key: SOLR-17584 > URL: https://issues.apache.org/jira/browse/SOLR-17584 > Project: Solr > Issue Type: Improvement > Components: configset-api, security >Reporter: Jason Gerlowski >Priority: Minor > Labels: newdev > > SOLR-16781 removed the ability for configsets to load code and resources > using "" directives. > These (now removed) "" directives were the primary motivation for the > trusted/untrusted configset distinction that was evolved over time to > restrict which configs/collections could load external libraries. Now that > they're gone, we should remove code and documentation related to the > trusted/untrusted distinction. > Technically, several components (XSLTUpdateRequestHandler, > ScriptUpdateRequestProcessor) still check configset "trustedness" when being > loaded. But both of these components require enabling a module at startup > time (e.g. {{SOLR_MODULES=scripting}}. And if an administrator has already > put these things on the classpath, layering "trustedness" on top of that > doesn't seem to add any value or security. (Especially given that the > "trustedness" determination itself probably shouldn't be relied on, due to > the number of gaps found in it over the years. In fact this is the main > motivation for the recent removal of in the first place.) -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17706 SolrJ DocumentObjectBinder, make a singleton [solr]
epugh commented on code in PR #3271: URL: https://github.com/apache/solr/pull/3271#discussion_r1998680285 ## solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java: ## @@ -147,7 +147,7 @@ private void testJoins(String toColl, String fromColl, String toDocId, boolean i + fromQ; QueryRequest qr = new QueryRequest(params("collection", toColl, "q", joinQ, "fl", "id,get_s,score")); - QueryResponse rsp = new QueryResponse(client.request(qr), client); + QueryResponse rsp = qr.process(client); Review Comment: I love all these changes, much clearer ## solr/CHANGES.txt: ## @@ -160,6 +160,9 @@ Other Changes thus BinaryQueryResponseWriter is gone. Added TextQueryResponseWriter for the text ones. Stopped using RawResponseWriter when not needed. (David Smiley) +* SOLR-17706: SolrJ DocumentObjectBinder is now a global singleton via an INSTANCE field and that Review Comment: "and is pluggable". Out of curisotiy, do you want to say it is pluggable if it hasn't been tested? ## solr/solrj/src/java/org/apache/solr/client/solrj/beans/DocumentObjectBinder.java: ## @@ -41,13 +42,22 @@ import org.apache.solr.common.util.SuppressForbidden; /** - * A class to map objects to and from solr documents. + * Maps objects to and from Solr documents. Review Comment: nice! ## solr/solrj/src/java/org/apache/solr/client/solrj/response/QueryResponse.java: ## @@ -643,9 +631,7 @@ public List getLimitingFacets() { } public List getBeans(Class type) { -return solrClient == null -? new DocumentObjectBinder().getBeans(type, _results) -: solrClient.getBinder().getBeans(type, _results); +return DocumentObjectBinder.INSTANCE.getBeans(type, _results); Review Comment: much nicer! Love there isn't two ways to get it... ## solr/solrj/src/java/org/apache/solr/client/solrj/response/QueryResponse.java: ## @@ -102,21 +101,10 @@ public class QueryResponse extends SolrResponseBase { private Map _debugMap = null; private Map _explainMap = null; - // utility variable used for automatic binding -- it should not be serialized - private final transient SolrClient solrClient; + public QueryResponse() {} - public QueryResponse() { -solrClient = null; - } - - /** Utility constructor to set the solrServer and namedList */ - public QueryResponse(NamedList res, SolrClient solrClient) { + public QueryResponse(NamedList res) { Review Comment: I love this, but also, does this need to be deprecated and or flagged? Seems like a big method chagne? ## solr/solrj/src/java/org/apache/solr/client/solrj/beans/DocumentObjectBinder.java: ## @@ -126,18 +136,12 @@ private void addChild(Object obj, DocField field, SolrInputDocument doc) { } private List getDocFields(Class clazz) { Review Comment: much shorter, and actually is easier to read... ## solr/solrj/src/java/org/apache/solr/client/solrj/request/QueryRequest.java: ## @@ -62,7 +62,7 @@ public String getPath() { @Override protected QueryResponse createResponse(SolrClient client) { -return new QueryResponse(client); +return new QueryResponse(); Review Comment: does the fact that this takes in a `client` but does not use it need to be documented? Just reading it, I would think "thats weried".. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17043: Remove SolrClient path pattern matching [solr]
jkmuriithi commented on code in PR #3238: URL: https://github.com/apache/solr/pull/3238#discussion_r1999136119 ## solr/solrj/src/java/org/apache/solr/client/solrj/SolrRequest.java: ## @@ -185,8 +193,21 @@ public void setQueryParams(Set queryParams) { this.queryParams = queryParams; } - /** This method defines the type of this Solr request. */ - public abstract String getRequestType(); + /** + * The type of this Solr request. + * + * Pattern matches {@link SolrRequest#getPath} to identify ADMIN requests and other special + * cases. Overriding this method may affect request routing within various clients (i.e. {@link + * CloudSolrClient}). + */ + public SolrRequestType getRequestType() { +String path = getPath(); +if (path != null && CommonParams.ADMIN_PATHS.contains(path)) { Review Comment: The reason this is necessary at the moment is because of this pattern, which is present in several unit tests across the codebase (example from [TestReplicationHandler](https://github.com/apache/solr/blob/af97ef7037aec0c1fb028e173b6d8931cd12588d/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java#L221-L225)): ```java ModifiableSolrParams params = new ModifiableSolrParams(); params.set("action", "reload"); params.set("core", core); params.set("qt", "/admin/cores"); QueryRequest req = new QueryRequest(params); ``` Doing pattern matching on `getPath` allows this type of path manipulation to "just work" with `CloudSolrClient`, at the cost of introducing more complexity into `SolrRequest`. I considered going through and changing each instance of this pattern across all unit tests, but I felt like it might expand the scope of the PR a bit too much. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [I] Zk-setup error [solr-operator]
gerlowskija commented on issue #759: URL: https://github.com/apache/solr-operator/issues/759#issuecomment-2730337103 Thanks for reporting @idjemaoune ! We've fixed this, and it will be available in an 0.9.1 release we're working on shortly! -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17706 SolrJ DocumentObjectBinder, make a singleton [solr]
dsmiley commented on code in PR #3271: URL: https://github.com/apache/solr/pull/3271#discussion_r1999323063 ## solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java: ## @@ -147,7 +147,7 @@ private void testJoins(String toColl, String fromColl, String toDocId, boolean i + fromQ; QueryRequest qr = new QueryRequest(params("collection", toColl, "q", joinQ, "fl", "id,get_s,score")); - QueryResponse rsp = new QueryResponse(client.request(qr), client); + QueryResponse rsp = qr.process(client); Review Comment: cool; in this and similar cases, I was just using SolrJ idiomatically irrespective of this PR's objective. Given a request, if you want it's typed response, you use the `process` method. That's the *right* way to do it. ## solr/solrj/src/java/org/apache/solr/client/solrj/response/QueryResponse.java: ## @@ -102,21 +101,10 @@ public class QueryResponse extends SolrResponseBase { private Map _debugMap = null; private Map _explainMap = null; - // utility variable used for automatic binding -- it should not be serialized - private final transient SolrClient solrClient; + public QueryResponse() {} - public QueryResponse() { -solrClient = null; - } - - /** Utility constructor to set the solrServer and namedList */ - public QueryResponse(NamedList res, SolrClient solrClient) { + public QueryResponse(NamedList res) { Review Comment: Users shouldn't be using this constructor; it's for SolrJ internals. ## solr/CHANGES.txt: ## @@ -160,6 +160,9 @@ Other Changes thus BinaryQueryResponseWriter is gone. Added TextQueryResponseWriter for the text ones. Stopped using RawResponseWriter when not needed. (David Smiley) +* SOLR-17706: SolrJ DocumentObjectBinder is now a global singleton via an INSTANCE field and that Review Comment: I will test it manually before merging ## solr/solrj/src/java/org/apache/solr/client/solrj/request/QueryRequest.java: ## @@ -62,7 +62,7 @@ public String getPath() { @Override protected QueryResponse createResponse(SolrClient client) { -return new QueryResponse(client); +return new QueryResponse(); Review Comment: No. Only one place in Solr does it use it, aside from this spot. So *not* using it is in fact the norm. IMO it shouldn't even be on the `createResponse` API contract in the first place. My other PR created yesterday makes that change. ## solr/solrj/src/java/org/apache/solr/client/solrj/beans/DocumentObjectBinder.java: ## @@ -126,18 +136,12 @@ private void addChild(Object obj, DocField field, SolrInputDocument doc) { } private List getDocFields(Class clazz) { Review Comment: Yeah I "had" to make this change; was begging for it. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17043: Remove SolrClient path pattern matching [solr]
dsmiley commented on code in PR #3238: URL: https://github.com/apache/solr/pull/3238#discussion_r1999342437 ## solr/solrj/src/java/org/apache/solr/client/solrj/SolrRequest.java: ## @@ -185,8 +193,21 @@ public void setQueryParams(Set queryParams) { this.queryParams = queryParams; } - /** This method defines the type of this Solr request. */ - public abstract String getRequestType(); + /** + * The type of this Solr request. + * + * Pattern matches {@link SolrRequest#getPath} to identify ADMIN requests and other special + * cases. Overriding this method may affect request routing within various clients (i.e. {@link + * CloudSolrClient}). + */ + public SolrRequestType getRequestType() { +String path = getPath(); +if (path != null && CommonParams.ADMIN_PATHS.contains(path)) { Review Comment: Those unit tests are then "wrong". QueryRequest is only for a query, not requests generally. It's parameterized response type is QueryResponse holding all the interesting information from `/select`. Note that, unfortunately, some classes in Solr include the word "Query" when it shouldn't but QueryRequest isn't one of them. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17043: Remove SolrClient path pattern matching [solr]
jkmuriithi commented on code in PR #3238: URL: https://github.com/apache/solr/pull/3238#discussion_r1999394354 ## solr/solrj/src/java/org/apache/solr/client/solrj/SolrRequest.java: ## @@ -185,8 +193,21 @@ public void setQueryParams(Set queryParams) { this.queryParams = queryParams; } - /** This method defines the type of this Solr request. */ - public abstract String getRequestType(); + /** + * The type of this Solr request. + * + * Pattern matches {@link SolrRequest#getPath} to identify ADMIN requests and other special + * cases. Overriding this method may affect request routing within various clients (i.e. {@link + * CloudSolrClient}). + */ + public SolrRequestType getRequestType() { +String path = getPath(); +if (path != null && CommonParams.ADMIN_PATHS.contains(path)) { Review Comment: The primary consequence of misclassifying requests is that it changes how the requests are routed in `CloudSolrClient` due to this [code block](https://github.com/apache/solr/blob/af97ef7037aec0c1fb028e173b6d8931cd12588d/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java#L1027-L1134). If an `ADMIN` request is routed like a non-ADMIN request, or vice-versa, the result is a 404 when using this client. My apologies for not being more specific about this. The root cause of the problem seems to be that `ADMIN` endpoint URLs are constructed this way: ```java final var nodeBaseUrl = Utils.getBaseUrlForNodeName(liveNode, urlScheme); requestEndpoints.add(new LBSolrClient.Endpoint(nodeBaseUrl)); ``` while typical endpoint URLs are constructed this way: ```java String joinedInputCollections = StrUtils.join(inputCollections, ','); final var endpoints = preferredNodes.stream() .map(nodeName -> Utils.getBaseUrlForNodeName(nodeName, urlScheme)) .map(nodeUrl -> new LBSolrClient.Endpoint(nodeUrl, joinedInputCollections)) .collect(Collectors.toList()); ``` So request type is being used to determine whether or not to include the name of the collection in the final endpoint URL. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] Test fix: SolrExporterTestBase, port bind [solr]
dsmiley commented on PR #3269: URL: https://github.com/apache/solr/pull/3269#issuecomment-2730498458 will merge tomorrow. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-10998: Obey 'Accept' header in v2 APIs [solr]
gerlowskija commented on PR #3262: URL: https://github.com/apache/solr/pull/3262#issuecomment-2729650633 > a test would be nice Tests added in `V2ApiIntegrationTest` > It's a mystery to me how this PR accomplishes that goal. Really it doesn't. Jersey will parse the "Accept" header out of the box, and choose a "MessageBodyWriter" (akin to our ResponseWriter") based on that. But I'd hidden this support in the past by creating a "response filter" (`MediaTypeOverridingFilter`) to key off of only the 'wt' parameter. So what this PR is really doing is tweaking `MediaTypeOverridingFilter` to be slightly less aggressive. It still obeys "wt" when provided, and makes sure that JSON is the default otherwise. But now it only leans on that "JSON" default when there's no "wt" AND there's no "Accept" header. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] Fix upgrade to v0.9 by updating pod readiness gates [solr-operator]
HoustonPutman merged PR #766: URL: https://github.com/apache/solr-operator/pull/766 -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[jira] [Commented] (SOLR-17518) Refactor out a XmlRequestWriter so that RequestWriter is abstract
[ https://issues.apache.org/jira/browse/SOLR-17518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936277#comment-17936277 ] Pierre Salagnac commented on SOLR-17518: Thanks for pointing this [~dsmiley]. There is indeed a small compilation change, where old code that was creating a new {{RequestWriter}} will now have to create a new {{{}XMLRequestWriter{}}}. That's unclear to me that we require a *strict* compilation backward compatibility between minor versions. When we do Lucene upgrade in Solr for example, we do have to handle some minor changes to get everything compiling with the new version. My understanding was that's acceptable to require some similar change with a new SolrJ version. The required change here would be a very simple renaming, which does not force a SolrJ user to redesign and rewrite some more complex code. There is no feature drop. Maybe that's a good opportunity to have a broader discussion on what is required for backward compatibility and write guidelines? About your comment on the {{CHANGES.txt}} entry, that's fair it does not mention the replacement of the class. I will expand it (assuming we keep the change as it is). > Refactor out a XmlRequestWriter so that RequestWriter is abstract > - > > Key: SOLR-17518 > URL: https://issues.apache.org/jira/browse/SOLR-17518 > Project: Solr > Issue Type: Task > Components: SolrJ >Reporter: David Smiley >Assignee: Pierre Salagnac >Priority: Minor > Labels: newdev, pull-request-available > Fix For: main (10.0), 9.9 > > Time Spent: 2h 20m > Remaining Estimate: 0h > > RequestWriter writes XML; some subclasses write other things. This is > terrible API design; the XML choice should be a subclass, RequestWriter > should be abstract (or an interface). > While we're at this, the XML generation is kind of split into multiple > places; it should be consolidated: UpdateRequest & ClientUtils have XML > generation methods. Those methods should move to the new XmlRequestWriter. > BinaryRequestWriter should probably be final and/or ensure the CBOR one does > not subclass it, which is weird since CBOR != "javabin". > Be sure to note this refactoring in the update notes since SolrJ users will > be impacted. -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17584: Remove code and documentation for "trusted" configsets [solr]
epugh commented on code in PR #3272: URL: https://github.com/apache/solr/pull/3272#discussion_r1999448274 ## solr/core/src/java/org/apache/solr/handler/configsets/ConfigSetAPIBase.java: ## @@ -134,24 +134,9 @@ protected void createBaseNode( throws IOException { if (overwritesExisting) { if (!requestIsTrusted) { -ensureOverwritingUntrustedConfigSet(configName); +throw new SolrException( Review Comment: does this go away? -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] Allow disabling new UI module during builds [solr]
malliaridis commented on PR #3261: URL: https://github.com/apache/solr/pull/3261#issuecomment-2730571960 > Can we not just move away from Kotlin? I am not happy that we have a mixed build. Either all in Kotlin or nothing. When it comes to the build stuff, I think it would be a good idea to move from Groovy to Kotlin, step by step, as stated in [SOLR-17572](https://issues.apache.org/jira/browse/SOLR-17572). The current issues are as far as I know caused by the UI module that makes use of the Kotlin Multiplatform plugin. I also do not like the idea of disabling a module that is in our project, and these changes are not solving the actual issue. :/ -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17584: Remove code and documentation for "trusted" configsets [solr]
epugh commented on PR #3272: URL: https://github.com/apache/solr/pull/3272#issuecomment-2730588857 I triggered the various tests... Can you update the link in the description to have teh JIRA? that is how we link the PR to the JIRA. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] Allow disabling new UI module during builds [solr]
uschindler commented on PR #3261: URL: https://github.com/apache/solr/pull/3261#issuecomment-2730592621 P.S.: At moment the Policeman Jenkins Server is undergoing hardware upgrade (moves to new server at Hetzner data center). It will return back to life later this evening. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] Allow disabling new UI module during builds [solr]
uschindler commented on PR #3261: URL: https://github.com/apache/solr/pull/3261#issuecomment-2730591034 Hi, ok makes sense. Generally I agree to move the Gradle build at some point to kotlin, but I don't see this as an important step. This should be done together with Lucene to again make use of each other. Generally the Lucene (and Solr build) was invented by @dweiss. I don't think that it is a simple replacement, because there is a lot of special thing especially to correctly compile MR-JARS, JavaModule-System builds (not correctly supported in Gradle at all, too much magic that breaks heavily). I was not aware that the issues come from the kotlin compiler for the user code, sorry. If that's the only issue I think the compiler-config in the runtime-java-home support can possibly be adapted to work correct witzh alternative JDKs. The problem is maybe only that some information is not exposed by our hack that's needed by kotlin. Uwe -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] Allow disabling new UI module during builds [solr]
uschindler commented on PR #3261: URL: https://github.com/apache/solr/pull/3261#issuecomment-2730653908 > P.S.: At moment the Policeman Jenkins Server is undergoing hardware upgrade (moves to new server at Hetzner data center). It will return back to life later this evening. And it's back at work :-) While I was writing my latest mail the migration to it's final datacenter location with its old IPv4 adresses and IPv6 subnets was done. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-10998: Obey 'Accept' header in v2 APIs [solr]
dsmiley commented on code in PR #3262: URL: https://github.com/apache/solr/pull/3262#discussion_r1999537597 ## solr/core/src/test/org/apache/solr/handler/V2ApiIntegrationTest.java: ## @@ -139,6 +144,52 @@ public void testWTParam() throws Exception { assertEquals(respString, 0, Utils.getObjectByPath(resp, true, "/responseHeader/status")); } + @Test + public void testObeysWtParameterWhenProvided() throws Exception { +final var httpClient = getRawClient(); +final var listCollRequest = getListCollectionsRequest(); +listCollRequest.setURI( +new URIBuilder(listCollRequest.getURI()).addParameter("wt", "xml").build()); + +final var response = httpClient.execute(listCollRequest); + +assertEquals(200, response.getStatusLine().getStatusCode()); +assertEquals("application/xml", response.getFirstHeader("Content-type").getValue()); + } + + @Test + public void testObeysAcceptHeaderWhenWtParamNotProvided() throws Exception { +final var httpClient = getRawClient(); +final var listCollRequest = getListCollectionsRequest(); +listCollRequest.addHeader("Accept", "application/xml"); + +final var response = httpClient.execute(listCollRequest); + +assertEquals(200, response.getStatusLine().getStatusCode()); +assertEquals("application/xml", response.getFirstHeader("Content-type").getValue()); + } + + @Test + public void testRespondsWithJsonWhenWtAndAcceptAreMissing() throws Exception { +final var httpClient = getRawClient(); +final var listCollRequest = getListCollectionsRequest(); + +final var response = httpClient.execute(listCollRequest); + +assertEquals(200, response.getStatusLine().getStatusCode()); +assertEquals("application/json", response.getFirstHeader("Content-type").getValue()); + } + + private HttpClient getRawClient() { +return ((CloudLegacySolrClient) cluster.getSolrClient()).getHttpClient(); + } Review Comment: We're trying to get away from Apache HttpClient. Can you please try Jetty HttpClient instead? -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17043: Remove SolrClient path pattern matching [solr]
jkmuriithi commented on code in PR #3238: URL: https://github.com/apache/solr/pull/3238#discussion_r1999402882 ## solr/solrj/src/java/org/apache/solr/client/solrj/SolrRequest.java: ## @@ -185,8 +193,21 @@ public void setQueryParams(Set queryParams) { this.queryParams = queryParams; } - /** This method defines the type of this Solr request. */ - public abstract String getRequestType(); + /** + * The type of this Solr request. + * + * Pattern matches {@link SolrRequest#getPath} to identify ADMIN requests and other special + * cases. Overriding this method may affect request routing within various clients (i.e. {@link + * CloudSolrClient}). + */ + public SolrRequestType getRequestType() { +String path = getPath(); +if (path != null && CommonParams.ADMIN_PATHS.contains(path)) { Review Comment: Some pattern matching is necessary here to make the APIs work as intended. Moving that logic to `SolrRequest` seemed like a good idea when I first made this change, but I am kind of second-guessing that now. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17584: Remove code and documentation for "trusted" configsets [solr]
epugh commented on code in PR #3272: URL: https://github.com/apache/solr/pull/3272#discussion_r1999447867 ## solr/core/src/java/org/apache/solr/handler/configsets/CloneConfigSet.java: ## @@ -64,8 +64,8 @@ public SolrJerseyResponse cloneExistingConfigSet(CloneConfigsetRequestBody reque } if (!DISABLE_CREATE_AUTH_CHECKS -&& !isTrusted(solrQueryRequest.getUserPrincipal(), coreContainer.getAuthenticationPlugin()) -&& configSetService.isConfigSetTrusted(requestBody.baseConfigSet)) { +&& !isTrusted( Review Comment: does `!isTrusted` staty? -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
[jira] [Commented] (SOLR-17584) Remove code and documentation for "trusted"configsets
[ https://issues.apache.org/jira/browse/SOLR-17584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17936283#comment-17936283 ] Eric Pugh commented on SOLR-17584: -- [~aumarjikar] thanks for the PR! i put some feedback in. > Remove code and documentation for "trusted"configsets > - > > Key: SOLR-17584 > URL: https://issues.apache.org/jira/browse/SOLR-17584 > Project: Solr > Issue Type: Improvement > Components: configset-api, security >Reporter: Jason Gerlowski >Priority: Minor > Labels: newdev, pull-request-available > Time Spent: 40m > Remaining Estimate: 0h > > SOLR-16781 removed the ability for configsets to load code and resources > using "" directives. > These (now removed) "" directives were the primary motivation for the > trusted/untrusted configset distinction that was evolved over time to > restrict which configs/collections could load external libraries. Now that > they're gone, we should remove code and documentation related to the > trusted/untrusted distinction. > Technically, several components (XSLTUpdateRequestHandler, > ScriptUpdateRequestProcessor) still check configset "trustedness" when being > loaded. But both of these components require enabling a module at startup > time (e.g. {{SOLR_MODULES=scripting}}. And if an administrator has already > put these things on the classpath, layering "trustedness" on top of that > doesn't seem to add any value or security. (Especially given that the > "trustedness" determination itself probably shouldn't be relied on, due to > the number of gaps found in it over the years. In fact this is the main > motivation for the recent removal of in the first place.) -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17584: Remove code and documentation for "trusted" configsets [solr]
dsmiley commented on PR #3272: URL: https://github.com/apache/solr/pull/3272#issuecomment-2730605024 when posting a PR, please update the JIRA link. As to the rest of the PR template; remove it if you aren't going to fill it out (no judgement from me) -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [PR] SOLR-17682: Rename BinaryResponseWriter to JavaBinResponseWriter [solr]
dsmiley commented on PR #3267: URL: https://github.com/apache/solr/pull/3267#issuecomment-2730624610 I'll merge in a couple days. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org
Re: [I] Scaling Down Causes "Down" Replicas [solr-operator]
jstaf commented on issue #754: URL: https://github.com/apache/solr-operator/issues/754#issuecomment-2730822715 I saw something similar happen when running out of disk space. Basically solr-operator (or something) started continuously adding replicas which broke a few collections badly enough they needed to be restored from backups. -- 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. To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org