mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-16 18:43:10 -06:00
Merge branch 'main' into keyserver-contention
This commit is contained in:
commit
6f868d9985
|
|
@ -21,16 +21,17 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/matrix-org/gomatrix"
|
||||
"github.com/matrix-org/gomatrixserverlib"
|
||||
"github.com/sirupsen/logrus"
|
||||
"go.uber.org/atomic"
|
||||
|
||||
fedapi "github.com/matrix-org/dendrite/federationapi/api"
|
||||
"github.com/matrix-org/dendrite/federationapi/statistics"
|
||||
"github.com/matrix-org/dendrite/federationapi/storage"
|
||||
"github.com/matrix-org/dendrite/federationapi/storage/shared"
|
||||
"github.com/matrix-org/dendrite/roomserver/api"
|
||||
"github.com/matrix-org/dendrite/setup/process"
|
||||
"github.com/matrix-org/gomatrix"
|
||||
"github.com/matrix-org/gomatrixserverlib"
|
||||
"github.com/sirupsen/logrus"
|
||||
"go.uber.org/atomic"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
@ -541,6 +542,8 @@ func (oq *destinationQueue) handleTransactionSuccess(pduCount int, eduCount int)
|
|||
// the pending events and EDUs, and wipe our transaction ID.
|
||||
oq.statistics.Success()
|
||||
oq.pendingMutex.Lock()
|
||||
defer oq.pendingMutex.Unlock()
|
||||
|
||||
for i := range oq.pendingPDUs[:pduCount] {
|
||||
oq.pendingPDUs[i] = nil
|
||||
}
|
||||
|
|
@ -549,7 +552,6 @@ func (oq *destinationQueue) handleTransactionSuccess(pduCount int, eduCount int)
|
|||
}
|
||||
oq.pendingPDUs = oq.pendingPDUs[pduCount:]
|
||||
oq.pendingEDUs = oq.pendingEDUs[eduCount:]
|
||||
oq.pendingMutex.Unlock()
|
||||
|
||||
if len(oq.pendingPDUs) > 0 || len(oq.pendingEDUs) > 0 {
|
||||
select {
|
||||
|
|
|
|||
|
|
@ -1004,9 +1004,12 @@ func TestQueueInteractsWithRealDatabasePDUAndEDU(t *testing.T) {
|
|||
err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
|
||||
assert.NoError(t, err)
|
||||
|
||||
// NOTE : The server can be blacklisted before this, so manually inject the event
|
||||
// into the database.
|
||||
edu := mustCreateEDU(t)
|
||||
errEDU := queues.SendEDU(edu, "localhost", []gomatrixserverlib.ServerName{destination})
|
||||
assert.NoError(t, errEDU)
|
||||
ephemeralJSON, _ := json.Marshal(edu)
|
||||
nid, _ := db.StoreJSON(pc.Context(), string(ephemeralJSON))
|
||||
db.AssociateEDUWithDestination(pc.Context(), destination, nid, edu.Type, nil)
|
||||
|
||||
checkBlacklisted := func(log poll.LogT) poll.Result {
|
||||
if fc.txCount.Load() == failuresUntilBlacklist {
|
||||
|
|
|
|||
|
|
@ -22,10 +22,6 @@ Forgotten room messages cannot be paginated
|
|||
|
||||
Local device key changes get to remote servers with correct prev_id
|
||||
|
||||
# Flakey
|
||||
|
||||
Local device key changes appear in /keys/changes
|
||||
|
||||
# we don't support groups
|
||||
|
||||
Remove group category
|
||||
|
|
|
|||
Loading…
Reference in a new issue