[ https://issues.apache.org/jira/browse/HBASE-18431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16108370#comment-16108370 ]
stack commented on HBASE-18431: ------------------------------- [~apurtell] Hey. Yeah, when you run the -Pcompile-protobuf, it does a bunch of ugly hackery. If it fails for whatever reason, yeah, you are left in an odd state (e.g. stuff is removed... its supposed to be then repopulated....). Running w/ a -X for debug output will usually tell you what is broke in protos. I just tried your patch though and it seems to work for me sir. $ mvn -version Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T08:41:47-08:00) Maven home: /usr/local/Cellar/maven/3.3.9/libexec Java version: 1.8.0_101, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre Default locale: en_US, platform encoding: UTF-8 OS name: "mac os x", version: "10.12.4", arch: "x86_64", family: "mac" > Mitigate compatibility concerns between branch-1.3 and branch-1.4 > ----------------------------------------------------------------- > > Key: HBASE-18431 > URL: https://issues.apache.org/jira/browse/HBASE-18431 > Project: HBase > Issue Type: Bug > Reporter: Andrew Purtell > Assignee: Andrew Purtell > Priority: Blocker > Fix For: 1.4.0, 1.5.0 > > Attachments: HBASE-18431-branch-1.4.patch, > HBASE-18431-branch-1.patch, HBASE-18431-branch-2-WIP.patch > > > There are compatibility concerns with branch-1.4. > {noformat} > Library Name HBase > Version #1 1.3.1 > Version #2 1.4.0-SNAPSHOT > Subject Binary Compatibility > Compatibility - 89.9% > Added Methods - 305 > Removed Methods - 105 > Problems with Data Types > High - 23 > Medium - 9 > Low - 21 > {noformat} > {noformat} > Library Name HBase > Version #1 1.3.1 > Version #2 1.4.0-SNAPSHOT > Subject Source Compatibility > Compatibility- 86.5% > Added Methods - 305 > Removed Methods - 105 > Problems with Data Types > High - 88 > Medium - 0 > Low - 0 > Other Changes in Data Types - 25 > {noformat} > This report includes HBASE-15816 which hasn't been committed yet. Otherwise > it's current. > I'm not generally concerned with added methods. > The following methods have been added to Public/Evolving interface Table. > Pointing them out in case it merits review. > \\ > * Abstract method Table.getReadRpcTimeout ( ) has been added to this > interface. No effect. > * Abstract method Table.getWriteRpcTimeout ( ) has been added to this > interface. No effect. > * Abstract method Table.setReadRpcTimeout ( int ) has been added to this > interface. No effect. > * Abstract method Table.setWriteRpcTimeout ( int ) has been added to this > interface. > The Public/Evolving interface Admin has some signature changes equating to > removed methods. I don't think this is allowed in a minor release. > \\ > * Abstract method Admin.isSnapshotFinished ( HBaseProtos.SnapshotDescription > ) has been removed from Admin. > * Abstract method Admin.snapshot ( String, TableName, > HBaseProtos.SnapshotDescription.Type ) has been removed from Admin. > * Abstract method Admin.snapshot ( HBaseProtos.SnapshotDescription ) has been > removed from Admin. > * Abstract method Admin.takeSnapshotAsync ( HBaseProtos.SnapshotDescription > ) has been removed from Admin. > The LimitedPrivate(CONFIG) interface AsyncRpcClient has been removed. This > change is debatable but I think we can allow it. > \\ > * AsyncRpcClient has been removed > The Public/Evolving class FastLongHistogram has been removed. I don't believe > this change is allowed in a minor release. > \\ > * FastLongHistogram has been removed > Method signatures in LimitedPrivate(COPROC) interfaces MasterObserver and > RegionObserver have changed, equating to removed methods. The first set of > changes is due to move of SnapshotDescription from HBaseProtos to > SnapshotProtos: > \\ > * Abstract method MasterObserver.postCloneSnapshot ( > ObserverContext<MasterCoprocessorEnvironment>, > HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from > MasterObserver. > * Abstract method MasterObserver.postDeleteSnapshot ( > ObserverContext<MasterCoprocessorEnvironment>, > HBaseProtos.SnapshotDescription ) has been removed from MasterObserver. > * Abstract method MasterObserver.postListSnapshot ( > ObserverContext<MasterCoprocessorEnvironment>, > HBaseProtos.SnapshotDescription ) has been removed from MasterObserver. > * Abstract method MasterObserver.postRestoreSnapshot ( > ObserverContext<MasterCoprocessorEnvironment>, > HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from > MasterObserver. > * Abstract method MasterObserver.postSnapshot ( > ObserverContext<MasterCoprocessorEnvironment>, > HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from > MasterObserver. > * Abstract method MasterObserver.preCloneSnapshot ( > ObserverContext<MasterCoprocessorEnvironment>, > HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from > MasterObserver. > * Abstract method MasterObserver.preDeleteSnapshot ( > ObserverContext<MasterCoprocessorEnvironment>, > HBaseProtos.SnapshotDescription ) has been removed from MasterObserver. > * Abstract method MasterObserver.preListSnapshot ( > ObserverContext<MasterCoprocessorEnvironment>, > HBaseProtos.SnapshotDescription ) has been removed from MasterObserver. > * Abstract method MasterObserver.preRestoreSnapshot ( > ObserverContext<MasterCoprocessorEnvironment>, > HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from > MasterObserver. > * Abstract method MasterObserver.preSnapshot ( > ObserverContext<MasterCoprocessorEnvironment>, > HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from > MasterObserver. > Here, maybe DeleteTracker moved packages? > \\ > * Abstract method RegionObserver.postInstantiateDeleteTracker ( > ObserverContext<RegionCoprocessorEnvironment>, DeleteTracker ) has been > removed from RegionObserver. > The LimitedPrivate(COPROC) interface Store has method signature changes > equating to removed methods. The changes are debatable. I am thinking we can > allow them. Anyone implementing their own Stores? > \\ > * Abstract method Store.bulkLoadHFile ( String, long ) has been removed from > Store. > * Abstract method Store.getScanners ( List<StoreFile>, boolean, boolean, > boolean, boolean, ScanQueryMatcher, byte[ ], byte[ ], long, boolean ) has > been removed from Store. > * Abstract method Store.getScanners ( boolean, boolean, boolean, boolean, > ScanQueryMatcher, byte[ ], byte[ ], long ) has been removed from Store. > * Abstract method Store.upsert ( Iterable<Cell>, long ) has been removed from > Store. -- This message was sent by Atlassian JIRA (v6.4.14#64029)