func verifyCleanup(key proto.Key, coord *TxnCoordSender, eng engine.Engine, t *testing.T) { if len(coord.txns) != 0 { t.Errorf("expected empty transactions map; got %d", len(coord.txns)) } if err := util.IsTrueWithin(func() bool { meta := &engine.MVCCMetadata{} ok, _, _, err := eng.GetProto(engine.MVCCEncodeKey(key), meta) if err != nil { t.Errorf("error getting MVCC metadata: %s", err) } return !ok || meta.Txn == nil }, 500*time.Millisecond); err != nil { t.Errorf("expected intents to be cleaned up within 500ms") } }
func verifyCleanup(key proto.Key, coord *TxnCoordSender, eng engine.Engine, t *testing.T) { util.SucceedsWithin(t, 500*time.Millisecond, func() error { coord.Lock() l := len(coord.txns) coord.Unlock() if l != 0 { return fmt.Errorf("expected empty transactions map; got %d", l) } meta := &engine.MVCCMetadata{} ok, _, _, err := eng.GetProto(engine.MVCCEncodeKey(key), meta) if err != nil { return fmt.Errorf("error getting MVCC metadata: %s", err) } if !ok || meta.Txn == nil { return nil } return errors.New("intents not cleaned up") }) }
func verifyCleanup(key roachpb.Key, coord *TxnCoordSender, eng engine.Engine, t *testing.T) { util.SucceedsWithin(t, 500*time.Millisecond, func() error { coord.Lock() l := len(coord.txns) coord.Unlock() if l != 0 { return fmt.Errorf("expected empty transactions map; got %d", l) } meta := &engine.MVCCMetadata{} ok, _, _, err := eng.GetProto(engine.MakeMVCCMetadataKey(key), meta) if err != nil { return fmt.Errorf("error getting MVCC metadata: %s", err) } if ok && meta.Txn != nil { return fmt.Errorf("found unexpected write intent: %s", meta) } return nil }) }