fix(storage): resolve deadlock occuring durring projection (#3671)

This commit is contained in:
Silvan
2022-05-19 13:44:16 +02:00
committed by GitHub
parent 2f8c50aa4c
commit a95b1ab3d0
6 changed files with 29 additions and 7 deletions

View File

@@ -1,6 +1,8 @@
package eventstore
import (
"database/sql"
"github.com/zitadel/zitadel/internal/errors"
"github.com/zitadel/zitadel/internal/eventstore/repository"
)
@@ -14,6 +16,7 @@ type SearchQueryBuilder struct {
resourceOwner string
instanceID string
queries []*SearchQuery
tx *sql.Tx
}
type SearchQuery struct {
@@ -110,6 +113,12 @@ func (builder *SearchQueryBuilder) OrderAsc() *SearchQueryBuilder {
return builder
}
//SetTx ensures that the eventstore library uses the existing transaction
func (builder *SearchQueryBuilder) SetTx(tx *sql.Tx) *SearchQueryBuilder {
builder.tx = tx
return builder
}
//AddQuery creates a new sub query.
//All fields in the sub query are AND-connected in the storage request.
//Multiple sub queries are OR-connected in the storage request.
@@ -240,6 +249,7 @@ func (builder *SearchQueryBuilder) build(instanceID string) (*repository.SearchQ
Limit: builder.limit,
Desc: builder.desc,
Filters: filters,
Tx: builder.tx,
}, nil
}