Skip to content
Fragmented Development

I am the problem

The "fediverse", as we call it, is a collection of self-hosted servers that communicate and federate with each other using open protocols. GNUsocial is one such server, and that's the one I run on my server. Friendica is another piece of software that does a similar job. These servers are designed to work together, unless I mess that up.

The road to hell is paved with good intentions, or so they say.

My problem began when I read a quick article about Nginx best practices, titled pitfalls and common mistakes, and realized I had made one of the common mistakes. Several, actually. They were not only slowing down my server, but possibly leaving them insecure. Egads!

I quickly edited the config, tested it for syntax errors, and put it into production. Bleeding edge development, everyone! Watch out! What I didn't realize is that I had broken pagination within GNUsocial. Not a big deal, but I didn't discover my mistake for several days.

Several Friendica instances noticed, however. Friendica was programmed to pull every page of a conversation through the OStatus API, until it ran out of pages. Since my instance didn't paginate, and kept returning the first page of the same conversation for each page request, Friendica dutifully kept requesting pages, ad infinitum, several times a second.

After some harrowing days of manually blocking IPs, filing bug reports where I was correctly informed that I was the problem, and another tweak in configuration, everything seems to be fixed.

For now.

Tags: php server gnusocial


Comments

Wow, that sounds like all kinds of fun. I'm still a newbie with nginx myself, so I only hope everything is set up correctly.

Storm Dragon – https://stormdragon.tk/


Add Your Comment