WTF Bites
-
@Polygeekery said in WTF Bites:
TRWTF is planning software that doesn’t let you edit walls
It will, but it is just easier to do it over. Plus it is easy to miss some. Doing it over ensures I get them all.
I'm assuming all of the walls aren't the same height then? 'cause in a sensible software you could just ctrl-click all the ones of the same height and mass-edit it...
-
-
@Polygeekery said in WTF Bites:
@Tsaukpaetra said in WTF Bites:
sensible software
There is no such thing.
I was merely violently agreeing with you.
-
@Polygeekery said in WTF Bites:
@Tsaukpaetra said in WTF Bites:
sensible software
There is no such thing.
Well, not since the 90s.
-
Damn, -ed.
-
@Zerosquare said in WTF Bites:
Damn, -ed.
They made one of my favourite Amiga games, it had a great intro:
-
-
Does that mean "I bumped into this while doing my work" or "the reason I know it's like this is because it's my work"?
-
Today we've been trying to update our version of a library.
... and it won't load, because the release ZIP contains a 32-bit DLL in the middle of the 64-bit ones. And yes, it's linked through the import table, so it can't be some intentional run-time dynamic linking shenanigans.Edit: Oh, and then we downloaded the sources to try and build a 64-bit version of that DLL. Of course, it fails.
Edit2: Turned out I was The Real WTF: The bitness mismatch wasn't the problem.
-
Does that mean "I bumped into this while doing my work" or "the reason I know it's like this is because it's my work"?
Let's not jump to conclusions. He might've inherited the codebase.
-
@Cursorkeys: the Game Boy Color version of that game even has a short video sequence:
Cannon Fodder GBC intro (with audio reconstructed from ROM rip) – 00:39
— Gameboygenius(but the audio apparently sounds worse on real hardware)
-
https://i.imgur.com/Nsgm33g.png
https://i.imgur.com/ZJl2pYx.png
https://i.imgur.com/SvhwJMR.png
https://i.imgur.com/B7aeqY2.png
https://i.imgur.com/Vr45LyZ.png
Good old users.
-
@pie_flavor avatar checks out!
-
@pie_flavor
https://i.imgur.com/rdiUWsz.png
How astoundingly useful.
-
@pie_flavor Time for the clue-by-four!
-
@pie_flavor said in WTF Bites:
@pie_flavor
https://i.imgur.com/rdiUWsz.png
How astoundingly useful.Hmm. Sounds to me like an internal error occurred while executing the command. That sucks 🤷♂️
-
@sloosecannon the error ended up in fact being that in their YML file they used one smart quote about four hundred lines down.
-
@pie_flavor You have a lot more patience than I do.
-
WTF of the day is a double ORACLE, again: MySQL && Java.
We run a bunch of Galera 5 database clusters that developers access using MySQL Connector/J. I updated the test system and got a complaint that the update causes the application to crash with an error from the database driver indicating it doesn't understand the
CEST
time zone and they had to downgrade the driver from 8.x to 5.x to fix it.
Three major versions down, and that one works?
Turns out 8.x is the direct successor of 5.x and a separately maintained branch. It's MySQL. But that's not TRWTF.So why did 5.x apparently understand one of the world's most commonly used time zones and 8.x doesn't? Well, that's because neither did 5.x, they just changed a few defaults in 8.x so that 8.x will now need to understand the server's time zone where 5.x simply ignored it unless you explicitly told it otherwise. Our developers upgraded the driver to 8.x in winter so they didn't notice because it does understand
CET
. And as the server only checks its time zone once on startup, they didn't find out at DST switch time either, only when I restarted the box for system updates.
Not TRWTF either.To fix it, I found you can add an entry to
my.cnf
(cnf, cnf, cnf. Seeing this DOS relic on a 21st century Linux box makes me aggressive already) to configure the server to something likeEurope/Berlin
that uses the zoneinfo DB to automagically take DST into account without changing the time zone name twice a year, which is admittedly a stupid concept to begin with. Tried it out on the first node, restarted - and it doesn't start because it doesn't understand the name. OK, I missed a step there: it's too stupid to use the system zoneinfo; you have to usemysql_tzinfo_to_sql
to convert the zones into its internal format (and remember to do that whenever the system files change!). So I do that, start the node again - and the whole cluster goes down in flames because it just proudly told all the other nodes of its shiny new time zone that they don't understand and instead of just not letting it join the party they shit all over themselves.
but not yetSo I get the cluster up again with the old zone name and try to set up the zoneinfo tables on all the nodes before reconfiguring the first. Works fine on all nodes. Reconfigure Node 1, restart:
unknown time zone
.
I just loaded the fucking tables, what else do you want?!
Check the tables: they'res empty. Actually, they're also empty on node #2, only #3 is fine. Load it again on #1: now it's fine on #1 but node 2 and 3's are emptyTurns out those tables are MyISAM, and for raisins can't be anything else. MySQL's zoneinfo conversion tool creates SQL to first
TRUNCATE
everything and then reload the tables with data read from the file system. And Galera Cluster? It replicates theTRUNCATE TABLE
to all nodes but then silently drops all the followingINSERT
s because MyISAM.I worked around it by creating a dump without any DDL and copying that to every node before reconfiguring them, cleansing my workstation with chicken blood and spending the rest of the work day fapping furiously over a PostgreSQL manual.
-
Turns out 8.x is the direct successor of 5.x and a separately maintained branch.
MariaDB bumped straight to 10.x, so I am rather surprised they didn't take it up to eleven.
Turns out those tables are MyISAM, and for raisins can't be anything else. MySQL's zoneinfo conversion tool creates SQL to first TRUNCATE everything and then reload the tables with data read from the file system. And Galera Cluster? It replicates the TRUNCATE TABLE to all nodes but then silently drops all the following INSERTs because MyISAM.
Yeah, Galera cluster can only replicate InnoDB (and XtraDB) tables.
It is also fragile as shit. I've spent couple of weeks in the fall rewriting this solution, to 1. get rid of the extra etcd and 2. make the restarting actually wait for all nodes, because the etcd-based version forgets about them in a couple of seconds, so it does not actually wait for the most recent node if you let it sleep for a bit anyway.
The customer now wants it modified to a RHEL image (I used the official docker, which is Ubuntu-based) and the start-up script is very different and I was called off to another project, so nobody got a round tuit yet.
Of course is customer who requires “high availability”, without ever specifying it further, but also requires that the application restarts automatically after complete shutdown, because all the “HA” nodes end up running on one virtualiser in one server room that needs to be restarted for updates occasionally…
-
Turns out those tables are MyISAM, and for raisins can't be anything else. MySQL's zoneinfo conversion tool creates SQL to first TRUNCATE everything and then reload the tables with data read from the file system. And Galera Cluster? It replicates the TRUNCATE TABLE to all nodes but then silently drops all the following INSERTs because MyISAM.
Yeah, Galera cluster can only replicate InnoDB (and XtraDB) tables.
That used to be my understanding, and that would be sort of OK. TRWTF is that it selectively replicates some operations on them -- and of course that it does weird shit under the hood that will break if you change the system tables to a replicatable engine.
It is also fragile as shit. I've spent couple of weeks in the fall rewriting this solution, to 1. get rid of the extra etcd and 2. make the restarting actually wait for all nodes, because the etcd-based version forgets about them in a couple of seconds, so it does not actually wait for the most recent node if you let it sleep for a bit anyway.
Of course is customer who requires “high availability”, without ever specifying it further, but also requires that the application restarts automatically after complete shutdown, because all the “HA” nodes end up running on one virtualiser in one server room that needs to be restarted for updates occasionally…
Kubernetes on a single hypervisor? Awesomeness. It's webscale!!!1
-
Yeah, Galera cluster can only replicate InnoDB (and XtraDB) tables.
That used to be my understanding, and that would be sort of OK. TRWTF is that it selectively replicates some operations on them -- and of course that it does weird shit under the hood that will break if you change the system tables to a replicatable engine.
Well, yeah, because it is pretty much an ugly hack.
It is also fragile as shit. I've spent couple of weeks in the fall rewriting this solution, to 1. get rid of the extra etcd and 2. make the restarting actually wait for all nodes, because the etcd-based version forgets about them in a couple of seconds, so it does not actually wait for the most recent node if you let it sleep for a bit anyway.
They probably have a better solution by now, because they were also working on it. But when I started, they had a prototype for Docker Swarm, so it wasn't using the Kubernetes API, but its own Etcd, because Docker Swarm does not have any storage.
Of course is customer who requires “high availability”, without ever specifying it further, but also requires that the application restarts automatically after complete shutdown, because all the “HA” nodes end up running on one virtualiser in one server room that needs to be restarted for updates occasionally…
Kubernetes on a single hypervisor? Awesomeness. It's webscale!!!1
It's not ‘webscale’, because it is not web. It is an application that only a couple of managers work with, and because the jobs it does take hours to days, an hour outage here or there is absolutely inconsequential. But as a huge corporate, they have a requirement checklist somewhere, and it has an item for ‘high availability’, so they had to have it.
And they had to have it before they decided on what infrastructure they'll run it on, so they took a bunch of virtual machines and installed it there. Then it was discovered that they actually have an (on premise) OpenShift where they will run it. That is why they now want to base it on RedHat Enterprise images, because OpenShift can rebuild docker images from updated bases, and the security support provides them with updated RHEL images.
-
-
It replicates the TRUNCATE TABLE to all nodes but then silently drops all the following INSERTs because MyISAM.
Reminds me, when we were testing the Galera cluster, every few restarts some nodes forgot their users. Completely, including the local admin, so they were basically unrecoverable. The users tables are also MyISAM, but due to their importance (the other system tables are basically expected to be filled in once on installation and then left alone), Galera has special synchronization mechanism for that. Except sometimes it breaks down with no trace as to what happened.
-
@pie_flavor said in WTF Bites:
@sloosecannon the error ended up in fact being that in their YML file they used one smart quote about four hundred lines down.
Did you ever find out what the actual command was?
-
Does that mean "I bumped into this while doing my work" or "the reason I know it's like this is because it's my work"?
Let's not jump to conclusions. He might've inherited the codebase.
In which case it's the first option.
-
@Zecc he might've inherited the codebase 10 years ago and still haven't fixed the problem.
-
@Gąska We are in violent agreement here.
-
The most annoying thing about NodeBB's API is that, as far as I can tell, all the database records are just state bags of random properties, and all of the API methods just return those as raw hash maps.
There's no sense of schema. Plugins add arbitrary fields onto whichever object they want with conflicting naming and typing conventions... So you'll see
camelCase
andsnake_case
andwhatever:this:is
all in the same object; the value0
might mean 0 or null or false, depending on which component put it there. Some of the properties are redundant - dates tend to be specified as both a number AND a string, for example - and all properties seem to be optional. Even some of the Very Important fields change arbitrarily (a lot of schema changes had to be made to get up and running again since 2016).Here's a snippet from a TypeScript definition I had to write:
-
There's no sense of schem
Web.scale.
In all seriousness, the way the plugin/"DB" architecture is implemented in , this is what I would expect.
-
-
https://i.imgur.com/v828DDJ.png
Wat? That's like complaining that people can see the source code of your webpage.
-
You can't make this shit up.
https://i.imgur.com/52TBsp9.png
-
@pie_flavor said in WTF Bites:
You can't make this shit up.
https://i.imgur.com/52TBsp9.pngSeems cromulent to me.
-
-
@pie_flavor said in WTF Bites:
https://i.imgur.com/v828DDJ.png
Wat? That's like complaining that people can see the source code of your webpage.
Shhhh! They might get heart attack when they learn it!
-
@pie_flavor said in WTF Bites:
@sloosecannon the error ended up in fact being that in their YML file they used one smart quote about four hundred lines down.
Doesn't sound very smart.
-
@pie_flavor said in WTF Bites:
You can't make this shit up.
https://i.imgur.com/52TBsp9.png
-
Seriously IMDB?
I guess it's kind of fitting that the one that anyone would ever care about and be searching for is the fifth result
-
@hungrier: did you type just "fifth element", without "the"? In that case, the results makes sense if they only use similarity, not popularity.
-
@Zerosquare I did, but that's still dumb.
-
-
Outlook was updated and now shows 1 unread email. It's not a recent email so I filtered on unread and...
-
-
-
YouTube will end my ad in
#NaN!
seconds!
-
There's no sense of schema.
Yes. I believe it originally used Redis, or was at least designed to be able to use it. They also made it work with MongoDB. In any case, everything was essentially key/value.
@ben_lubar has done work to get it into postgresql, but even then it's mostly still full of json. I think he originally hoped to make a real schema out of it but that's never really happened. Probably got busy with the rest of his life.
-
@boomzilla said in WTF Bites:
Probably got busy with the rest of his life.
-
-
Google says it doesn’t use this information to sell you ads.
Yeah, right.