fix: always update the timestamp in trigger (#6326)

* always reset timestamp

* re-enable test
This commit is contained in:
Tim Möhlmann 2023-08-04 19:17:16 +03:00 committed by GitHub
parent 11b5a73551
commit 3c7b603650
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 5 deletions

View File

@ -5,11 +5,20 @@ package management_test
import (
"context"
"os"
"strconv"
"strings"
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/text/language"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"github.com/zitadel/zitadel/internal/integration"
"github.com/zitadel/zitadel/pkg/grpc/management"
"github.com/zitadel/zitadel/pkg/grpc/user"
)
var (
@ -38,8 +47,6 @@ func TestMain(m *testing.M) {
// This test Imports a user and directly tries to Get it, 100 times in a loop.
// When the bug still existed, some (between 1 to 7 out of 100)
// Get calls would return a Not Found error.
/* Test disabled because it breaks the pipeline.
func TestImport_and_Get(t *testing.T) {
const N = 100
var misses int
@ -84,4 +91,3 @@ func TestImport_and_Get(t *testing.T) {
}
assert.Zerof(t, misses, "Not Found errors %d out of %d", misses, N)
}
*/

View File

@ -140,8 +140,11 @@ func (h *ProjectionHandler) Trigger(ctx context.Context, instances ...string) co
// by calling FetchEvents and Process until the amount of events is smaller than the BulkLimit.
// If a bulk action was executed, the call timestamp in context will be reset for subsequent queries.
// The returned context is never nil. It is either the original context or an updated context.
func (h *ProjectionHandler) TriggerErr(ctx context.Context, instances ...string) (context.Context, error) {
func (h *ProjectionHandler) TriggerErr(ctx context.Context, instances ...string) (outCtx context.Context, err error) {
instances = triggerInstances(ctx, instances)
defer func() {
outCtx = call.ResetTimestamp(ctx)
}()
for {
events, hasLimitExceeded, err := h.FetchEvents(ctx, instances...)
if err != nil {
@ -151,7 +154,6 @@ func (h *ProjectionHandler) TriggerErr(ctx context.Context, instances ...string)
return ctx, nil
}
_, err = h.Process(ctx, events...)
ctx = call.ResetTimestamp(ctx)
if err != nil {
return ctx, err
}