[ 
https://issues.apache.org/jira/browse/HBASE-26326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wellington Chevreuil updated HBASE-26326:
-----------------------------------------
    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

Merged into the HBASE-26067 branch. Thanks for reviewing it, [~elserj], 
[~zhangduo]!

> CreateTableProcedure fails when FileBasedStoreFileTracker is set in global 
> config
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-26326
>                 URL: https://issues.apache.org/jira/browse/HBASE-26326
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Wellington Chevreuil
>            Assignee: Wellington Chevreuil
>            Priority: Major
>
> CreateTableProcedure tries to instantiate SFT impl in its preCreate method so 
> that the given SFT impl can update the tbl descriptor with all its required 
> configs. When global config is set to FILE, FileBasedStoreFileTracker 
> currently needs store dir path at its construction time (via the passed 
> StoreContext param), but we don't have this info at this stage, so 
> FileBasedStoreFileTracker get's an NPE:
> {noformat}
> 2021-10-01 14:28:21,310 ERROR 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor: CODE-BUG: Uncaught 
> runtime exception: pid=54, state=RUNNABLE:CREATE_TABLE_PRE_OPERATION, 
> locked=true; CreateTableProcedure table=test-3
> java.lang.UnsupportedOperationException: Constructor threw an exception for 
> org.apache.hadoop.hbase.regionserver.storefiletracker.MigrationStoreFileTracker
>         at 
> org.apache.hadoop.hbase.util.ReflectionUtils.instantiate(ReflectionUtils.java:66)
>         at 
> org.apache.hadoop.hbase.util.ReflectionUtils.newInstance(ReflectionUtils.java:72)
>         at 
> org.apache.hadoop.hbase.regionserver.storefiletracker.StoreFileTrackerFactory.create(StoreFileTrackerFactory.java:107)
>         at 
> org.apache.hadoop.hbase.regionserver.storefiletracker.StoreFileTrackerFactory.persistTrackerConfig(StoreFileTrackerFactory.java:164)
>         at 
> org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.preCreate(CreateTableProcedure.java:274)
>         at 
> org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.executeFromState(CreateTableProcedure.java:102)
>         at 
> org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.executeFromState(CreateTableProcedure.java:58)
>         at 
> org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:194)
>         at 
> org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:962)
>         at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1662)
>         at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeProcedure(ProcedureExecutor.java:1409)
>         at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$1100(ProcedureExecutor.java:78)
>         at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1979)
> Caused by: java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
>         at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>         at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>         at 
> org.apache.hadoop.hbase.util.ReflectionUtils.instantiate(ReflectionUtils.java:58)
>         ... 12 more
> Caused by: java.lang.UnsupportedOperationException: Constructor threw an 
> exception for 
> org.apache.hadoop.hbase.regionserver.storefiletracker.FileBasedStoreFileTracker
>         at 
> org.apache.hadoop.hbase.util.ReflectionUtils.instantiate(ReflectionUtils.java:66)
>         at 
> org.apache.hadoop.hbase.util.ReflectionUtils.newInstance(ReflectionUtils.java:72)
>         at 
> org.apache.hadoop.hbase.regionserver.storefiletracker.StoreFileTrackerFactory.createForMigration(StoreFileTrackerFactory.java:157)
>         at 
> org.apache.hadoop.hbase.regionserver.storefiletracker.MigrationStoreFileTracker.<init>(MigrationStoreFileTracker.java:50)
>         ... 17 more
> Caused by: java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
>         at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>         at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>         at 
> org.apache.hadoop.hbase.util.ReflectionUtils.instantiate(ReflectionUtils.java:58)
>         ... 20 more
> Caused by: java.lang.NullPointerException
>         at org.apache.hadoop.fs.Path.<init>(Path.java:146)
>         at org.apache.hadoop.fs.Path.<init>(Path.java:125)
>         at 
> org.apache.hadoop.hbase.regionserver.storefiletracker.StoreFileListFile.<init>(StoreFileListFile.java:70)
>         at 
> org.apache.hadoop.hbase.regionserver.storefiletracker.FileBasedStoreFileTracker.<init>(FileBasedStoreFileTracker.java:59)
>         ... 25 more
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to