[
https://issues.apache.org/jira/browse/PHOENIX-4366?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16432956#comment-16432956
]
James Taylor edited comment on PHOENIX-4366 at 4/10/18 8:55 PM:
----------------------------------------------------------------
I believe the reason it was a problem in the case of ALTER INDEX ... REBUILD is
because the deletion of rows goes through PostDDLCompiler which doesn't set
encodingScheme. We don't need it in the case of row deletion. Normally, the
caching of the encoding shouldn't be a problem since it cannot change for a
table (and the RegionObserver instance is different for each region of each
table).
Phoenix always relies on the client to send the necessary information to
interpret the results of a scan. Sounds like there's a hole in our b/w compat
if we allow a too old client to write data to a column encoded table. FYI, we
have the client version available when a table is being written to, so we could
detect this case now and fail it.
was (Author: jamestaylor):
I believe the reason it was a problem in the case of ALTER INDEX ... REBUILD is
because the deletion of rows goes through PostDDLCompiler which doesn't set
encodingScheme. Normally, the caching of the encoding shouldn't be a problem
since it cannot change for a table (and the RegionObserver instance is
different for each region of each table).
Phoenix always relies on the client to send the necessary information to
interpret the results of a scan. Sounds like there's a hole in our b/w compat
if we allow a too old client to write data to a column encoded table. FYI, we
have the client version available when a table is being written to, so we could
detect this case now and fail it.
> Rebuilding a local index fails sometimes
> ----------------------------------------
>
> Key: PHOENIX-4366
> URL: https://issues.apache.org/jira/browse/PHOENIX-4366
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.12.0
> Reporter: Marcin Januszkiewicz
> Assignee: James Taylor
> Priority: Blocker
> Fix For: 4.14.0
>
> Attachments: PHOENIX-4366_v1.patch
>
>
> We have a table created in 4.12 with the new column encoding scheme and with
> several local indexes. Sometimes when we issue an ALTER INDEX ... REBUILD
> command, it fails with the following exception:
> {noformat}
> Error: org.apache.phoenix.exception.PhoenixIOException:
> org.apache.hadoop.hbase.DoNotRetryIOException:
> TRACES,\x01BY01O90A6-$599a349e,1509979836322.3f
> 30c9d449ed6c60a1cda6898f766bd0.: null
>
>
> at
> org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
>
>
> at
> org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
>
>
> at
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.overrideDelegate(BaseScannerRegionObserver.java:255)
>
> at
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:284)
>
> at
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2541)
>
>
> at
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33648)
>
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
>
>
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
>
>
> at
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:183)
>
>
> at
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:163)
>
>
> Caused by: java.lang.UnsupportedOperationException
>
>
> at
> org.apache.phoenix.schema.PTable$QualifierEncodingScheme$1.decode(PTable.java:247)
>
>
> at
> org.apache.phoenix.schema.tuple.EncodedColumnQualiferCellsList.add(EncodedColumnQualiferCellsList.java:141)
>
> at
> org.apache.phoenix.schema.tuple.EncodedColumnQualiferCellsList.add(EncodedColumnQualiferCellsList.java:56)
>
> at
> org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:560)
>
>
> at
> org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:147)
>
>
> at
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:5735)
>
>
> at
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:5891)
>
>
> at
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5669)
>
>
> at
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:5654)
>
>
> at
> org.apache.phoenix.coprocessor.UngroupedAggregateRegionObserver.doPostScannerOpen(UngroupedAggregateRegionObserver.java:522)
>
> at
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.overrideDelegate(BaseScannerRegionObserver.java:236)
>
> ... 7 more (state=08000,code=101)
> {noformat}
> This failure is intermittent, since usually we can run the command again and
> it will succeed.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)