| Issue 1427: | status query cannot be used with OR | |
| 8 people starred this issue and may be notified of changes. | Back to list |
status:open OR owner:user returns only status:open results, any query of the form (<query>) or status:<status> fails. [2012-06-07 11:26:03,862] WARN /review : Error in allQueryNext com.google.gwtorm.server.OrmException: No ChangeDataSource: status:merged at com.google.gerrit.server.query.change.OrSource.read(OrSource.java:49) at com.google.gerrit.server.query.change.AndSource.read(AndSource.java:94) at com.google.gerrit.httpd.rpc.ChangeListServiceImpl.searchQuery(ChangeListServiceImpl.java:171) at com.google.gerrit.httpd.rpc.ChangeListServiceImpl.access$100(ChangeListServiceImpl.java:57) at com.google.gerrit.httpd.rpc.ChangeListServiceImpl$6.query(ChangeListServiceImpl.java:138) at com.google.gerrit.httpd.rpc.ChangeListServiceImpl$QueryNext.run(ChangeListServiceImpl.java:349) at com.google.gerrit.httpd.rpc.ChangeListServiceImpl$QueryNext.run(ChangeListServiceImpl.java:331) at com.google.gerrit.httpd.rpc.BaseServiceImplementation.run(BaseServiceImplementation.java:63) at com.google.gerrit.httpd.rpc.ChangeListServiceImpl.allQueryNext(ChangeListServiceImpl.java:134) at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.gwtjsonrpc.server.MethodHandle.invoke(MethodHandle.java:91) at com.google.gwtjsonrpc.server.JsonServlet.doService(JsonServlet.java:379) at com.google.gwtjsonrpc.server.JsonServlet.service(JsonServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263) at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178) at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:76) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) at com.google.gerrit.httpd.RequestCleanupFilter.doFilter(RequestCleanupFilter.java:54) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168) at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58) at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1322) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:473) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:921) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:403) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:856) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114) at org.eclipse.jetty.server.Server.handle(Server.java:352) at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:596) at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1069) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450) at java.lang.Thread.run(Unknown Source)
Jun 7, 2012
#1
org...@gmail.com
Jun 7, 2012
Same for is:watched OR <something>
Jun 7, 2012
In the case of "status:open OR owner:user" the server needs to perform two index scans, one over status:open (which it apparently was able to do ) and another over "owner:user". There isn't really an index over just owner, status leads owner in the index if I remember correctly so the server defaults to using only the open changes for the owner... effectively rewriting the query to be "status:open OR (status:open owner:user)". "No ChangeDataSource: status:merged"... this is the server saying it can't figure out how to traverse through the merged changes without other operators to assist it in selecting an index on the changes table. Change search is limited to only the indexes the server knows about in the database, and some limited permutations of them where one index is used as the driver for the query, and the server filters the remainder of the results in RAM after they come back from the database. Until Gerrit moves to a full text index, what you can express in a query will be limited.
Status:
Accepted
Feb 26, 2013
Issue 1807 has been merged into this issue.
Aug 19, 2014
We are seeing this in 2.8.5. We get a server error with this query: http://review.whamcloud.com/#/q/%28%28is:open+AND+project:fs/lustre-release%29+OR+%28is:closed+AND+project:fs/lustre-release%29%29+AND+message:%22LU-56+%22+AND+-status:abandoned,n,z [2014-08-19 18:24:17,250] ERROR com.google.gerrit.httpd.restapi.RestApiServlet : Error in GET /changes/?q=((is:open+AND+project:fs/lustre-release)+OR+(is:closed+AND+project:fs/lustre-release))+AND+message:%22LU-56+%22+AND+-status:abandoned&n=100&O=1 com.google.gwtorm.server.OrmException: No ChangeDataSource: status:new |
|
| ► Sign in to add a comment |