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"
|
"sync"
|
||||||
"time"
|
"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"
|
fedapi "github.com/matrix-org/dendrite/federationapi/api"
|
||||||
"github.com/matrix-org/dendrite/federationapi/statistics"
|
"github.com/matrix-org/dendrite/federationapi/statistics"
|
||||||
"github.com/matrix-org/dendrite/federationapi/storage"
|
"github.com/matrix-org/dendrite/federationapi/storage"
|
||||||
"github.com/matrix-org/dendrite/federationapi/storage/shared"
|
"github.com/matrix-org/dendrite/federationapi/storage/shared"
|
||||||
"github.com/matrix-org/dendrite/roomserver/api"
|
"github.com/matrix-org/dendrite/roomserver/api"
|
||||||
"github.com/matrix-org/dendrite/setup/process"
|
"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 (
|
const (
|
||||||
|
|
@ -541,6 +542,8 @@ func (oq *destinationQueue) handleTransactionSuccess(pduCount int, eduCount int)
|
||||||
// the pending events and EDUs, and wipe our transaction ID.
|
// the pending events and EDUs, and wipe our transaction ID.
|
||||||
oq.statistics.Success()
|
oq.statistics.Success()
|
||||||
oq.pendingMutex.Lock()
|
oq.pendingMutex.Lock()
|
||||||
|
defer oq.pendingMutex.Unlock()
|
||||||
|
|
||||||
for i := range oq.pendingPDUs[:pduCount] {
|
for i := range oq.pendingPDUs[:pduCount] {
|
||||||
oq.pendingPDUs[i] = nil
|
oq.pendingPDUs[i] = nil
|
||||||
}
|
}
|
||||||
|
|
@ -549,7 +552,6 @@ func (oq *destinationQueue) handleTransactionSuccess(pduCount int, eduCount int)
|
||||||
}
|
}
|
||||||
oq.pendingPDUs = oq.pendingPDUs[pduCount:]
|
oq.pendingPDUs = oq.pendingPDUs[pduCount:]
|
||||||
oq.pendingEDUs = oq.pendingEDUs[eduCount:]
|
oq.pendingEDUs = oq.pendingEDUs[eduCount:]
|
||||||
oq.pendingMutex.Unlock()
|
|
||||||
|
|
||||||
if len(oq.pendingPDUs) > 0 || len(oq.pendingEDUs) > 0 {
|
if len(oq.pendingPDUs) > 0 || len(oq.pendingEDUs) > 0 {
|
||||||
select {
|
select {
|
||||||
|
|
|
||||||
|
|
@ -1004,9 +1004,12 @@ func TestQueueInteractsWithRealDatabasePDUAndEDU(t *testing.T) {
|
||||||
err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
|
err := queues.SendEvent(ev, "localhost", []gomatrixserverlib.ServerName{destination})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
// NOTE : The server can be blacklisted before this, so manually inject the event
|
||||||
|
// into the database.
|
||||||
edu := mustCreateEDU(t)
|
edu := mustCreateEDU(t)
|
||||||
errEDU := queues.SendEDU(edu, "localhost", []gomatrixserverlib.ServerName{destination})
|
ephemeralJSON, _ := json.Marshal(edu)
|
||||||
assert.NoError(t, errEDU)
|
nid, _ := db.StoreJSON(pc.Context(), string(ephemeralJSON))
|
||||||
|
db.AssociateEDUWithDestination(pc.Context(), destination, nid, edu.Type, nil)
|
||||||
|
|
||||||
checkBlacklisted := func(log poll.LogT) poll.Result {
|
checkBlacklisted := func(log poll.LogT) poll.Result {
|
||||||
if fc.txCount.Load() == failuresUntilBlacklist {
|
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
|
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
|
# we don't support groups
|
||||||
|
|
||||||
Remove group category
|
Remove group category
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue