diff --git a/posting/list.go b/posting/list.go index 1952c83f4ce..d61b6f20966 100644 --- a/posting/list.go +++ b/posting/list.go @@ -382,6 +382,10 @@ func (mm *MutableLayer) print() string { mm.deleteAllMarker) } +func (l *List) print() string { + return fmt.Sprintf("minTs: %d, plist: %+v, mutationMap: %s", l.minTs, l.plist, l.mutationMap.print()) +} + // Return if piterator needs to be searched or not after mutable map and the posting if found. func (mm *MutableLayer) findPosting(readTs, uid uint64) (bool, *pb.Posting) { if mm == nil { @@ -1119,7 +1123,7 @@ func (l *List) iterate(readTs uint64, afterUid uint64, f func(obj *pb.Posting) e // pitr iterates through immutable postings err = pitr.seek(l, afterUid, deleteBelowTs) if err != nil { - return errors.Wrapf(err, "cannot initialize iterator when calling List.iterate") + return errors.Wrapf(err, "cannot initialize iterator when calling List.iterate "+l.print()) } loop: diff --git a/systest/mutations-and-queries/integration_test.go b/systest/mutations-and-queries/integration_test.go index 91b5f126d9e..fc608043a9a 100644 --- a/systest/mutations-and-queries/integration_test.go +++ b/systest/mutations-and-queries/integration_test.go @@ -45,6 +45,10 @@ func (ssuite *SystestTestSuite) SetupSubTest() { require.NoError(t, gcli.DropAll()) } +func (ssuite *SystestTestSuite) CheckAllowedErrorPreUpgrade(err error) bool { + return false +} + func (ssuite *SystestTestSuite) Upgrade() { // Not implemented for integration tests } diff --git a/systest/mutations-and-queries/mutations_test.go b/systest/mutations-and-queries/mutations_test.go index ce3ce6094f8..087bd1aa0d7 100644 --- a/systest/mutations-and-queries/mutations_test.go +++ b/systest/mutations-and-queries/mutations_test.go @@ -2935,7 +2935,13 @@ func (ssuite *SystestTestSuite) DeleteAndQuerySameTxn() { q := `{ me(func: has(name)) { name } }` resp, err := txn2.Query(ctx, q) - require.NoError(t, err) + if err != nil { + if !ssuite.CheckAllowedErrorPreUpgrade(err) { + require.NoError(t, err) + } else { + t.Skip() + } + } dgraphapi.CompareJSON(`{"me":[{"name":"Alice"}]}`, string(resp.GetJson())) require.NoError(t, txn2.Commit(ctx)) diff --git a/systest/mutations-and-queries/upgrade_test.go b/systest/mutations-and-queries/upgrade_test.go index 4d809924515..f67668135fb 100644 --- a/systest/mutations-and-queries/upgrade_test.go +++ b/systest/mutations-and-queries/upgrade_test.go @@ -21,6 +21,7 @@ package main import ( "errors" "log" + "strings" "testing" "time" @@ -57,6 +58,15 @@ func (ssuite *SystestTestSuite) TearDownSubTest() { ssuite.lc.Cleanup(ssuite.T().Failed()) } +func (ssuite *SystestTestSuite) CheckAllowedErrorPreUpgrade(err error) bool { + if val, checkErr := dgraphtest.IsHigherVersion( + ssuite.dc.GetVersion(), + "315747a19e9d5c5b98055c8b943a6e6462153bb3"); checkErr == nil && val || checkErr != nil { + return false + } + return strings.Contains(err.Error(), "cannot initialize iterator when calling List.iterate: deleteBelowTs") +} + func (ssuite *SystestTestSuite) Upgrade() { require.NoError(ssuite.T(), ssuite.lc.Upgrade(ssuite.uc.After, ssuite.uc.Strategy)) }