feat(PR977): Log more things in the join process

This commit is contained in:
nexy7574 2025-09-07 20:32:26 +01:00
commit 09de586dc7
No known key found for this signature in database

View file

@ -178,11 +178,6 @@ async fn create_join_event(
} }
} }
services
.server_keys
.hash_and_sign_event(&mut value, &room_version_id)
.map_err(|e| err!(Request(InvalidParam(warn!("Failed to sign send_join event: {e}")))))?;
let origin: OwnedServerName = serde_json::from_value( let origin: OwnedServerName = serde_json::from_value(
value value
.get("origin") .get("origin")
@ -192,6 +187,12 @@ async fn create_join_event(
) )
.map_err(|e| err!(Request(BadJson("Event has an invalid origin server name: {e}"))))?; .map_err(|e| err!(Request(BadJson("Event has an invalid origin server name: {e}"))))?;
trace!("Signing send_join event");
services
.server_keys
.hash_and_sign_event(&mut value, &room_version_id)
.map_err(|e| err!(Request(InvalidParam(warn!("Failed to sign send_join event: {e}")))))?;
let mutex_lock = services let mutex_lock = services
.rooms .rooms
.event_handler .event_handler
@ -218,21 +219,19 @@ async fn create_join_event(
.collect() .collect()
.await; .await;
#[allow(clippy::unnecessary_unwrap)] trace!(%omit_members, "Constructing current state");
let state = state_ids let state = state_ids
.iter() .iter()
.try_stream() .try_stream()
.broad_filter_map(|event_id| async move { .broad_filter_map(|event_id| async move {
if omit_members && event_id.is_ok() { if omit_members {
let pdu = services if let Ok(e) = event_id.as_ref() {
.rooms let pdu = services.rooms.timeline.get_pdu(e).await;
.timeline if pdu.is_ok_and(|p| p.kind().to_cow_str() == "m.room.member") {
.get_pdu(event_id.as_ref().unwrap()) trace!("omitting member event {e:?} from returned state");
.await; // skip members
if pdu.is_ok_and(|p| p.kind().to_cow_str() == "m.room.member") { return None;
trace!("omitting member event {event_id:?} from returned state"); }
// skip members
return None;
} }
} }
Some(event_id) Some(event_id)
@ -249,6 +248,7 @@ async fn create_join_event(
.await?; .await?;
let starting_events = state_ids.iter().map(Borrow::borrow); let starting_events = state_ids.iter().map(Borrow::borrow);
trace!("Constructing auth chain");
let auth_chain = services let auth_chain = services
.rooms .rooms
.auth_chain .auth_chain
@ -265,8 +265,9 @@ async fn create_join_event(
.try_collect() .try_collect()
.boxed() .boxed()
.await?; .await?;
info!(fast_join = %omit_members, "Sending a join for {origin} to {room_id}"); info!(fast_join = %omit_members, "Sending join event to other servers");
services.sending.send_pdu_room(room_id, &pdu_id).await?; services.sending.send_pdu_room(room_id, &pdu_id).await?;
debug!("Finished sending join event");
let servers_in_room: Option<Vec<_>> = if !omit_members { let servers_in_room: Option<Vec<_>> = if !omit_members {
None None
} else { } else {
@ -280,12 +281,10 @@ async fn create_join_event(
.await; .await;
// If there's no servers, just add us // If there's no servers, just add us
let servers = if servers.is_empty() { let servers = if servers.is_empty() {
warn!( warn!("Failed to find any servers, adding our own server name as a last resort");
"Failed to find any servers in {room_id}, adding our own server name as a last \
resort"
);
vec![services.globals.server_name().to_string()] vec![services.globals.server_name().to_string()]
} else { } else {
trace!("Found {} servers in room", servers.len());
servers servers
}; };
Some(servers) Some(servers)