I'm looking at DataGravitatorInterceptor.cleanBackupData (1.4 branch) and I think it's broken if there's a tx.
If there's a tx, the RPC to cleanup data across the cluster is not made immediately, but rather is added to the tx modification list. That's good; we don't want to remove the data from other nodes unless the tx that caused the data gravitation commits.
But, the modification list will get sent as part of a prepare() that will only go to the node's buddies, not to the whole cluster! So, the cleanup will not be cluster-wide, and quite likely will leave a second copy of the data lying around.
I am missing something here? If not, I'll open a JIRA.
Hmm, how about a UT to prove this? Sounds like a bug.