I setup a new instance a week or two ago, and have some subscriptions to communities on lemmy.world. The logs for the Lemmy process are currently showing a constant flood of warnings for what look like ordinary activity (likes, creates, undos, etc). Here are two recent entries:

lemmy-1  | 2024-05-13T21:41:48.243217Z  WARN lemmy_server::root_span_builder: Unknown: 
lemmy-1  |    0: lemmy_apub::insert_received_activity
lemmy-1  |            with ap_id=Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("lemmy.world")), port: None, path: "/activities/announce/like/3a96d6df-3229-4e5a-a6d1-ce2f6f3ca3d5", query: None, fragment: None }
lemmy-1  |              at crates/apub/src/lib.rs:198
lemmy-1  |    1: lemmy_apub::activities::community::announce::receive
lemmy-1  |              at crates/apub/src/activities/community/announce.rs:153
lemmy-1  |    2: lemmy_server::root_span_builder::HTTP request
lemmy-1  |            with http.method=POST http.scheme="http" http.host=leftopia.org http.target=/inbox otel.kind="server" request_id=43212a7e-1c3c-4b6a-84d6-4cd6082af392
lemmy-1  |              at src/root_span_builder.rs:16
lemmy-1  | 2024-05-13T21:41:48.356594Z  WARN lemmy_server::root_span_builder: Unknown: 
lemmy-1  |    0: lemmy_apub::insert_received_activity
lemmy-1  |            with ap_id=Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("lemmy.world")), port: None, path: "/activities/announce/like/9f70cd5b-175a-4ac3-a852-322494f01981", query: None, fragment: None }
lemmy-1  |              at crates/apub/src/lib.rs:198
lemmy-1  |    1: lemmy_apub::activities::community::announce::receive
lemmy-1  |              at crates/apub/src/activities/community/announce.rs:153
lemmy-1  |    2: lemmy_server::root_span_builder::HTTP request
lemmy-1  |            with http.method=POST http.scheme="http" http.host=leftopia.org http.target=/inbox otel.kind="server" request_id=050271b4-2081-4264-936a-329d70374239
lemmy-1  |              at src/root_span_builder.rs:16

Tailing the Docker logs is like watching a torrent of these warnings, and I’m worried about the stress its adding to my fairly meager VM. Any tips on how to debug this? I’m proficient with Rust, so I’m willing and able to jump into the code if it’ll help.

  • insaan@leftopia.orgOP
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    6 months ago

    I’ve been digging in the source code, and if it’s just a duplicate record in the database the fix could be as simple as adding a couple of lines of code here to silently ignore a duplication error: https://github.com/LemmyNet/lemmy/blob/main/crates/apub/src/lib.rs#L211

    Edit: on second thought, it might be better to deal with it higher up the call stack here: https://github.com/LemmyNet/lemmy/blob/main/crates/apub/src/activities/community/announce.rs#L163

    • Nothing4You
      link
      fedilink
      English
      arrow-up
      2
      ·
      6 months ago

      records can’t be duplicated in the database, the activity id is a unique key:

      lemmy=# \d sent_activity
                                                     Table "public.sent_activity"
                 Column            |           Type           | Collation | Nullable |                  Default
      -----------------------------+--------------------------+-----------+----------+-------------------------------------------
       id                          | bigint                   |           | not null | nextval('sent_activity_id_seq'::regclass)
       ap_id                       | text                     |           | not null |
       data                        | json                     |           | not null |
       sensitive                   | boolean                  |           | not null |
       published                   | timestamp with time zone |           | not null | now()
       send_inboxes                | text[]                   |           | not null |
       send_community_followers_of | integer                  |           |          |
       send_all_instances          | boolean                  |           | not null |
       actor_type                  | actor_type_enum          |           | not null |
       actor_apub_id               | text                     |           |          |
      Indexes:
          "sent_activity_pkey" PRIMARY KEY, btree (id)
          "sent_activity_ap_id_key" UNIQUE CONSTRAINT, btree (ap_id)
      
      • insaan@leftopia.orgOP
        link
        fedilink
        arrow-up
        2
        ·
        6 months ago

        Yes, and if a duplicate does arrive (as appears to be happening), the current code doesn’t do anything about the corresponding database error, resulting in a scary multi-line warning for something that could be safely ignored. A new Lemmy administrator (like me) has no way of knowing this is at best an info-level event, or even just a debug-level event since it has no real effect on anything.

    • Andrew@piefed.social
      link
      fedilink
      arrow-up
      1
      ·
      6 months ago

      The video was recording a VM that had been tunnelled through to with ngrok, so the HTTP details were from that software’s ‘Inspect’ window.

      (I don’t know how best to configure your server to ignore the errors, because Rust is too scary, ha ha).

      • insaan@leftopia.orgOP
        link
        fedilink
        arrow-up
        2
        ·
        6 months ago

        Cool, I’ve been meaning to check out ngrok sometime. Looks really useful.

        I don’t think there’s a way to filter out the problem since it appears to be an automatic warning due to an uncaught error. I have some ideas on a code fix now, and may submit a PR for it in the near future.