Skip to content

Backport HBASE-29672 to branch-2 - Handle runtime comparison failures during filtering gracefully - #8647

Open
droudnitsky wants to merge 2 commits into
apache:branch-2from
droudnitsky:HBASE-29672-branch-2
Open

droudnitsky wants to merge 2 commits into
apache:branch-2from
droudnitsky:HBASE-29672-branch-2

Conversation

@droudnitsky

Copy link
Copy Markdown
Contributor

Backport of #7397 to branch-2. Not a clean cherry-pick — conflicts in CompareFilter because branch-2 keeps the deprecated CompareOp overloads that master removed. Kept both.

Only other delta: throws IOException added to the deprecated filterKeyValue(Cell) delegates in FamilyFilter, QualifierFilter, ValueFilter, DependentColumnFilter and SingleColumnValueFilter. They call filterCell, which now throws, so it doesn't compile otherwise. Filter.filterKeyValue already declares it.

The deprecated compare{Row,Family,Qualifier,Value}(CompareOp, ...) overloads are left unwrapped — adding a checked exception to them would break source compat in 2.x. No in-tree callers.

Daniel Roudnitsky added 2 commits September 10, 2026 08:29
…fully

Backport of HBASE-29672 to branch-2.

Filters that accept a user-supplied ByteArrayComparable now wrap any
RuntimeException thrown while applying the comparator in an
HBaseIOException, so it surfaces as a clear remote exception instead of
escaping as an unexpected throwable at the RpcServer layer.

branch-2 differences from the master patch:
* CompareFilter retains the deprecated CompareOp overloads of
  compareRow/compareFamily/compareQualifier/compareValue. These are left
  untouched; only the CompareOperator variants wrap comparator failures.
* The deprecated filterKeyValue(Cell) delegates in FamilyFilter,
  QualifierFilter, ValueFilter, DependentColumnFilter and
  SingleColumnValueFilter now declare throws IOException, since the
  filterCell(Cell) they delegate to does. Filter.filterKeyValue(Cell)
  already declares it, so this is consistent with the base class.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant