Tweak logging and Sentry reporting for roomserver input
@@ -36,6 +36,7 @@ import (
"github.com/matrix-org/dendrite/roomserver/internal/query"
"github.com/matrix-org/dendrite/roomserver/producers"
"github.com/matrix-org/dendrite/roomserver/storage"
+ "github.com/matrix-org/dendrite/roomserver/types"
"github.com/matrix-org/dendrite/setup/base"
"github.com/matrix-org/dendrite/setup/config"
"github.com/matrix-org/dendrite/setup/jetstream"
@@ -247,6 +248,15 @@ func (w *worker) _next() {
// it was a synchronous request.
var errString string
if err = w.r.processRoomEvent(w.r.ProcessContext.Context(), &inputRoomEvent); err != nil {
+ switch err.(type) {
+ case types.RejectedError:
+ // Don't send events that were rejected to Sentry
+ logrus.WithError(err).WithFields(logrus.Fields{
+ "room_id": w.roomID,
+ "event_id": inputRoomEvent.Event.EventID(),
+ "type": inputRoomEvent.Event.Type(),
+ }).Warn("Roomserver rejected event")
+ default:
if !errors.Is(err, context.DeadlineExceeded) && !errors.Is(err, context.Canceled) {
sentry.CaptureException(err)
}
@@ -254,7 +264,8 @@ func (w *worker) _next() {
"room_id": w.roomID,
"event_id": inputRoomEvent.Event.EventID(),
"type": inputRoomEvent.Event.Type(),
- }).Warn("Roomserver failed to process async event")
+ }).Warn("Roomserver failed to process event")
+ }
_ = msg.Term()
errString = err.Error()
} else {
