WTF Bites
-
@cartman82 said in WTF Bites:
- Random DNS failures
This is a known problem. The distributed fail here is epic.
-
@pie_flavor said in WTF Bites:
Yeah, I've noticed Chrome doing similar things recently, especially with pages that have Gif images in them.
-
@Tsaukpaetra Nah, completely unrelated. This happened when I started Minecraft.
-
@ben_lubar we do the same on our own hosts. We're using win acme on our own hosts.
-
@Greybeard said in WTF Bites:
@cartman82 said in WTF Bites:
- Random DNS failures
This is a known problem. The distributed fail here is epic.
That also means that Microsoft is innocent in this one, because the delays appear only when going through the kubernetes internal DNS that is used (badly¹) for service discovery between the components orchestrated by kubernetes itself. And according to the later comments on that bug, it appears the problem is in the internal DNS timing out on AAAA queries.
¹ Kubernetes creates sensible DNS names for services (which are load-balancing fronts for things) in the form servicename
.
namespace.svc.cluster.local.
. But for pods (the actual instances) while it gives them their names as hostnames, it does not register those in DNS, but instead gives them records of form dash-separated-ip-address.
namespace.pod.cluster.local.
. Hell, if I know the IP address, I can just write it and don't need DNS and if I don't, you haven't helped me a iota. And reverse records are not there for either.The whole thing seems managed with the approach works for me, let's ship it.
-
While on the subject of paging: what method do you think $projectIWorkedOn used to implement paging through the list of all items in its database?
Option 1
- Use whatever-database's flavour of SQL to limit the rows being returned, while ordering on some natural key or index so we get consistent results, not forgetting to specify which columns you require.
Option 1½
- Put the SQL above in a stored procedure. Trust that the returned columns include the ones you need.
Option B
SELECT *
every entry from the database;- Order and filter them in code.
Click for answer
If you've answered Option 1 or even Option 1½ you obviously must be new here.
But if you've answered Option B, well... not quite.
See, the "correct" answer was Option Ⅲ.Option Ⅲ
-
Load every entry (~100k) in the database, including every column (~20, including binary blobs);
-
Ignore everything you've just loaded except for serial numbers.
-
If you haven't done this already:
- Store list of serial numbers in a static field of a global class (class name
Globals
); - Order said list;
- What's this "multi-fredding" you are talking about?
- Store list of serial numbers in a static field of a global class (class name
-
Calculate indices:
start = page * pageSize;
// pages start at 0, obvslyend = start;
while(end < Globals.Items.Count && end-start <= pageSize) end++;
-
serialNos = "";
for(i = start; i < end; i++) serialNos += Globals.Items[i].Replace("'", "''") + ",";
serialNos = serialNos.Substring(0, serialNos.Length-1);
-
Ok, now that you have the list of serial numbers of the items you need to load, follow Option B.
-
} catch(Exception e){ /* write exception message to file in Program Files; return empty list; */ }
-
Click for answer
a static field of a global class (class name `Globals`);Got rid of (most of) that shit in Master Server, though a few remnants still remain in the form of a pseudo-singleton.
-
-
@ben_lubar we do the same on our own hosts. We're using win acme on our own hosts.
I have that on thedailywtf.com.
-
Apparently clang is better at it than gcc?
Yes and no. It produces better code, but it's C front-end (the part that's actually called
clang
) is missing a lot of features that are useful in embedded programming. Also, there's disagreement over what the semantics should be between the people wanting the features for embedded code and the people wanting the features for DSPs; they have incompatible language extensions.
-
@Zerosquare said in WTF Bites:
Which CPU/µP are you targetting?
Currently it's a variant of an ARMv5TE (because we had very cheap access to the IP for the CPU core) on an ancient process and with some highly custom bits and pieces on the side which mean we need our own OS layered on top, in particular there's quite a few CPU cores per chip and some gnarly multicast comms. The next generation of hardware will be a lot more modern, but that's not going to be available for quite a while.
-
clouds are interesting if you need large peeks, but general utilization is low
They're also interesting if you can tightly tie the CPU usage to particular funding streams, since then you can greatly simplify all the accounting.
-
@Tsaukpaetra said in WTF Bites:
pages that have Gif images in them.
That isn't how you pronounce Gif.
-
@ben_lubar said in WTF Bites:
Guess how much money I've spent on TDWTF SSL certificates.
Here's a hint: It's between $0.01 and $-0.01.So, $5 CAN?
-
@ben_lubar said in WTF Bites:
@pie_flavor said in WTF Bites:
FINALLY! A bug that isn't caused by NodeBB!
-
@blakeyrat said in WTF Bites:
Azure and AWS have gone years without downtime
https://azure.microsoft.com/en-us/status/history/
I know for sure that AWS has had some gigantic problems in the last year, but I can't find a list-of-problems page on their status site:
-
@ben_lubar Facts are a to praising Microsoft and bashing Google
-
@ben_lubar Goddamned you pedantic dickweeds, I mean a FULL outage.
Yeah all the cloud providers have about 583,000,232 products and those occasionally have downtime for various reasons.
-
@ben_lubar said in WTF Bites:
but I can't find a list-of-problems page on their status site:
That's because they're stored in a non public bucket with broken permissions, and then couldn't figure out how to fix it so just removed the page link from the site.
-
@Zecc yields: Option B-: Like option B but somehow worse.
Edit: Yep. Except it was called Option III.
-
@blakeyrat said in WTF Bites:
I mean a FULL outage
So, what you're saying is only Google's cloud has full outage every month?
-
@Zecc yields: Option B-: Like option B but somehow worse.
Edit: Yep. Except it was called Option III.
But a B- is still a pretty decent grade (except stupid grade inflation...)
-
@Benjamin-Hall B- is well within Sturgeon's Realm. Only A is acceptable.
-
@Benjamin-Hall B- is well within Sturgeon's Realm. Only A is acceptable.
And that, in a nutshell, is what's wrong with education in the US. "A or nothing" usually means one or both of
- strong pressure to give higher grades
- kids who can't get an A don't care what they get, since
(grade != A) === failure
(yes, education is bad enough to do its logic in Javascript).
-
@blakeyrat said in WTF Bites:
@ben_lubar Goddamned you pedantic dickweeds, I mean a FULL outage.
Yeah all the cloud providers have about 583,000,232 products and those occasionally have downtime for various reasons.
AWS had a world-wide S3 outage at one point recently that broke every other service they provide.
-
@Benjamin-Hall < A isn't failure broadly, it's failure to excel. Mediocre is still crap, but, it's definitely mediocre, and can satisfact some requirements. Sadly, programming is actually hard, and eventually punishes mediocrity.
Although, for the specific case under discussion somewhere several puns ago and its deliberately incompatible numbering system, the set
B
andB-
is an artifact of the notation and does not actually convey the regard the option labelledB-
is held in, which is lower. Your mom.
-
@HardwareGeek said in WTF Bites:
@ben_lubar said in WTF Bites:
@pie_flavor said in WTF Bites:
FINALLY! A bug that isn't caused by NodeBB!
Well, OK, that may be a bug that's caused by NodeBB.
Whenever I upload screen recordings, it's just a Google Drive embed, so you could always download the video file directly.
-
@Benjamin-Hall said in WTF Bites:
@Benjamin-Hall B- is well within Sturgeon's Realm. Only A is acceptable.
And that, in a nutshell, is what's wrong with education in the US. "A or nothing" usually means one or both of
- strong pressure to give higher grades
- kids who can't get an A don't care what they get, since
(grade != A) === failure
(yes, education is bad enough to do its logic in Javascript).
Can confirm.
-
@pie_flavor said in WTF Bites:
@HardwareGeek said in WTF Bites:
@ben_lubar said in WTF Bites:
@pie_flavor said in WTF Bites:
FINALLY! A bug that isn't caused by NodeBB!
Well, OK, that may be a bug that's caused by NodeBB.
Whenever I upload screen recordings, it's just a Google Drive embed, so you could always download the video file directly.You could just upload them to NodeBB directly. But then, when it generates a link to it, you have to make it embed by copying the link URL and pasting it as its own line so that the onebox embeds it.
-
@anotherusername I could. But ShareX just copies the link to my clipboard, so I don't have to bother with any sort of manual uploading.
I think @ben_lubar would be slightly annoyed at me if I told ShareX to upload my screen recordings directly to TDWTF instead.
-
@pie_flavor said in WTF Bites:
I think @ben_lubar would be slightly annoyed at me if I told ShareX to upload my screen recordings directly to TDWTF instead.
Ben, the king of giant screenshots?
-
@HardwareGeek said in WTF Bites:
Been
-
@HardwareGeek No, I mean as the auto upload service. If every single one of my screen recordings got auto uploaded to WTDWTF and that was the link I give out.
-
@pie_flavor said in WTF Bites:
@HardwareGeek said in WTF Bites:
Been
My phone loves to interpret taps as double-taps. Often autocorrect fixes this (but breaks other things, of course). In this case it didn't, because been is a perfectly valid word.
-
@HardwareGeek said in WTF Bites:
@pie_flavor said in WTF Bites:
@HardwareGeek said in WTF Bites:
Been
My phone loves to interpret taps as double-taps. Often autocorrect fixes this (but breaks other things, of course). In this case it didn't, because been is a perfectly valid word.
My recent update to Android 8.1 has introduced a weird kernel stutter that means on occasion it believes I'm still holding my finger down on the screen, which makes for really interesting words because a held-down action on my keyboard means "Yes, I really want this exact letter, don't correct it"
-
WTF, Microsoft??? What could you possibly be doing on the download site that requires FLASH PLAYER of all things?!?!?
Edit: It wasn't the Feedback widget:
-
That also means that Microsoft is innocent in this one,
If the customer had brought their own Kubernetes to Azure then I would have agreed with you here. But they appear to be using a Microsoft-provided Kubernetes service. Microsoft's should have known about this problem.
because the delays appear only when going through the kubernetes internal DNS that is used (badly¹) for service discovery between the components orchestrated by kubernetes itself.
I wouldn't say they appear only through Kubernetes. The long DNS search list and extensive NAT use of typical Kubernetes deployments are significant exacerbating factors.
And according to the later comments on that bug, it appears the problem is in the internal DNS timing out on AAAA queries.
No, the problem is in the NAT implementation. The rapid-fire dual DNS queries increase the probability of triggering the problem and the poor retry logic of libc's DNS client makes the impact quite bad, but those are merely contributing factors. That Kubernetes doesn't support dual-stack well anyway is just the cherry on top.
¹ Kubernetes creates sensible DNS names for services (which are load-balancing fronts for things) in the form servicename
.
namespace.svc.cluster.local.
.So you say the DNS names for services are sensible, so what makes the use "badly"?
But for pods (the actual instances) while it gives them their names as hostnames, it does not register those in DNS, but instead gives them records of form dash-separated-ip-address
.
namespace.pod.cluster.local.
. Hell, if I know the IP address, I can just write it and don't need DNS and if I don't, you haven't helped me a iota.A pods needs to have some DNS name; one constructed out of the IP address seems as good as any other. You don't necessarily need to use it.
-
Currently it's a variant of an ARMv5TE
Strange. ARM is a major target for GCC, it should generate at least decent code.
-
@Greybeard said in WTF Bites:
Microsoft's should have known about this problem.
Yeah, unhelpful “support” is totally their fault.
@Greybeard said in WTF Bites:
A pods needs to have some DNS name; one constructed out of the IP address seems as good as any other. You don't necessarily need to use it.
Why does it need one?
The one it has does not match it's configured hostname, there is no reverse record for it and it is not known in advance. Most things I can think of that would ‘need’ a DNS record are broken by one of these issues.
-
#1: C++ didn't support scoped
enum
s until C++11
#2: Scopedenum
s don't work with Qt's meta system, so while theQ_ENUM
macro doesn't complain,QMetaEnum::fromType
doesEDIT: Oh, apparently it does work, but instead of just being able to do this:
return QString(QMetaEnum::fromType<Asterisk::PBX::Channel::State>().valueToKey(this->m_state));
You need to fuck around with stuff like:
const QMetaObject &mo = Asterisk::PBX::Channel::staticMetaObject; int index = mo.indexOfEnumerator("State"); QMetaEnum metaEnum = mo.enumerator(index); return QString(metaEnum.valueToKey(static_cast<int>(this->m_state)));
Lovely.
-
@anonymous234 said in WTF Bites:
Our WordPress website's control panel has no less than 13 warning or info messages from plugins in every page.
It's not my job to maintain it though so I definitely won't touch them.
SHOCKING DEVELOPMENT: our server somehow caught malware.
Boss' proposed solution: "install some antivirus in it"
-
@anonymous234 said in WTF Bites:
@anonymous234 said in WTF Bites:
Our WordPress website's control panel has no less than 13 warning or info messages from plugins in every page.
It's not my job to maintain it though so I definitely won't touch them.
SHOCKING DEVELOPMENT: our server somehow caught malware.
Boss' proposed solution: "install some antivirus in it"
"Our building burned down."
"Reduce the thermostat temperature."
-
@ben_lubar I think a better analogy would be installing some fire alarms in the new building. But failing to remove the open barrels of gasoline located next to the wood-burning stove.
-
QString(QMetaEnum::fromTypeAsterisk::PBX::Channel::State().valueToKey(this->m_state));
You're dealing with Asterisk, so you're deeply in WTF territory anyways...
-
Apparently we have no less than 53 WP plugins installed in our site. Including one "malware scanner" and a bunch of "migration assistant"s and "database backup assistant"s (at least it sounds like we have every form of backup possible).
The funny thing is I just updated WordPress core and all the plugins in one click and it worked perfectly. So no excuses there.
-
@Zerosquare said in WTF Bites:
QString(QMetaEnum::fromTypeAsterisk::PBX::Channel::State().valueToKey(this->m_state));
You're dealing with Asterisk, so you're deeply in WTF territory anyways...
Well, I mean, I'm trying to make the interface to it more sane...
In C++...
Yeah, I'm doomed.
-
Pictured:
Right: "Premium" ice cubes, 1kg bag, brand "Iceberg", €0.99
Left: "Premium" ice cubes, 1kg bag, brand "Walter Gott" (?!?), €4.99What?!
-
@topspin one seems to be "premium ice balls" the other just "regular" ice cubes.
meh, if people want to pay exorbitantly for frozen water, why not ?
-
if people want to pay exorbitantly for frozen water, why not ?
Imagine that, they manage to sell frozen water even here
-
if people want to pay exorbitantly for frozen water, why not
From the bags in the picture, doesn't really look like it...