Details
Description
Binary region boundaries become wrong during
converting byte array to normal string, and back to byte array in truncate_preserve of admin.rb, which makes the truncation of table failed.
See: truncate_preserve method in admin.rb
splits = h_table.getRegionLocations().keys().map{|i| Bytes.toString(i.getStartKey)}.delete_if{|k| k == ""}.to_java :String
splits = org.apache.hadoop.hbase.util.Bytes.toByteArrays(splits)
eg:
\xFA\x00\x00\x00\x00\x00\x00\x00 -> \xEF\xBF\xBD\x00\x00\x00\x00\x00\x00\x00 \xFC\x00\x00\x00\x00\x00\x00\x00 -> \xEF\xBF\xBD\x00\x00\x00\x00\x00\x00\x00
Simple patch is using binary string instead of normal string.