Thanks for testing this, Youngwoo. I've filed PHOENIX-2731 for this. We'll
roll a new RC this morning and we'll include a fix for that as well. Would
be great if you could give the new RC a try.

    James

On Wed, Mar 2, 2016 at 3:38 AM, 김영우 (YoungWoo Kim) <[email protected]> wrote:

> James,
>
> I'm trying to evaluate the new RC4. I built rpms from current master and
> then installed the artifacts. as you may know, my env was installed RC2,
> that is, I'm upgrading to RC4 from RC2. Unfortunately when I try to connect
> to Phoenix through QueryServer after restarting HBase and QueryServer, I'm
> stuck in errors from RC4 as follows:
>
> java.lang.RuntimeException: java.sql.SQLException: ERROR 1015 (42J04):
> Cannot add column to table when the last PK column is of type VARBINARY or
> ARRAY. columnName=GUIDE_POST_KEY
> at
> org.apache.calcite.avatica.jdbc.JdbcMeta.openConnection(JdbcMeta.java:585)
> at
> org.apache.calcite.avatica.remote.LocalService.apply(LocalService.java:263)
> at
>
> org.apache.calcite.avatica.remote.Service$OpenConnectionRequest.accept(Service.java:1642)
> at
>
> org.apache.calcite.avatica.remote.Service$OpenConnectionRequest.accept(Service.java:1625)
> at
>
> org.apache.calcite.avatica.remote.AbstractHandler.apply(AbstractHandler.java:102)
> at
>
> org.apache.calcite.avatica.remote.ProtobufHandler.apply(ProtobufHandler.java:38)
> at
>
> org.apache.calcite.avatica.server.AvaticaProtobufHandler.handle(AvaticaProtobufHandler.java:68)
> at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
> 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:245)
> 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)
> Caused by: java.sql.SQLException: ERROR 1015 (42J04): Cannot add column to
> table when the last PK column is of type VARBINARY or ARRAY.
> columnName=GUIDE_POST_KEY
> at
>
> org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:422)
> at
>
> org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)
> at
>
> org.apache.phoenix.schema.MetaDataClient.addColumn(MetaDataClient.java:2625)
> at
>
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableAddColumnStatement$1.execute(PhoenixStatement.java:1021)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:338)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:326)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at
>
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:325)
> at
>
> org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1326)
> at
>
> org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumn(ConnectionQueryServicesImpl.java:2214)
> at
>
> org.apache.phoenix.query.ConnectionQueryServicesImpl.addColumnsIfNotExists(ConnectionQueryServicesImpl.java:2242)
> at
>
> org.apache.phoenix.query.ConnectionQueryServicesImpl.access$500(ConnectionQueryServicesImpl.java:211)
> at
>
> org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2440)
> at
>
> org.apache.phoenix.query.ConnectionQueryServicesImpl$13.call(ConnectionQueryServicesImpl.java:2248)
> at
>
> org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:78)
> at
>
> org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2248)
> at
>
> org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:233)
> at
>
> org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:135)
> at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:202)
> at java.sql.DriverManager.getConnection(DriverManager.java:571)
> at java.sql.DriverManager.getConnection(DriverManager.java:187)
> at
> org.apache.calcite.avatica.jdbc.JdbcMeta.openConnection(JdbcMeta.java:582)
> ... 15 more
>
> Looks like upgrading the SYSTEM tables does not work for my case. the
> 'GUIDE_POST_KEY' column already exists.
>
> After that, I removed the SYSTEM.STATS table to connect Phoenix:
> - Disable the SYSTEM.STATS from HBase shell
> - Drop the SYSTEM.STATS on HBase
> - Delete rows related SYSTEM.STATS from SYSTEM.CATALOG
>
> Removing the SYSTEM.STATS table solves the connection problem. As of now, I
> can connect Phoenix in using QueryServer and also can run MR-based
> bulkload! but another problem popped up. I expected that when I run 'UPDATE
> STATISTICS' statement, Phoenix will create new SYSTEM.STATS table because
> there is no SYSTEM.STATS on HBase and Phoenix CATALOG but updating
> statistics fails:
>
> java.lang.RuntimeException:
> org.apache.phoenix.schema.TableNotFoundException: ERROR 1012 (42M03): Table
> undefined. tableName=SYSTEM.STATS
> at org.apache.calcite.avatica.jdbc.JdbcMeta.propagate(JdbcMeta.java:651)
> at
>
> org.apache.calcite.avatica.jdbc.JdbcMeta.prepareAndExecute(JdbcMeta.java:715)
> at
> org.apache.calcite.avatica.remote.LocalService.apply(LocalService.java:186)
> at
>
> org.apache.calcite.avatica.remote.Service$PrepareAndExecuteRequest.accept(Service.java:868)
> at
>
> org.apache.calcite.avatica.remote.Service$PrepareAndExecuteRequest.accept(Service.java:842)
> at
>
> org.apache.calcite.avatica.remote.AbstractHandler.apply(AbstractHandler.java:102)
> at
>
> org.apache.calcite.avatica.remote.ProtobufHandler.apply(ProtobufHandler.java:38)
> at
>
> org.apache.calcite.avatica.server.AvaticaProtobufHandler.handle(AvaticaProtobufHandler.java:68)
> at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
> 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:245)
> 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)
> Caused by: org.apache.phoenix.schema.TableNotFoundException: ERROR 1012
> (42M03): Table undefined. tableName=SYSTEM.STATS
> at
>
> org.apache.phoenix.compile.FromCompiler$BaseColumnResolver.createTableRef(FromCompiler.java:414)
> at
>
> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:285)
> at
>
> org.apache.phoenix.compile.FromCompiler.getResolverForQuery(FromCompiler.java:186)
> at
>
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:392)
> at
>
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableSelectStatement.compilePlan(PhoenixStatement.java:373)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:266)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:261)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at
>
> org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:260)
> at
>
> org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:1313)
> at
>
> org.apache.phoenix.schema.MetaDataClient.updateStatisticsInternal(MetaDataClient.java:919)
> at
>
> org.apache.phoenix.schema.MetaDataClient.updateStatistics(MetaDataClient.java:857)
> at
>
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpdateStatisticsStatement$1.execute(PhoenixStatement.java:994)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:338)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:326)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at
>
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:325)
> at
>
> org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1345)
> at
>
> org.apache.calcite.avatica.jdbc.JdbcMeta.prepareAndExecute(JdbcMeta.java:695)
> ... 15 more
>
>
> Updating the statistics creates SYSTEM.STATS table on HBase but does not
> update SYSTEM.CATALOG so I run into a problem like above. I'm stuck in this
> status. Should I create the SYSTEM.STATS manually? if yes, please point me
> out the DDL for the STATS table. IMO, It would be nice to have the way
> upgrading SYSTEM.STATS gracefully (and sometimes manually)
>
> At this point, Should I downgrade the system catalogs? Is it possible? If
> not, Can I create the SYSTEM.STATS table manually?
>
> Thanks,
>
> Youngwoo
>
> On Tue, Mar 1, 2016 at 5:11 AM, James Taylor <[email protected]>
> wrote:
>
> > Hello Everyone,
> >
> > This is a call for a vote on Apache Phoenix 4.7.0-HBase-1.1 RC4. This is
> > the next minor release of Phoenix 4, compatible with Apache HBase 1.1+.
> The
> > release includes both a source-only release and a convenience binary
> > release.
> >
> > This release has feature parity with our other pending 4.7.0 releases and
> > includes the following improvements:
> > - ACID transaction support (beta) [1]
> > - Statistics improvements [2][3][4]
> > - Performance improvements [5][6][7]
> > - 200+ other fixes/enhancements [8]
> >
> > The previous RC was sunk due to PHOENIX-2716 which is fixed in this RC
> > (along with a number of others since the initial RC [9]).
> >
> > The source tarball, including signatures, digests, etc can be found at:
> >
> >
> https://dist.apache.org/repos/dist/dev/phoenix/phoenix-4.7.0-HBase-1.1-rc4/src/
> >
> > The binary artifacts can be found at:
> >
> >
> https://dist.apache.org/repos/dist/dev/phoenix/phoenix-4.7.0-HBase-1.1-rc4/bin/
> >
> > For a complete list of changes, see:
> >
> >
> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315120&version=12333998
> >
> > Release artifacts are signed with the following key:
> > https://people.apache.org/keys/committer/mujtaba.asc
> > https://dist.apache.org/repos/dist/release/phoenix/KEYS
> >
> > The hash and tag to be voted upon:
> >
> >
> https://git-wip-us.apache.org/repos/asf?p=phoenix.git;a=commit;h=58cf5fa2d2e147780258a1e88c79898fc199d61e
> >
> >
> https://git-wip-us.apache.org/repos/asf?p=phoenix.git;a=tag;h=refs/tags/v4.7.0-HBase-1.1-rc4
> >
> > Vote will close on Thursday, March 3rd @ 5pm PST. Please vote:
> >
> > [ ] +1 approve
> > [ ] +0 no opinion
> > [ ] -1 disapprove (and reason why)
> >
> > Thanks,
> > The Apache Phoenix Team
> >
> > [1] https://phoenix.apache.org/transactions.html
> > [2] https://issues.apache.org/jira/browse/PHOENIX-2430
> > [3] https://issues.apache.org/jira/browse/PHOENIX-2702
> > [4] https://issues.apache.org/jira/browse/PHOENIX-2692
> > [5] https://issues.apache.org/jira/browse/PHOENIX-1428
> > [6] https://issues.apache.org/jira/browse/PHOENIX-2377
> > [7] https://issues.apache.org/jira/browse/PHOENIX-2520
> > [8] https://issues.apache.org/jira/issues/?filter=12334876
> > [9] https://issues.apache.org/jira/issues/?filter=12334875
> >
>

Reply via email to