here is the full printstack in log 663 14-02-10 17:59:12,602 ERROR ActiveMQ Session Task-2 com.founder.extractor.ExtractWorker end index (1) must not be less than start index (7) 664 com.salesforce.phoenix.exception.PhoenixIOException: end index (1) must not be less than start index (7) 665 at com.salesforce.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:107) 666 at com.salesforce.phoenix.iterate.ParallelIterators.getIterators(ParallelIterators.java:217) 667 at com.salesforce.phoenix.iterate.MergeSortResultIterator.getIterators(MergeSortResultIterator.java:58) 668 at com.salesforce.phoenix.iterate.MergeSortResultIterator.minIterator(MergeSortResultIterator.java:73) 669 at com.salesforce.phoenix.iterate.MergeSortResultIterator.next(MergeSortResultIterator.java:100) 670 at com.salesforce.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:741) 671 at com.founder.dbtool.DbTools.getHtml(DbTools.java:616) 672 at com.founder.extractor.ExtractWorker.doWork(ExtractWorker.java:153) 673 at com.founder.extractor.ExtractWorker.onMessage(ExtractWorker.java:246) 674 at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1361) 675 at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131) 676 at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202) 677 at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129) 678 at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47) 679 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 680 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 681 at java.lang.Thread.run(Thread.java:722) 682 Caused by: java.lang.IndexOutOfBoundsException: end index (1) must not be less than start index (7) 683 at com.google.common.base.Preconditions.checkPositionIndexes(Preconditions.java:388) 684 at com.google.common.collect.ImmutableList.subList(ImmutableList.java:362) 685 at com.google.common.collect.ImmutableList.subList(ImmutableList.java:62) 686 at com.salesforce.phoenix.filter.SkipScanFilter.intersect(SkipScanFilter.java:225) 687 at com.salesforce.phoenix.filter.SkipScanFilter.intersect(SkipScanFilter.java:153) 688 at com.salesforce.phoenix.util.ScanUtil.intersectScanRange(ScanUtil.java:140) 689 at com.salesforce.phoenix.iterate.ParallelIterators.getIterators(ParallelIterators.java:172) 690 ... 15 more
On Tue, Feb 11, 2014 at 9:08 AM, Li Li <[email protected]> wrote: > 1. DDL > CREATE TABLE vc.webpage ( > host VARCHAR NOT NULL, > url VARCHAR NOT NULL, > url_type TINYINT, > c.html VARCHAR, > content VARCHAR, > title VARCHAR, > ext_title VARCHAR, > author VARCHAR, > pub_time DATE, > crawl_time DATE, > ext_time DATE > CONSTRAINT pk PRIMARY KEY(host, url) > ) > VERSION=1, > c.VERSION=1, > SALT_BUCKETS=8 > ; > 2. Phoenix 2.2.2 > 3. HBase 0.94.11, r1513697 > 4. test case, I can't find because I haven't log the value of url. I > think it's a concurrent problem because there are many threads read > and write this table(each thread has its own PhoenixConnection) > > On Tue, Feb 11, 2014 at 12:44 AM, James Taylor <[email protected]> wrote: >> Please include your DDL statement and Phoenix and HBase client and server >> version. Even better, if you can put together at end-to-end test case, >> that's the best way to get to the bottom of the issue quickly. >> Thanks! >> James >> >> Thanks, >> >> >> On Monday, February 10, 2014, Li Li <[email protected]> wrote: >>> >>> what's wrong with it? >>> exception stack: >>> com.salesforce.phoenix.exception.PhoenixIOException: end index (1) >>> must not be less than start index (7) >>> at >>> com.salesforce.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:107) >>> at >>> com.salesforce.phoenix.iterate.ParallelIterators.getIterators(ParallelIterators.java:217) >>> at >>> com.salesforce.phoenix.iterate.MergeSortResultIterator.getIterators(MergeSortResultIterator.java:58) >>> at >>> com.salesforce.phoenix.iterate.MergeSortResultIterator.minIterator(MergeSortResultIterator.java:73) >>> at >>> com.salesforce.phoenix.iterate.MergeSortResultIterator.next(MergeSortResultIterator.java:100) >>> at >>> com.salesforce.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:741) >>> >>> my code: >>> public static String getHtml(PhoenixConnection conn,String url) throws >>> SQLException, MalformedURLException{ >>> PreparedStatement pstmt=null; >>> ResultSet rs=null; >>> try{ >>> String host=getReversedHostFromUrl(url); >>> pstmt=conn.prepareStatement("SELECT html FROM vc.webpage where host=? >>> and url=?"); >>> pstmt.setString(1, host); >>> pstmt.setString(2, url); >>> rs=pstmt.executeQuery(); >>> if(rs.next()) return rs.getString(1); >>> else return null; >>> }finally{ >>> DbTools.closeAll(null, pstmt, rs); >>> } >>> }
