“Finnegans Wake is the greatest guidebook to media study ever fashioned by man.” - Marshall McLuhan, Newsweek Magazine, page 56, February 28, 1966.

I have never done LSD or any other illegal drugs, but I have read FInnegans Wake: www.LazyWake.com

Lemmy tester, “RocketDerp” is my username on GitHub

  • 7 Posts
  • 179 Comments
Joined 1 year ago
cake
Cake day: June 2nd, 2023

help-circle

  • I’ve largely given up on pull requests… for sake of sanity. But I waded back in…

    I made a pull request today… and I very strategically choose to do it with minimal of features so that it would just go through… and I got lectured that JOIN is never a concern and that filtering based on the core function of the site (presenting fresh meat to readers) was a bad use of the database. I’ve never seen hazing on a project like this. Memcached and Redis should be discussed every day as “why are we not doing what every website does?”, but mum is the word.


  • Only way to solve this (imho) is to reinstall Lemmy BUT use another subdomain.

    I wold agree that this is worth considering as an approach to not clash identity and get into custom SQL or Rust programming. But there isn’t even really a procedure in place to decommission the old lemmy entity… so another damned if you do, damned if you don’t in 0.18.4 era.

    I’m a little surprised that the federation private key/public key signing doesn’t get upset about all new keys appearing on the same domain name. I’ve tried to get details of exactly how a server joins the Lemmy network and gets discovered over on !lemmyfederation@lemmy.ml but haven’t gotten any actually discussion on the details.

    What do you think? Will this work?

    I’ve seen people nuke and start-over their database from empty several times while having problems setting up NGinx and Docker… or whatever part.

    I’m glancing at the list of SEQUENCE in Lemmy…

    CREATE SEQUENCE public.admin_purge_comment_id_seq
    CREATE SEQUENCE public.admin_purge_community_id_seq
    CREATE SEQUENCE public.admin_purge_person_id_seq
    CREATE SEQUENCE public.admin_purge_post_id_seq
    CREATE SEQUENCE public.captcha_answer_id_seq
    CREATE SEQUENCE public.comment_aggregates_id_seq
    CREATE SEQUENCE public.comment_id_seq
    CREATE SEQUENCE public.comment_like_id_seq
    CREATE SEQUENCE public.comment_reply_id_seq
    CREATE SEQUENCE public.comment_report_id_seq
    CREATE SEQUENCE public.comment_saved_id_seq
    CREATE SEQUENCE public.community_aggregates_id_seq
    CREATE SEQUENCE public.community_block_id_seq
    CREATE SEQUENCE public.community_follower_id_seq
    CREATE SEQUENCE public.community_id_seq
    CREATE SEQUENCE public.community_language_id_seq
    CREATE SEQUENCE public.community_moderator_id_seq
    CREATE SEQUENCE public.community_person_ban_id_seq
    CREATE SEQUENCE public.custom_emoji_id_seq
    CREATE SEQUENCE public.custom_emoji_keyword_id_seq
    CREATE SEQUENCE public.email_verification_id_seq
    CREATE SEQUENCE public.federation_allowlist_id_seq
    CREATE SEQUENCE public.federation_blocklist_id_seq
    CREATE SEQUENCE public.instance_id_seq
    CREATE SEQUENCE public.language_id_seq
    CREATE SEQUENCE public.local_site_id_seq
    CREATE SEQUENCE public.local_site_rate_limit_id_seq
    CREATE SEQUENCE public.local_user_id_seq
    CREATE SEQUENCE public.local_user_language_id_seq
    CREATE SEQUENCE public.mod_add_community_id_seq
    CREATE SEQUENCE public.mod_add_id_seq
    CREATE SEQUENCE public.mod_ban_from_community_id_seq
    CREATE SEQUENCE public.mod_ban_id_seq
    CREATE SEQUENCE public.mod_hide_community_id_seq
    CREATE SEQUENCE public.mod_lock_post_id_seq
    CREATE SEQUENCE public.mod_remove_comment_id_seq
    CREATE SEQUENCE public.mod_remove_community_id_seq
    CREATE SEQUENCE public.mod_remove_post_id_seq
    CREATE SEQUENCE public.mod_sticky_post_id_seq
    CREATE SEQUENCE public.mod_transfer_community_id_seq
    CREATE SEQUENCE public.password_reset_request_id_seq
    CREATE SEQUENCE public.person_aggregates_id_seq
    CREATE SEQUENCE public.person_ban_id_seq
    CREATE SEQUENCE public.person_block_id_seq
    CREATE SEQUENCE public.person_follower_id_seq
    CREATE SEQUENCE public.person_id_seq
    CREATE SEQUENCE public.person_mention_id_seq
    CREATE SEQUENCE public.person_post_aggregates_id_seq
    CREATE SEQUENCE public.post_aggregates_id_seq
    CREATE SEQUENCE public.post_id_seq
    CREATE SEQUENCE public.post_like_id_seq
    CREATE SEQUENCE public.post_read_id_seq
    CREATE SEQUENCE public.post_report_id_seq
    CREATE SEQUENCE public.post_saved_id_seq
    CREATE SEQUENCE public.private_message_id_seq
    CREATE SEQUENCE public.private_message_report_id_seq
    CREATE SEQUENCE public.received_activity_id_seq
    CREATE SEQUENCE public.registration_application_id_seq
    CREATE SEQUENCE public.secret_id_seq
    CREATE SEQUENCE public.sent_activity_id_seq
    CREATE SEQUENCE public.site_aggregates_id_seq
    CREATE SEQUENCE public.site_id_seq
    CREATE SEQUENCE public.site_language_id_seq
    CREATE SEQUENCE public.tagline_id_seq
    CREATE SEQUENCE utils.deps_saved_ddl_id_seq
    
    

  • Let the servers keep crashing, tell everyone to add new instances to help with performance, which puts 1500 rows into the database tables that used to have 50 rows and invokes a massive federation 1-vote-1-https overhead… causing more crashing… all the while ignoring the SQL design of machine-generated ORM statements and counting logic hidden in the background triggers.

    … keep users off your sever as a method of scaling by crashing. It’s one of the more interesting experiences I’ve had this year! And I spent all of February and March with the release of GPT-4… which was also interesting!





  • Lemmy is pretty immature as code to actually run in production. It may be well over 4 years old, but the whole thing seems to have very little in the way of information that a server operator can look at to check the health and problems under the covers. It also doesn’t deal with unrecognized data very well and hides a lot of errors in a log where the messages are often not very much of a hint what is going on.

    Lemmy surely is unique, as I almost never see people using it actually criticize the code for quality assurance and testing. More often than not, I see people cheering and defending it. I’ve had to look through this experience and code as it is more run like an art project or a music band than any serious focus on data integrity or performance concern.


  • if it were me right now with Lemmy 0.18.4, I’d take the server offline, do a PostgreSQL dump file - keep a copy, then hand-edit the sequence numbers in the dump file - and do a restore.

    you probably only had a few users, so I would set user to 100, person id can be higher because of federation - but jump ahead to 10000 maybe. Post and comment set ahead to 10000 … and community set ahead to 10000 because that gets federated

    the PostgreSQL sequence numbers should only get used on newly created objects here-forward.




  • This basically shuts my idea down

    it’s not very difficult to modify the code for something like this… and closing off registration wont’ let anyone else login and create new content form your istance.

    Personally the load on the major servers by having one more instance that subscribes to everything is why I think people should back off from creating more than the 1500 instances Lemmy network already has. Delivery of every single vote, comment, post 24 hours a day just so one person can read content for an hour or two a day.

    That makes sense for email systems where all that content doesn’t have to be sent, but for Lemmy it’s a huge amount of overhead.




  • I personally would need to dig into testing and code again to give answers with confidence. What I’m trying to say more than anything is… don’t assume. The level of mistakes in Lemmy’s more technical back-end code are pretty high from my experience, especially when it comes to multiple servers involved (comment deletes not being sent to all servers was a situation I tracked down). What I do know is that there is very little written out there about people actually tearing it apart and showing what works… a lot of stuff gets logged in server logs as errors that almost nobody can explain. Either it’s mistakes in apub JSON or other non-lemmy servers, or older versions of Lemmy, etc.

    When you say packages get forwarded to whatever instance wanted (if I understand correctly) you don’t “unpack” (e.g check if it’s a valid request)

    the pack metaphor isn’t that great. But it is signed, and the receiving server checks a signature. But I really have not seen anyone discuss how those signatures are exchanged in the first place, and I’ve seen people say they re-installed their entire instance - which I assume generates a new set of signing keys for the same domain name… and I know Lemmy starts with 1 in index for post, comment, person - and would end up generating the same numbers for different content.

    I haven’t seen much eye towards auditing any of this works, and if it even is a good design. Even 2 months ago there were some aggressive timeouts that were causing delivery to fail. And when something fails, the person who comments or posts doesn’t get notified…

    There is some deep stuff in lemmy., every community has a private key/public key pair, as does each person - but I’m not even sure that is used at all and was an ambition. I rarely see the topic actually come up and I’ve been listening for this kind of deeper technical topics… and created !lemmyfederation@lemmy.ml to try and better organize it.

    Thanks again, and sorry for the ramblings.

    I’m pretty much rambling myself… my repeat point is: don’t assume. I would not describe Lemmy as battle-hardened against attacks or spoofing that someone can find to bypass the current logic.


  • Like normal people! :D Go to another instance, if you find something interesting

    So “normal people” would go read another instance just to bring a single comment or post over. They may as just well join the other instance. Which is what I see actually happening… Many of these lemmy accounts are the same person duplicated to route around crashes.

    But it’s a little bit sad, that you’ve never done this and only look at all.

    If you had any clue what I have been personally doing with lemmy for the past 90 days, you would laugh at yourself. I’ve been logging in to several different Lemmy servers every single day for months and posting about my observations… such as when a big instance put new user interfaces online, upgrade their backend, crash on their home page, etc.


  • Having worked with lemmy_server code for months, I wouldn’t trust it in practice. Unless someone produces a pretty through test to validate that it actually works as intended when out-of-band data delivery attempts are made. And for discussion sake, I am assuming comment and posting “messages”, and not private messages… which is a whole different set of behaviors.

    when a user homed on lemm.ee comments on a post where the community is hosted on lemmy.world, it would get delivered to lemmy.ml by lemmy.world, not the origin lemm.ee instance.

    Messages are sent with a digital signature that only the original instance could craft.

    I don’t think the actual message carries a signature from the origin instance, in this case lemm.ee - I could be wrong, because it may not unpack and repackage it before forwarding to subscribed instance servers. But there are some very short timeouts on these signatures and HTTP connections, and I think it does unpackage it and repackage a public comment message.

    I think lemmy.ml would need to go fetch the profile for the then unknown user to be able to get the display name and other details of the lemm.ee comment creator to display on the comment. The signature for the comment I think would actually only validate lemmy.world to lemmy.ml - and if lemmy.ml already has the profile of the lemm.ee user stored locally it may not verify it (and could be an entirely different install with the same username). But I don’t think many have ventured into study the code in these areas. The whole process hasn’t been examined that much and I wouldn’t be surprised at all if there are issues with post and comment getting dropped because servers aren’t all reachable at the right times for these steps.





  • it does show the comments on incognito

    That means it is tied to your login, something is set in your preferences so that you aren’t seeing content.

    Picking “undetermined” isn’t the same as having never touched it. There is a steady stream of people who accidentally touch the language settings and say they don’t see anything.

    People have called out how confusing the whole thing is: https://lemmy.world/post/523012

    Sorry I can’t be specific on how to click and what works, I just know you aren’t the first to get their account where it stops showing routine content.