Additional logging/tracing tweaks around sliding-sync.

Additional spans around receipt service interface.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-10-22 20:30:43 +00:00
parent 050a1a350a
commit 9cd175b125
7 changed files with 25 additions and 24 deletions

View File

@@ -23,7 +23,7 @@ use ruma::{
};
use tokio::time::{Instant, timeout_at};
use tuwunel_core::{
Err, Result, apply, at,
Err, Result, apply, at, debug,
debug::INFO_SPAN_LEVEL,
err,
error::inspect_log,
@@ -53,7 +53,6 @@ struct SyncInfo<'a> {
services: &'a Services,
sender_user: &'a UserId,
sender_device: &'a DeviceId,
request: &'a Request,
}
#[derive(Clone, Debug)]
@@ -152,13 +151,6 @@ pub(crate) async fn sync_events_v5_route(
conn.update_cache(request);
conn.update_rooms_prologue(advancing);
let sync_info = SyncInfo {
services,
sender_user,
sender_device,
request,
};
let mut response = Response {
txn_id: request.txn_id.clone(),
lists: Default::default(),
@@ -167,6 +159,7 @@ pub(crate) async fn sync_events_v5_route(
extensions: Default::default(),
};
let sync_info = SyncInfo { services, sender_user, sender_device };
loop {
debug_assert!(
conn.globalsince <= conn.next_batch,
@@ -203,15 +196,15 @@ pub(crate) async fn sync_events_v5_route(
if timeout_at(stop_at, watchers).await.is_err() || services.server.is_stopping() {
response.pos = conn.next_batch.to_string().into();
trace!(conn.globalsince, conn.next_batch, "timeout; empty response");
trace!(conn.globalsince, conn.next_batch, "timeout; empty response {response:?}");
return Ok(response);
}
trace!(
conn.globalsince,
last_batch = ?conn.next_batch,
count = ?services.globals.pending_count(),
stop_at = ?stop_at,
debug!(
?timeout,
last_since = conn.globalsince,
last_batch = conn.next_batch,
pend_count = ?services.globals.pending_count(),
"notified by watcher"
);

View File

@@ -94,7 +94,7 @@ pub(super) async fn collect(
})
}
#[tracing::instrument(level = "trace", skip_all, fields(room_id))]
#[tracing::instrument(level = "trace", skip_all, fields(room_id), ret)]
async fn collect_room(
SyncInfo { services, sender_user, .. }: SyncInfo<'_>,
conn: &Connection,

View File

@@ -44,7 +44,7 @@ pub(super) async fn collect(
Ok(response::Receipts { rooms })
}
#[tracing::instrument(level = "trace", skip_all, fields(room_id))]
#[tracing::instrument(level = "trace", skip_all, fields(room_id), ret)]
async fn collect_room(
SyncInfo { services, sender_user, .. }: SyncInfo<'_>,
conn: &Connection,

View File

@@ -29,9 +29,8 @@ pub(super) async fn selector(
) -> (Window, ResponseLists) {
use MembershipState::*;
let SyncInfo { services, sender_user, request, .. } = sync_info;
let SyncInfo { services, sender_user, .. } = sync_info;
trace!(?request);
let mut rooms = services
.state_cache
.user_memberships(sender_user, Some(&[Join, Invite, Knock]))
@@ -64,7 +63,12 @@ pub(super) async fn selector(
(window, lists)
}
#[tracing::instrument(name = "window", level = "debug", skip_all)]
#[tracing::instrument(
name = "window",
level = "debug",
skip_all,
fields(rooms = rooms.clone().count())
)]
async fn select_window<'a, Rooms>(
sync_info: SyncInfo<'_>,
conn: &Connection,

View File

@@ -4,7 +4,7 @@ use tuwunel_core::{self, Result};
use super::{Connection, SyncInfo};
#[tracing::instrument(name = "to_device", level = "trace", skip_all)]
#[tracing::instrument(name = "to_device", level = "trace", skip_all, ret)]
pub(super) async fn collect(
SyncInfo { services, sender_user, sender_device, .. }: SyncInfo<'_>,
conn: &Connection,

View File

@@ -13,7 +13,7 @@ use tuwunel_core::{
use super::{Connection, SyncInfo, Window, extension_rooms_selector};
#[tracing::instrument(name = "typing", level = "trace", skip_all)]
#[tracing::instrument(name = "typing", level = "trace", skip_all, ret)]
pub(super) async fn collect(
sync_info: SyncInfo<'_>,
conn: &Connection,