[jira] [Commented] (SOLR-7954) Exception while using {!cardinality=1.0}.

2015-08-24 Thread Modassar Ather (JIRA)

[ 
https://issues.apache.org/jira/browse/SOLR-7954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14708909#comment-14708909
 ] 

Modassar Ather commented on SOLR-7954:
--

I tested following schema with the same data in field and field2. Both 
reproduced the problem. Then I tried to find if it is value in cardinality 
which is causing the issue. I tried with 10 to 12 document and both the 
field returned cardinality but after increasing it to around 15 it caused 
the exception.
{noformat}
?xml version=1.0 encoding=UTF-8 ?
schema name=collection version=1.5

types
fieldType name=string class=solr.StrField sortMissingLast=true 
stored=false omitNorms=true/
fieldType name=string_dv class=solr.StrField sortMissingLast=true 
stored=false indexed=false docValues=true/
fieldType name=long class=solr.TrieLongField precisionStep=0 
omitNorms=true positionIncrementGap=0 stored=false/
/types

fields
field name=field type=string_dv   multiValued=true /
field name=field1   type=string stored=true /
field name=field2   type=string multiValued=true /
field name=versiontype=long   stored=true /
field name=colidtype=string  stored=true /
/fields
uniqueKeycolid/uniqueKey
/schema
{noformat}

Following is the method to index data.
{noformat}
public void index() throws SolrServerException, IOException {
CloudSolrClient s = new CloudSolrClient(ZKHOST:ZKPORT);
int count = 0;
s.setDefaultCollection(COLECTION);
ListSolrInputDocument documents = new ArrayList();
for (int i = 1; i = 100; i++) {
SolrInputDocument doc = new SolrInputDocument();
doc.addField(field1, i);
doc.addField(colid, val!+i+!-+ref+i);
doc.addField(field, DATA+(12345+i));
doc.addField(field2, DATA+(12345+i));
documents.add(doc);
if((documents.size() % 1) == 0){
count = count + 1;
s.add(documents);
System.out.println(System.currentTimeMillis() +  - Indexed 
document #  + NumberFormat.getInstance().format(count));
documents = new ArrayList();
}
}


System.out.println(Comitting.);
s.commit(true, true);

System.out.println(Optimizing.);
s.optimize(true, true, 1);
s.close();
System.out.println(Done.);
}
{noformat}

 Exception while using {!cardinality=1.0}.
 -

 Key: SOLR-7954
 URL: https://issues.apache.org/jira/browse/SOLR-7954
 Project: Solr
  Issue Type: Bug
Affects Versions: 5.2.1
 Environment: SolrCloud 4 node cluster.
 Ubuntu 12.04
 OS Type 64 bit
Reporter: Modassar Ather
Assignee: Hoss Man

 Following exception is thrown for the query : 
 bq. q=field1:*stats=truestats.field={!cardinality=1.0}field.
 The exception is not seen once the cardinality is set to 0.9 or less.
 The field is docValues enabled and indexed=false. The same exception I tried 
 to reproduce on non docValues field but could not.
 ERROR - 2015-08-11 12:24:00.222; [core] org.apache.solr.common.SolrException; 
 null:java.lang.ArrayIndexOutOfBoundsException: 3
 at 
 net.agkn.hll.serialization.BigEndianAscendingWordSerializer.writeWord(BigEndianAscendingWordSerializer.java:152)
 at net.agkn.hll.util.BitVector.getRegisterContents(BitVector.java:247)
 at net.agkn.hll.HLL.toBytes(HLL.java:917)
 at net.agkn.hll.HLL.toBytes(HLL.java:869)
 at 
 org.apache.solr.handler.component.AbstractStatsValues.getStatsValues(StatsValuesFactory.java:348)
 at 
 org.apache.solr.handler.component.StatsComponent.convertToResponse(StatsComponent.java:151)
 at 
 org.apache.solr.handler.component.StatsComponent.process(StatsComponent.java:62)
 at 
 org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:255)
 at 
 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
 at org.apache.solr.core.SolrCore.execute(SolrCore.java:2064)
 at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
 at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:450)
 at 
 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227)
 at 
 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
 at 
 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
 at 
 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
 at 

[jira] [Commented] (SOLR-7954) Exception while using {!cardinality=1.0}.

2015-08-24 Thread Hoss Man (JIRA)

[ 
https://issues.apache.org/jira/browse/SOLR-7954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14710272#comment-14710272
 ] 

Hoss Man commented on SOLR-7954:


bq. I tested following schema with the same data in field and field2. Both 
reproduced the problem. 

Ok good -- that means the problem is _not_ actually dependent on docValues or 
not -- which was the most confusing and suprising part of your initial bug 
report.

bq. Then I tried to find if it is value in cardinality which is causing the 
issue. I tried with 10 to 12 document and both the field returned 
cardinality but after increasing it to around 15 it caused the exception.

ok, so somewhere arround 150K docs is the sweetspot.



Reviewing the code you posted, i noticed a few things:

1) every doc gets a unique value in the field you are computing stats on
2) your query matches all docs
3) because of how your uniqueKey is defined using composite routing keys (!) 
every doc will wind up in the same shard.

the combination of all of these means that ulitmately what's causing problems 
is:
* building an HLL data struc using the max possible log2m  regwidth opts 
(that's what cardinality=1.0 does)
* adding ~150K unique(ish) hash values to the HLL
* serializing the HLL to bytes (which is what happens in a distributed query to 
coordinate)

based on that, i was able to create a unit test that demonstrates the same 
underlying ArrayIndexOutOfBoundsException which i'll attach shortly -- still 
haven't dug in enough to udnerstand hte cause.

(NOTE: since Solr 5.2.1, we've forked the HLL and imported it directly into the 
org.apache.solr.util.hll package, but the basic structure/functionality of the 
various classes is still the same)

 Exception while using {!cardinality=1.0}.
 -

 Key: SOLR-7954
 URL: https://issues.apache.org/jira/browse/SOLR-7954
 Project: Solr
  Issue Type: Bug
Affects Versions: 5.2.1
 Environment: SolrCloud 4 node cluster.
 Ubuntu 12.04
 OS Type 64 bit
Reporter: Modassar Ather
Assignee: Hoss Man

 Following exception is thrown for the query : 
 bq. q=field1:*stats=truestats.field={!cardinality=1.0}field.
 The exception is not seen once the cardinality is set to 0.9 or less.
 The field is docValues enabled and indexed=false. The same exception I tried 
 to reproduce on non docValues field but could not.
 ERROR - 2015-08-11 12:24:00.222; [core] org.apache.solr.common.SolrException; 
 null:java.lang.ArrayIndexOutOfBoundsException: 3
 at 
 net.agkn.hll.serialization.BigEndianAscendingWordSerializer.writeWord(BigEndianAscendingWordSerializer.java:152)
 at net.agkn.hll.util.BitVector.getRegisterContents(BitVector.java:247)
 at net.agkn.hll.HLL.toBytes(HLL.java:917)
 at net.agkn.hll.HLL.toBytes(HLL.java:869)
 at 
 org.apache.solr.handler.component.AbstractStatsValues.getStatsValues(StatsValuesFactory.java:348)
 at 
 org.apache.solr.handler.component.StatsComponent.convertToResponse(StatsComponent.java:151)
 at 
 org.apache.solr.handler.component.StatsComponent.process(StatsComponent.java:62)
 at 
 org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:255)
 at 
 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
 at org.apache.solr.core.SolrCore.execute(SolrCore.java:2064)
 at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
 at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:450)
 at 
 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227)
 at 
 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
 at 
 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
 at 
 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
 at 
 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
 at 
 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
 at 
 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
 at 
 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
 at 
 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
 at 
 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
 at 
 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
 at 
 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
 at 
 org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
 at 
 

[jira] [Commented] (SOLR-7954) Exception while using {!cardinality=1.0}.

2015-08-21 Thread Modassar Ather (JIRA)

[ 
https://issues.apache.org/jira/browse/SOLR-7954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14706525#comment-14706525
 ] 

Modassar Ather commented on SOLR-7954:
--

Following test method can be used to add data using which the exception can be 
reproduced. Please do the necessary changes.
Change ZKHOST:ZKPORT to point to zkhost available and COLECTION to the 
available collection.
{noformat}
public void index() throws SolrServerException, IOException {
CloudSolrClient s = new CloudSolrClient(ZKHOST:ZKPORT);
int count = 0;
s.setDefaultCollection(COLECTION);
ListSolrInputDocument documents = new ArrayList();
for (int i = 1; i = 100; i++) {
SolrInputDocument doc = new SolrInputDocument();
doc.addField(field1, i);
doc.addField(colid, val!+i+!-+ref+i);
doc.addField(field, DATA+(12345+i));
documents.add(doc);
if((documents.size() % 1) == 0){
count = count + 1;
s.add(documents);
System.out.println(System.currentTimeMillis() +  - Indexed 
document #  + NumberFormat.getInstance().format(count));
documents = new ArrayList();
}
}


System.out.println(Comitting.);
s.commit(true, true);

System.out.println(Optimizing.);
s.close();
System.out.println(Done.);
}
{noformat}

 Exception while using {!cardinality=1.0}.
 -

 Key: SOLR-7954
 URL: https://issues.apache.org/jira/browse/SOLR-7954
 Project: Solr
  Issue Type: Bug
Affects Versions: 5.2.1
 Environment: SolrCloud 4 node cluster.
 Ubuntu 12.04
 OS Type 64 bit
Reporter: Modassar Ather

 Following exception is thrown for the query : 
 bq. q=field:querystats=truestats.field={!cardinality=1.0}field.
 The exception is not seen once the cardinality is set to 0.9 or less.
 The field is docValues enabled and indexed=false. The same exception I tried 
 to reproduce on non docValues field but could not.
 ERROR - 2015-08-11 12:24:00.222; [core] org.apache.solr.common.SolrException; 
 null:java.lang.ArrayIndexOutOfBoundsException: 3
 at 
 net.agkn.hll.serialization.BigEndianAscendingWordSerializer.writeWord(BigEndianAscendingWordSerializer.java:152)
 at net.agkn.hll.util.BitVector.getRegisterContents(BitVector.java:247)
 at net.agkn.hll.HLL.toBytes(HLL.java:917)
 at net.agkn.hll.HLL.toBytes(HLL.java:869)
 at 
 org.apache.solr.handler.component.AbstractStatsValues.getStatsValues(StatsValuesFactory.java:348)
 at 
 org.apache.solr.handler.component.StatsComponent.convertToResponse(StatsComponent.java:151)
 at 
 org.apache.solr.handler.component.StatsComponent.process(StatsComponent.java:62)
 at 
 org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:255)
 at 
 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
 at org.apache.solr.core.SolrCore.execute(SolrCore.java:2064)
 at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
 at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:450)
 at 
 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227)
 at 
 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
 at 
 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
 at 
 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
 at 
 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
 at 
 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
 at 
 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
 at 
 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
 at 
 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
 at 
 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
 at 
 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
 at 
 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
 at 
 org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
 at 
 org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
 at 
 

[jira] [Commented] (SOLR-7954) Exception while using {!cardinality=1.0}.

2015-08-21 Thread Modassar Ather (JIRA)

[ 
https://issues.apache.org/jira/browse/SOLR-7954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14706280#comment-14706280
 ] 

Modassar Ather commented on SOLR-7954:
--

The schema used is as follows.

?xml version=1.0 encoding=UTF-8 ?
schema name=collection version=1.5

 types
fieldType name=string class=solr.StrField sortMissingLast=true 
stored=false omitNorms=true/
fieldType name=string_dv class=solr.StrField 
sortMissingLast=true stored=false indexed=false docValues=true/
fieldType name=long class=solr.TrieLongField precisionStep=0 
omitNorms=true positionIncrementGap=0 stored=false/
/types

fields
field name=field1  type=string stored=true  /
field name=field   type=string_dv  multiValued=true /
field name=_version_   type=long   stored=true  /
field name=colid   type=string stored=true  /
/fields
uniqueKeycolid/uniqueKey
/schema

 Exception while using {!cardinality=1.0}.
 -

 Key: SOLR-7954
 URL: https://issues.apache.org/jira/browse/SOLR-7954
 Project: Solr
  Issue Type: Bug
Affects Versions: 5.2.1
Reporter: Modassar Ather

 Following exception is thrown for the query : 
 bq. q=field:querystats=truestats.field={!cardinality=1.0}field.
 The exception is not seen once the cardinality is set to 0.9 or less.
 The field is docValues enabled and indexed=false. The same exception I tried 
 to reproduce on non docValues field but could not.
 ERROR - 2015-08-11 12:24:00.222; [core] org.apache.solr.common.SolrException; 
 null:java.lang.ArrayIndexOutOfBoundsException: 3
 at 
 net.agkn.hll.serialization.BigEndianAscendingWordSerializer.writeWord(BigEndianAscendingWordSerializer.java:152)
 at net.agkn.hll.util.BitVector.getRegisterContents(BitVector.java:247)
 at net.agkn.hll.HLL.toBytes(HLL.java:917)
 at net.agkn.hll.HLL.toBytes(HLL.java:869)
 at 
 org.apache.solr.handler.component.AbstractStatsValues.getStatsValues(StatsValuesFactory.java:348)
 at 
 org.apache.solr.handler.component.StatsComponent.convertToResponse(StatsComponent.java:151)
 at 
 org.apache.solr.handler.component.StatsComponent.process(StatsComponent.java:62)
 at 
 org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:255)
 at 
 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
 at org.apache.solr.core.SolrCore.execute(SolrCore.java:2064)
 at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
 at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:450)
 at 
 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227)
 at 
 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
 at 
 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
 at 
 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
 at 
 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
 at 
 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
 at 
 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
 at 
 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
 at 
 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
 at 
 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
 at 
 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
 at 
 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
 at 
 org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
 at 
 org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
 at 
 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
 at org.eclipse.jetty.server.Server.handle(Server.java:497)
 at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
 at 
 org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
 at 
 org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
 at 
 org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
 at 
 org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
 at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To