Moonspeaker said:
Many thanks to everyone who got this repaired so quickly. Any idea how it originated, or would that be too technical for anyone (such as myself) who doesn't do actual coding for a living?
The Javascript problems were basically because uploader names were removed from the HTML in a certain place, but it turns out blacklists relied on this (it's possible to blacklist certain uploaders by putting user:<name>
in your blacklist; not many people use this). That caused an error when initializing the blacklist code, which halted the rest of the site's Javascript from loading. Because blacklists happen to be one of the very first things to load, this broke nearly everything Javascript-related on the site. But this bug didn't affect Mod+ users (since they can still see uploaders), which is probably why it wasn't caught sooner.
The problems with broken uploads / posts were an unrelated issue. Basically, most of the code controlling how Danbooru stores images had to be rewritten. In the very beginning things were simple: Danbooru had one server, and all images were stored on that server. Later Danbooru gained another server, and more recently it gained two more servers, solely for hosting older images.
Now images are spread across four different servers: sonohara, hijiribe, raikou1, and raikou2. Raikou1 holds posts id:1..850000, raikou2 holds posts id:850000..2000000, hijiribe holds posts id:2000000..3000000, and sonohara + hijiribe hold posts id:>3000000.
But this is a complex setup that the code wasn't originally designed for, so it had some bugs, especially with replacing old posts on raikou1 or raikou2. Fixing this required reworking a decent amount of code. This introduced some bugs that weren't caught, because it's hard to replicate the Danbooru's full setup in a test environment.