Snapshot isolation anomalies detection in software transactional memory