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

Shalin Shekhar Mangar commented on SOLR-5661:
---------------------------------------------

{quote}
If you have multiple shard for one collection, send the query url for max 
integer rowid, it can easy replicate.
Caused by: java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at org.apache.lucene.util.PriorityQueue.<init>(PriorityQueue.java:64)
at org.apache.lucene.util.PriorityQueue.<init>(PriorityQueue.java:37)
at 
org.apache.solr.handler.component.ShardFieldSortedHitQueue.<init>(ShardDoc.java:113)
at 
org.apache.solr.handler.component.QueryComponent.mergeIds(QueryComponent.java:790)
{quote}

Raintung, please correct me if I am wrong but the max integer value is being 
used in the constructor only because you have explicitly asked for that many 
rows? Solr doesn't pass such a big value to the PriorityQueue constructor by 
itself.

Also, I think the fix committed to Lucene takes care of the problem on Solr's 
side as well. Even if we implement a check on Solr's side, the error message 
can't be any different.

> PriorityQueue has OOM (Requested array size exceeds VM limit) issue
> -------------------------------------------------------------------
>
>                 Key: SOLR-5661
>                 URL: https://issues.apache.org/jira/browse/SOLR-5661
>             Project: Solr
>          Issue Type: Bug
>          Components: contrib - Solr Cell (Tika extraction)
>    Affects Versions: 4.3.1, 4.4, 4.5, 4.5.1, 4.6
>         Environment: JDK 7 
>            Reporter: Raintung Li
>            Assignee: Michael McCandless
>             Fix For: 5.0, 4.7
>
>         Attachments: patch-5661.txt
>
>
> It look like JDK7 change the design for max_array_length logic, it isn't 
> max_jint, and it should be  max_jint - header_size(type).
> If you deliver the Integer.MaxValue to create the PriorityQueue and have 
> enough memory, you will find it is ok in JVM6 but not work in JVM7.
>  
> JVM7 will throw OOM error while do array rang checking.
> It should the compatible issue between JVM6 and JVM7.
> Maybe need protect in the code logic, throw OOM look like big issues for 
> customer.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to