commit | 38adfdbafd971cee15b548c54fcd9200eb3f3519 | [log] [tgz] |
---|---|---|
author | Keith Turner <kturner@apache.org> | Wed Nov 16 14:43:41 2022 +0000 |
committer | GitHub <noreply@github.com> | Wed Nov 16 14:43:41 2022 +0000 |
tree | 55c3307dbdfece67ab02fcc91133d8c627437d9c | |
parent | 44e134a9d90685b57fc60a8bcc9a8919e79e4e3b [diff] |
Fixes bug resolving lock w/ empty col fam. Reported in #660 (#1123) There was a bug where if a column family was empty and the qual was not empty this would cause lock recovery to fail. The underlying cause was a bug in the Column class. This class has an isFamilySet() method that was returning false when the family was set to the empty string. This cause caused lock recovery code to create an incorrect range. The Column class was relying on internal behavior of the Bytes class that probably changed and caused this bug. This commit adds a new IT that recreates this bug. If the new IT is run w/o the fix to the Column class then it would fail as follows. ``` Running org.apache.fluo.integration.impl.FailureIT Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 8.011 sec <<< FAILURE! - in org.apache.fluo.integration.impl.FailureIT testRecoverEmptyColumn(org.apache.fluo.integration.impl.FailureIT) Time elapsed: 7.096 sec <<< ERROR! java.lang.IllegalStateException: can not abort : bob bal 5 (UNKNOWN) at org.apache.fluo.integration.impl.FailureIT.testRecoverEmptyColumn(FailureIT.java:688) ```
Apache Fluo is a distributed processing system that lets users make incremental updates to large data sets. With Apache Fluo, users can set up workflows that execute cross node transactions when data changes. These workflows enable users to continuously join new data into large existing data sets without reprocessing all data. Apache Fluo is built on Apache Accumulo. Check out the Fluo project website for news and general information.