Add logging to debug federation issues (ref #2096) (#2099)

pull/2055/head
Nutomic 2022-02-17 18:48:45 +00:00 committed by GitHub
parent 81aa39ba68
commit e094989a4c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 8 deletions

View File

@ -14,6 +14,7 @@ use lemmy_apub_lib::{
}; };
use lemmy_utils::LemmyError; use lemmy_utils::LemmyError;
use lemmy_websocket::LemmyContext; use lemmy_websocket::LemmyContext;
use tracing::info;
#[async_trait::async_trait(?Send)] #[async_trait::async_trait(?Send)]
pub(crate) trait GetCommunity { pub(crate) trait GetCommunity {
@ -51,6 +52,14 @@ impl AnnounceActivity {
context: &LemmyContext, context: &LemmyContext,
) -> Result<(), LemmyError> { ) -> Result<(), LemmyError> {
let announce = AnnounceActivity::new(object.clone(), community, context)?; let announce = AnnounceActivity::new(object.clone(), community, context)?;
// temporary hack to get activity id of object
let object_fields: ActivityCommonFields =
serde_json::from_value(serde_json::to_value(&object)?)?;
info!(
"Announcing activity {} as {}",
object_fields.id, announce.id
);
let inboxes = community.get_follower_inboxes(context).await?; let inboxes = community.get_follower_inboxes(context).await?;
send_lemmy_activity( send_lemmy_activity(
context, context,

View File

@ -26,6 +26,7 @@ use lemmy_db_schema::{
}; };
use lemmy_utils::LemmyError; use lemmy_utils::LemmyError;
use lemmy_websocket::{send::send_comment_ws_message, LemmyContext, UserOperationCrud}; use lemmy_websocket::{send::send_comment_ws_message, LemmyContext, UserOperationCrud};
use tracing::info;
impl CreateOrUpdateComment { impl CreateOrUpdateComment {
#[tracing::instrument(skip(comment, actor, kind, context))] #[tracing::instrument(skip(comment, actor, kind, context))]
@ -50,6 +51,7 @@ impl CreateOrUpdateComment {
kind.clone(), kind.clone(),
&context.settings().get_protocol_and_hostname(), &context.settings().get_protocol_and_hostname(),
)?; )?;
info!("Sending Create/Comment for {} as {}", comment.ap_id, id);
let note = comment.into_apub(context).await?; let note = comment.into_apub(context).await?;
let create_or_update = CreateOrUpdateComment { let create_or_update = CreateOrUpdateComment {

View File

@ -6,6 +6,7 @@ use crate::{
objects::{community::ApubCommunity, person::ApubPerson}, objects::{community::ApubCommunity, person::ApubPerson},
}; };
use activitystreams_kinds::public; use activitystreams_kinds::public;
use itertools::Itertools;
use lemmy_api_common::blocking; use lemmy_api_common::blocking;
use lemmy_apub_lib::{ use lemmy_apub_lib::{
activity_queue::send_activity, activity_queue::send_activity,
@ -170,8 +171,6 @@ async fn send_lemmy_activity<T: Serialize>(
} }
let activity = WithContext::new(activity); let activity = WithContext::new(activity);
info!("Sending activity {}", activity_id.to_string());
// Don't send anything to ourselves // Don't send anything to ourselves
// TODO: this should be a debug assert // TODO: this should be a debug assert
let hostname = context.settings().get_hostname_without_port()?; let hostname = context.settings().get_hostname_without_port()?;
@ -180,6 +179,12 @@ async fn send_lemmy_activity<T: Serialize>(
.filter(|i| i.domain().expect("valid inbox url") != hostname) .filter(|i| i.domain().expect("valid inbox url") != hostname)
.collect(); .collect();
info!(
"Sending activity {} to [{}]",
activity_id.to_string(),
inboxes.iter().join(",")
);
let serialised_activity = serde_json::to_string(&activity)?; let serialised_activity = serde_json::to_string(&activity)?;
let object_value = serde_json::to_value(&activity)?; let object_value = serde_json::to_value(&activity)?;

View File

@ -1,5 +1,5 @@
use crate::{signatures::sign_and_send, traits::ActorType}; use crate::{signatures::sign_and_send, traits::ActorType};
use anyhow::{anyhow, Context, Error}; use anyhow::{Context, Error};
use background_jobs::{ use background_jobs::{
memory_storage::Storage, memory_storage::Storage,
ActixJob, ActixJob,
@ -90,12 +90,10 @@ async fn do_send(task: SendActivityTask, client: &ClientWithMiddleware) -> Resul
} }
} }
Err(e) => { Err(e) => {
return Err(anyhow!( warn!(
"Failed to send activity {} to {}: {}", "Failed to send activity {} to {}: {}",
&task.activity_id, &task.activity_id, task.inbox, e
task.inbox, );
e
));
} }
} }
Ok(()) Ok(())