Also outs your report publicly, nice !

  • dev_null@lemmy.ml
    link
    fedilink
    arrow-up
    152
    arrow-down
    2
    ·
    edit-2
    3 days ago

    And Lemmy has an issue with it’s backend implementation which sometimes causes multiple copies of a comment being posted without the posters knowledge.

    It then gets flagged as spam and the poster banned. Ask me how I know.

    • idunnololz@lemmy.world
      link
      fedilink
      arrow-up
      21
      ·
      edit-2
      2 days ago

      As someone who implement a Lemmy client it might be a client side problem. If the server is struggling you will time out when sending the comment. If the client side has any sort of retry logic it will send the comment again. This can cause the comment to be posted multiple times. There might be a bug on the server as well but I know for sure it can be caused by the client.

      • dev_null@lemmy.ml
        link
        fedilink
        arrow-up
        18
        ·
        edit-2
        2 days ago

        It’s what you are describing, and it’s not a client problem. It’s impossible for a client to solve. You can’t tell whether a timed out request succeeded or not.

        Idempotent network requests are a standard feature of many APIs - sending the same request multiple times should result in only one action being performed, but Lemmy doesn’t support them yet.

        So yes, it’s “caused” by retries, but the bug is that the backend doesn’t properly support retries. Clients don’t do anything wrong.

        • idunnololz@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          edit-2
          2 days ago

          It could/should be handled by the server but it’s technically possible for the client to make due without it. You would need to handle it very carefully. For instance on timeouts, you can issue a get request to see if the comment posted. If it did then you do not issue another post.

          • dev_null@lemmy.ml
            link
            fedilink
            arrow-up
            2
            ·
            2 days ago

            Sure, that would work, but it’s a hacky solution, and involves needing to send more requests in a scenario where requests are already unreliable.

      • Draconic NEO@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        3
        ·
        2 days ago

        They should do what Reddit does and by default make a 5 second rate limit of sending posts and comments, the first one gets accepted, the next ones get rejected within the 5 second ratelimit.

        • idunnololz@lemmy.world
          link
          fedilink
          arrow-up
          9
          ·
          2 days ago

          Another popular solution I see is to have the client generate a UUID when posting. Then the server can very easily tell if a request is a duplicate.

          • JackbyDev@programming.dev
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 day ago

            I’ve seen this concept called idempotency tokens. I thought it was common but a quick search didn’t find any articles on it so maybe the name is not that common.

        • dev_null@lemmy.ml
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          2 days ago

          It doesn’t solve the problem of your comment request timing out after waiting 30 seconds in a spotty mobile connection. Now that it timed out, you don’t know if it was actually posted or not. A proper API would not post duplicate comments in response to retries of a request that already succeeded (without the client knowing).

      • dev_null@lemmy.ml
        link
        fedilink
        arrow-up
        23
        arrow-down
        1
        ·
        3 days ago

        I searched for the issue when it happened to me and saw a bug report for it with the Lemmy devs confirming.

    • henfredemars@infosec.pub
      link
      fedilink
      English
      arrow-up
      12
      ·
      3 days ago

      I did have this happen a few times early on, about a year ago, but haven’t seen it in a while. I’m hoping they fixed some of those bugs.

    • saroh@lemmy.worldOP
      link
      fedilink
      arrow-up
      4
      ·
      3 days ago

      Well shit. At the same time the ban hammer seems a bit easy both ways :') Like you can at least look at the poster’s history…

      • dev_null@lemmy.ml
        link
        fedilink
        arrow-up
        5
        ·
        3 days ago

        It was reverted when I messaged the mod that banned me, but obviously not a great situation.