The Weirdest Linux Bug Ever Discovered
ฝัง
- เผยแพร่เมื่อ 8 ก.ย. 2024
- You've seen a bunch of weird bugs on Linux but I think this is one of the strangest, the can't print on tuesday bug, yes that is an accurate description of what the bug caused.
==========Support The Channel==========
► Patreon: brodierobertso...
► Paypal: brodierobertso...
► Liberapay: brodierobertso...
► Amazon USA: brodierobertso...
==========Resources==========
Hacker News Post: news.ycombinat...
Ubuntu Bug: bugs.launchpad...
OpenOffice Bug: www.openoffice....
File Bug: bugs.launchpad...
=========Video Platforms==========
🎥 Odysee: brodierobertso...
🎥 Podcast: techovertea.xy...
🎮 Gaming: brodierobertso...
==========Social Media==========
🎤 Discord: brodierobertso...
🐦 Twitter: brodierobertso...
🌐 Mastodon: brodierobertso...
🖥️ GitHub: brodierobertso...
==========Credits==========
🎨 Channel Art:
Profile Picture:
/ supercozman_draws
#Linux #OpenSource #FOSS #LinuxDesktop #UbuntuLinux #Ubuntu
🎵 Ending music
Track: Debris & Jonth - Game Time [NCS Release]
Music provided by NoCopyrightSounds.
Watch: • Debris & Jonth - Game ...
Free Download / Stream: ncs.io/GameTime
DISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.
On today's episode of Teaching Sand To Think Was A Mistake:
I prefer the term enchanted rocks
well, teaching sand to think has in principle some relation to the problem ( sand = silicon and computer chips are made out of silicon). Not sure is that connection intended or coincidence.
@@ClemensKatzerbrother, that was the entire stick of his comment lmao
@@thahrimdon Alright, thanks. Was guessing so but not sure.
My favorite line is "Computer help us to get things done faster, which we wouldn't need to be doing without them in first place".
@@kreuner11 More computer manuals need to be written like alchemical texts like the Ripley Scroll.
I remember "Can't send e-mail farther than 500km"
Beat me to it! Similar perfectly reasonable explanation once you discover the root cause.
There's also the phase of the moon bug. Happened both in ancient CS history (some timestamp code at MIT) as well as at CERN, who first blamed software, then discovered that the moon's gravity was bending their particle accelerator.
@@BlakeHelms sendmail gives me ptsd...
@@methanbreather* smtp
Oh! No! Unix Hater Book y haunting me again! AAAAAHHHH!
I remember mum complaining that her “mouse kept disappearing “
Next bug report was, “it’s when the sun comes out”.
Turned out that opto-mechanical mice do fail in very bright light and not moving a mouse hides the pointer. Good bug report mum!
that is fascinating, how long ago was this? and how did you end up "fixing" it?
@@3laws292 I think it was mid-90s. Mice still had balls but also a light that shone through toothed wheels for motion detection. We ended up pulling the blind over the study sky light :-)
Kind of had that at church, I set up an temporary audio system in their hall for an 'Alpha course', however the CD player refused to run, eventually I found a piece of strategically placed cardboard between it and a sunny window fixed the problem.
Yep, we had that too, our report was "mouse does not work in the afternoon". Funny thing was it worked for us when we went there to check. All IT guys had bigger hands and we held the mouse differently so we shielded it from the sun :)
Am I the only one that read "house"
Credit to Steve’s wife who spotted the pattern.
100% Steve credited her. I’m amazed at the ability of people to skip that step. It frankly *adds* to the enigma. Sometimes the end user does have the best diagnostics
It's odd, but it's the type of reason you might be more likely to spot because you're just a regular user and not a tech person.
I can hear it now:
"Oh, it's Tuesday. It never prints on Tuesday."
"What do you mean, 'It never prints on Tuesday'?"
"It doesn't. Pay attention, and you'll see."
Sure enough.
Sometimes it takes a woman's intuition to notice these kinds of things.
@@seheyt That's why I sometimes discuss bugs I'm having with my tech illiterate dad, he actually helped me find the root cause a few times with his questions that would be dismissed by many people.
Yay Steve's wife!!!
Why would you want to print on a Tuesday? Recommend the user to plan ahead of time. #wontfix
Modern GNOME developer confirmed.
Why would you even want to print at all? Just draw it!
Next, we’re gonna have mail servers that don’t work on Sundays
Why would you print?
It just wastes paper.
"Printers aren't userfriendly and buggy.. It shouldn't be officially supported until we find more modern way to solve this issue."
*drops printers support from Gnome Settings panel.
[Btw I use Gnome and I love it]
This reminds me of a story my dad told me. My dad used to repair motorcycles, so a customer comes in and says his bike isn't running right but only on Sunday mornings. The customer says the bike runs fine the rest of the week but on Sunday mornings it has no power and can barely make it up hills, so my dad logically assumes the customer is doing something stupid. So it takes about a half hour to get the customer to walk step by step through everything he does on Sunday mornings... get coffee, get the paper then the bike starts running poorly. So after extracting every little detail it turns out the guy didn't have a good way to hold the paper while riding, no bags, no luggage rack, so he puts it under the seat and on this bike the air intake in under the seat so the extra large Sunday edition was just enough to restrict the air intake, not enough to kill the engine but enough to prevent it from making any real power.
That's a stupid place to put in an air intake tbh
@@betaplay2914 On a motorcycle there aren't many places you can put the air intake, under the seat is common because it's fairly protected from dirt kicked up by the tires,
@@SomnolentFudge You get ventilated seats as a bonus
Heard similar with a carburettor car, back in the day.
PROBLEM: Owner tells the mechanic he goes into the shop, buys a tub of ice-cream, sometimes the car needs a long crank to warm restart. Owner advised to make notes. He does so. Car crank problem occurs when owner buys vanilla ice-cream. If he buys any other flavour ice-cream, the car restarts straight away.
REASON: the vanilla ice-cream is the most popular seller, so the freezer cabinet is located on its own at the front of the shop. In the shorter time it takes to buy vanilla, the car engine heat-soaks and petrol vaporizes in the fuel line causing a vapour bubble/lock, so the engine needs extended crank to get cooler fuel up from the tank.
Buying ice-cream from the other freezers at the back of the store gives the engine more time to cool down and the vapour bubble to disappear.
I feel like I run into so many problems like this in my own life, or not even problems just like explanations for things I was wondering about. Like when I start to go digging in why a certain thing happens in my appartment or something I almost always figure out that it's some bizarre alignment of completely unrelated things. I don't know if this just happens to me or I'm just the only person willing to go looking into seemingly trivial things.
The weirdest problem that I know of happended with an electronic microscope.
It worked perfectly but sometime, it seemed that it would drop the sample by 1 micron.
The reason was because the microscope used a hydraulic table to deal with the vibrations.
And whenever someone used the toilet, one floor above, the water pressure dropped by just
enough to mess up with the hydraulic system causing the table to drop.
The guy who found the solution was a pure genius !
I heard a similar story, where by analyzing the output of a sensitive machine, someone traced the issue to a worn-out fan, despite never having been in the building themselves.
A lot of instruments used in physics are so sensitive that this kind of thing isn't even really weird. There's a famous experiment based on the photoelectric effect that is almost always done at night because something as simple as a truck driving by outside can fuck it up.
"You shat over my work"?
@@hedgehog3180 Heard old story at univer from my lector. In USSR times scientists couldn't calibrate some machinery. Found that one of female laborants was wearing neilon stockings. Electrostatics.
Or guys in a satellite dish control who were looking for fast radio bursts from outer space. A few times a year they found a radio signal but could not determine the area of space from which it comes.
After many equipment upgrades and money spent, they found that if someone in the kitchen opened the microwave door while it was working there was a small radiation leak which was picked up by sensors.
It was the wife. She's likely not a dev didn't realize how stupid of a suggestion not printing in Tuesday would normally be 😂
Yeah, this is one of those situations where technical knowledge is actually an impediment to identifying the problem. A technical user is going to dismiss "it's Tuesday" as having any relevance to the problem, because *obviously* it's not relevant, that's stupid. But not having preconceived notions from technical knowledge allows you to make connections like this, which will usually be unhelpful but every now and then a weird situation like this pops up where it's actually critical.
When a clueless user is more helpful in debugging than a rubber duck.
@@nezu_ccthis is why qa positions in software companies exist
I've had a user figure out a solution to a problem with Microsoft Exchange 2007 that ended up getting elevated to division manager because everyone thought everyone else was hallucinating!
I get a support request that says "Outlook will not attach PDF document unless I rename it". Ok, user probably put stupid characters in the file name that NTFS will handle but SMTP will not, right? Nope. File name was "Report_Output_nnnnnnnn.pdf" where the n's were a running serial number. And Outlook would attach it just fine. But when clicking send Exchange would barf up a spectacular error message with all sorts of complaints about missing character sets and what not.
My first question was "How did you think of changing the name?" to which I was replied "I didn't understand the error, but I never liked the look of how the report generator names documents, so I usually rename them myself, and this time I forgot, so I tried that to see if Outlook didn't like it either". Quality thinking right there! That's totally how Outlook works. It can like or not like file names, just like you! :P
The user had removed the "_Output_" part... Which looks enough like a key word that I was paying full attention (while trying not to laugh).
But it gets weirder! The problem would only trigger if it WASN'T the FIRST instance of the SMTP relay got the e-mail. And because Microsoft is Microsoft... Exchange doesn't use a round-robin approach to scheduling. This means that if the server was mostly idle, the bug wouldn't trigger. Exchange had to be on a multi-core CPU and there had to be enough of a queue that it would start issuing mails to the subsequent threads. Every developer at Microsoft apparently just had a local instance running... which was never busy enough to trigger the bug. But we were Microsoft Gold Partner certified, so they were kinda stuck with listening to me. It took over 3 months before a developer finally reproduced it, and boy did I get a polite mail.
What was so bloody weird about it is that it wasn't a general problem. I obtained a whole bunch of the report files, with their original names, and I never found out which combination of numbers couldn't have the "_Output_" in the middle. Some could, some couldn't. But they never explained to me exactly what the problem was. I just kept quiet about it for a long time, as it might have been exploitable somehow.
A factor that is hard for for professional to notice
"Nobody put Tue and Tue tuegether" I see what you did there, Brodie.
I didn't even notice that XD
But does he see what he did there?
It entertains me to imagine a developer staring at a conspiracy board for hours and then "Wait... Tuesday.... Tuesday... TUESDAY!"
I have DEFINITELY run into those kind extremely bizarre behaviors, where the description of the bug sounds absolutely bizarre, and yes, we do stare at multiple log files on our screens comparing things until we can find a pattern.
Most recently, it was SQL query results being returned at a lower bandwidth from the SQL server when the result consisted of a larger dataset.
It turned out it was released to the application server and database server being on different subnets. But that wasn't the problem, the problem was that there was an HAProxy between them that had a kernel parameter set that caused the size of TCP packets that could be sent from one side to the other to be smaller than ideal, so instead of a few large packets, the server was being forced to send a small packet, wait for an ACK, send another small packet, wait for an ACK, etc.
Crawled through all packet data from Wireshark just to find out the problem wasn't even on the database or application server, then had to study all the kernel parameters related to how HAProxy handles TCP packets until I found the one to blame.
Bam, 25 Gbps bandwidth fixed.
ADAMS!
This the comment i was gonna put if no one else did 🤣
That guy's wife figured it out. Mad props to her for doing what no one else could
For you, the day you submitted that print job was the most important day of your life. But for me, it was Tuesday.
I can't be the only one who read this in Raul Julia's voice. Or maybe I am, that movie was terrible. Bro as Bison is the only thing that makes it even remotely watchable. XD
@@AntiSpaceGhost The movie was terrible, but Raul Julia was bloody awesome in it.
YES! YESSSSSS!!
I was looking for this comment
I am utterly convinced Steve's wife is not a dev, only someone who has no idea how ridiculous a 'Can't Print on Tuesdays' bug sounds would even think of such a thing, devs would be thinking about everything from caching to session variables or whatnot, heck even a cosmic ray flipping a bit would cross my mind first, not the fact that it's a freaking tuesday XD
My mother has caught issues like this in all manner of systems she did not understand. It has been both hilarious and infuriating to watch, every single time.
Well if you're not a developer you won't be tunnelvisioned by things that were the cause of previous bugs, I could definitely see someone who isn't that experienced with computers remembering what days their printer didn't work and then noticing a pattern
Yeah, once the "impossible" pattern is discovered, it's easy to figure out, but that kind of pattern is just impossible to imagine unless you think it's possible, and despite being possible, you kind of need to not understand what's possible to believe it.
Not necessarily, just not a dev in that language/operating system.
I know a number of system testers who might have made that connection, but only if they weren't working on it.
No-one prints on Tuesday anyway, they usually print on paper so I wouldn't worry about it.
👏 👏 👏
I heard this one many years ago. A newspaper had installed a computerized type-setting system. Everything was fine for a few months, then it started crashing every Saturday night at about the same time. Saturday night was when they input the weekly TV guide listings. A local TV station had just started showing that popular comedy series about an Army field hospital set in the Korean war. Turns out, the computer saw the string M*A*S* as a shutdown command.
Reminds me of when folk would send ping user +++ATH over IRC to drop others off, before modems started time-gating the +++ exit data mode string
sounds like a video I watched more recently about Mazda's infotainment system getting broken by %i from a radio station
@@triffid0hunter Yeah. I remember ping utility that exploits that bug. People used it to free slots on ISP modem pool.
And that's why you always sanitize your inputs.
Close to sanitising is proper encoding. I've seen too much gore. My email address with a + often causes errors, but not even consistently, like my electricity company's website threw an error, but everything seems to work.
This bug shows a real failure in error handling in the printing pipeline. If a print job doesn’t end up at the printer there should be a log message indicating what decision point resulted in it being dropped.
Unfortunately, having been guilty of this kind of poor error handling I understand exactly how this happened anyway.
Yep. Things failing silently (or more accurately, printing errors only to a nonexistent terminal output) is a way too common issue in the open source world.
@@stevethepocket In the closed source world these Issues do exist too, but you can't even fix them, not even if you are programmer and could understand what is going on - since you can't analyze the source code.
@@deineroehre today I was printing a large PDF on my win11 laptop and the printer just randomly decided to print an entirely black page instead of one of the actual page. This caused the printer to run out of black ink except the printer itself never realized it had run out of black ink so I came back to a bunch of mostly blank pages. The printer also just started printing garbage pages where it fucked up the line spacing completely and I have no idea why because as far as my laptop was concerned everything was fine.
It's usually printer manufacturers that try to write their own drivers without knowing anything about Linux and don't even release source code so people who do know can try to help. Thank god we have IPP Everywhere now. No more flaky at best and nonexistent at worst vendor-provided drivers.
The problem is confirming that a new printer supports it (many but not all do now) without buying one and actually testing it, or possibly inferring it from some advertised mobile printing support that may or may not use the same underlying protocol that CUPS uses, since on top of coming up with the absolute dumbest sounding name possible for a technology that completely eliminates the one major software problem that has plagued printers for decades they also decided not to actually market it at all.
In case you've never heard of IPP Everywhere, which I assume applies to at least 99% of people reading this, it's a standard built on top of the (fairly useless in practice) basic IPP protocol that defines a common page definition language so printers can work without any specialized driver whatsoever. You'd never ever know it existed though unless you installed a recent version of CUPS and noticed a print queue for a network printer magically appearing, and hadn't already set up that same printer, AND actually decided against all logic to try printing to it despite not having selected a specific driver for it. It's been pretty widely implemented for more than 10 years now I think, but like I said, zero marketing resources. Zero. Seriously. You finally get around to fixing the one problem everyone hates about your industry (ok one of the two problems. fixing the other obvious one means losing a lot of money) and just... don't bother to tell anyone about it? What the fuck.
The opposite is a blue screen crash with random codes, together with endless dump files that the internet can't make sense of.
Yep, being a sysadmin myself, if a user submitted a ticket telling me they can't print on Tuesdays, I'd investigate literally everything but that. Are you working from another machine on a Tuesday because you need to work for a specific client? Does your kid use the printer every Monday evening so that the printer is locked for a day (or most of a day)? Do you have other WiFi issues on Tuesdays because some weird neighbour has time for their pirate radio hobby and erroneously sends on 2.4 GHz? I'd come up with dozens of better answers than "it's Tuesday" lol.
I once had an Issue where the Wifi in my old house blacked out every time the traffic light outside my toilet turned red. Turns out it had a radar vehicle/pedestrian detector on it, which worked (or at least transmitted a harmonic) at 2.4GHz, and did so at enough power to make everyones Wifi take a dump. I only got the idea after reading a reddit post where someone had the exact same problem, and found the light to be at fault, so I tried it myself, and sure enough: every time that stupid light turns red, 0.5mbps. Light turns green, 45mbps (shitty DSL). Tried it 10+ times, it was definitely the traffic light.
I once received an email that the timekeeping software was unable to calculate how many hours someone worked that year.
I tested it, but couldn't reproduce it. Since I didn't have anything important to do that day I dug deep into how the timekeeping software calculated the number of hours.
The code was a complete mess.
I found at one point where it took the number of the current month, converted that to a 3 letter abbreviation, and converted that back into the number of the month.
Then I discovered that the conversion from number to letters used the English month abbreviations (converted to lowercase), while the conversion from letters back to a number used the Dutch month abbreviations (which are always lowercase). For 11 out of 12 months the lowercased English abbreviation is the same as the Dutch abbreviation. The only exception is March.
Therefore, the timekeeping file couldn't tally up the numbers in March. Nobody ever noticed that, because counting up those numbers is always done at the end of the year.
But why was the software working when I tested it?
It was already the first of April.
Oh man this reminds me of the "Can't send email further than 500 miles" issue it sounds so insane and yet!
At work I had the pleasure of trying to find a (suspected) hardware fault in a brand new industrial machine. At random times a PLC communication module would just go offline. We stood in front of the cabinet for hours trying to figure it out until one guy had a genius idea. His theory was that the issue only occurs when the door of the control cabinet was closed, so we closed the door and a couple minutes later the communications module went offline again.
The error was, that the cable for the cooling fan in the door was resting right on top of that communication module when the door is closed, and the EM spike when the fan turned on caused it to go offline. I think this would qualify as one of those heisenbugs
The most dreaded debugging situation I would run into usually involved the phrase "well, it works on MY machine"
I think the worst one is honestly "it started working, but I didn't change anything"
@@OhhCrapGuy the one after that is "it started working!", "what did you do?", 10 changes get listed, I wonder which did it.
@@TealJosh that's fine, I can find out, just a thousand combinations of fixes to test, and I can automate doing that.
Oh yeah I hate that situation actually. Things I encountered so far:
- Made a piece of software, which CRC32 itself by taking the last 4 bytes to write it's CRC to. Avira Antivirus complains.
- Deleted that piece of code and UPX'd it because exe size - Avira Antivirus complained AGAIN.
Fixed by uninstalling Avira.
- Made a piece of software, which was basically a GUI for another program. Failed to run on another computer, saying the registry path doesn't exist.
Program had exception handling for that, if it couldn't read the registry key, it would create them. Still failed to run as intended.
- Made a program to decrypt and encrypt files of a game for easy modding. Works fine on my PC. Uploaded it to VirusTotal for lulz. Code Red: Ransomware.
It didn't even had code for networking, but the sandboxes kept saying it connects to the Internet (how?). Reinstalled my IDE and recompiled the C++ source.
Didn't fix the problem. It's not even AES, it's Blowfish.
- Made a game using RenPy. Gave it to a friend for testplay. Game requested access to the internet, which it shouldn't do - at all.
- Made a program to backup data. Had an easteregg in it. Had to remove the easteregg, because "professional". Extracted the eastergg and made it a standalone.
I put the easteregg on my website. My domain gets flagged for malware.
I hate programming.
"Then let's ship your machine to the customer" - and that's the story of how Docker was born.
(Not really, but it makes a good joke)
A Heisenbug is a bug that is theoretically understood but difficult to replicate, such as a dropped UDP packet or an eventual consistency issue. This is a Higgs Bugson: A bug that takes a great deal of theory to identify, but eventually, the reproduction and fix are simple.
Except this bug was literally due to magic, not science!
Worker : Sorry Boss I can't get you that report today
Boss : Why not?
Worker : It's a Tuesday, and I have a condition that won't let me print on Tuesdays
Boss : *Visible Confusion*
«Cause it's Tuesday. It's common knowledge, like we don't eat red meat on Fridays, or not stay sober on december 31. We don't print on Tuesday, nobody prints on Tueday, and this I'm pretty certain since Gutenberg, I don't remember but that's worldwide. Well have you ever noticed no one prints on Tuesday right? Not even the press, not in schools, have YOU or your parents ever printed even your birthday card on a Tuesday, do you even know about offset printing operators have their rest day today? Go check even to a photographer, a photo booth, ...you found that today? Find me one document printed on a Tuesday. Why do shop's printers are thermal and not ink on paper? So they don't really print, they can print on Tuesday, there's some printers that are like typewriters for that reason i think.»
Boss: «I have printed something last tuesday, here's a report of taxe-»
«Wow, wait. You printed it on Monday night or was that tasker planned it to get print on Wendsday morning? You printed this on a Tuesday? okay, you did change your computer's date, or ignored the warning with the date ‘‘Are you sure you want to do this’’ this is your right, it's not even illegal in this state, but this is a malpractice, be advised about that. If you want, never repeat to anyone you print on Tuesday, there is a spool, the printer will store what's to print and will turn on tonight at 23:59:59 and start printing today's chore at one second past midnight. I don't make the unwritten rules, just don't aske me to do this. I like you, I won't tell anything, you have a printer in your office, make sure to close the door, we never had this conversation okay?»
_oi, the printer isnt workin’… me finkin’ its chewsday innit?_
bri'ish moment
The Valve-update cycle
The most famous ones I can think of are the 500-mile email and the Magic/More Magic switch. But I also have a personal story:
Mom was trying to listen to an audio CD on her laptop and getting no sound. My dad and I, both far more tech-savvy, come over to help. First thing we do is check in volume controls -- nothing's muted.
Mom: "wait, but the microphone is muted! could that be it?"
Dad and I both insist it can't possibly be the problem. Mom ignores us, unmutes the microphone, and attempts to play her audio CD. It works.
All we can figure is the wire for audio CD music playing somehow got connected to the microphone spot on the motherboard...
I have to say, credit goes to that guy's wife who figured out the "Tuesday" part.
Similar one was "Car doesn't start when buying vanilla ice cream. Car starts normally when buying chocolate or strawberry ice cream".
This is ~40 years ago with relatively old car. Person drives to store, and as the complaint says, it won't start but only if they buy vanilla ice cream. If they buy other things, or if they buy strawberry flavored ice cream it works fine.
Turns out the engine needed a few minutes to clear existing gases before it would start normally. The store had put the vanilla ice cream in the front of the store, with the strawberry and chocolate at the back. So if this person drove there to buy vanilla ice cream, he made it back to the car with the engine still not cleared and it would not start - while if they bought strawberry, it would've had the extra minute and (barely) started.
My friend had a car that would only start when he got pissed off, slammed the door, and tried again later. If he wasn't angry enough, it didn't work. We figured out the relay for the fuel pump was in the fuse box near the door. It would stick after shutting off, and needed a jolt to turn on again.
I heard a similar story, where if they went to the store with the express purpose of buying vanilla ice cream, they'd be in and out in a few minutes, but if they went to the store and didn't know what they wanted, they'd wonder around for a bit before returning
@@JB52520 That reminds me of some older touch screens. Modern touch screens are all capactive reactance based, but there are some other types of touchcreen technologies. Touch screens that work by measureing applied pressure tend not to work until people get annoyed and apply more pressure, causing the touch screen to respond. Such older touch screens might be found in things like old ATMs for example.
I recall centuries ago in mainframe days an important program malfunctioned on Wednesdays. It turned out that the field holding the day was one char short, so the 'y' overflowed, as this is the day with the longest name. It fell into a field expecting a y or n answer to a vital question.
So two bugs, the short field, and the fact it allowed the data to extend to another field.
@@paulstubbs7678 I see that as one bug. On old hardware with such limited memory, where else is the overflow going to go? That and being to slow to afford runtime error detection.
The very fact that someone actually figured it out is insane!
And it was a woman, someone's wife. :)
@@simonmaracine4721 She didn't fix it tho just correlated a pattern
It took a nontechnical person to recognize a pattern that makes no sense according to a superficial understanding of computing.
i mean, we can't assume their wife was a non-technical user tbf
@@yukijoou I mean, she managed to get work done with OpenOffice, so nontechnical is heavily qualified here. "Non-dev" might be less inaccurate
My favourite class of bugs are the ones that only show when not trying to debug it. Any debug build works, connect debugger to release build, works, add print debugging, it works. But the moment you run the release build on its own the bug shows.
Oof, too real. I have two stories that match that level of pain.
First, the bug that only shows in production when the server is under load. Like say 9AM when the code was deployed at midnight. Turns out that .NET Debuggers and memory snapshot tools suck at diagnosing stack overflow errors in code that has awaits.
Second, the C++ Program where the original programmers assumed not having an initializer means the object is zero initialized. Pro-tip. It's initialized with whatever is in memory at that location. Which most of the time is zero, but not always!
The Heisenbug: The one that never shows up when observed in a debugger, but is always present in the release build.
I had one where one of the optimization levels wouldn't work right and it took a long time to find out that the compiler had decided something should overlap the stack by a couple bytes.
@@arthurmoore9488I've encountered similar issues before where restarting a computer fails to fix an issue, but a shutdown + waiting 10 seconds + power-on fixes it, because certain hardware devices return to their default states when power is removed.
A simple restart doesn't reset their cache RAM or registers to zero, so things will continue to fail or behave unexpectedly until returned to a 'safe' state.
I have ran into this. Some compilers may put extra buffer around variables in debug mode, masking out of bounds errors, or the executable may have other differences that cause release only problems. Very frustrating to diagnose.
Once I owned an OKI laser color printer that failed randomly with no error message literally when you needed it the most. It worked flawlessly across the year printing unimportant notes but failed when you have to print plane tickets, important documents, or degree works (my wife was doctoring by then). It seemed not been linked to any other reason. When it started failing it was impossible to get it working, but next day could totally work... or not. I couldn't find a pattern. Finally I realized that all that important documents always have to be printed on the summertime. Making tests I discovered that the printer refused to print when ambient temperature exceeded 30º celsius. Not when it overheats, just when out temperature is 30º, despite of the printer load or pages printed. Surely an overzelous software reliability feature or a saturating sensor, not deteted due to the printer normally used at offices with air conditioning. We had not air conditioning at home. So we resolved to get up early in the morning when room was still cool when we needed to print, and it worked.
Excellent. You'd think a Japanese manufacturer shouldn't make this type of mistake? It can get pretty toasty and aircon isn't 100% pervasive. But apparently they do.
they take A/C there for granted I think
"No print on Tuesdays" - Uncle Vernon if he was a Linux user
The weirdest Linux bug I've ever encountered was on a Pentium M laptop with i915 graphics: every single lowercase 't' on the screen, in a certain font, was missing the row of pixels that crosses the 't'.
That laptop wouldn't print on Luesdays.
Lhal’s a good one!
seems like a faulty font to me, either the font is missing the bar or it's ordered the wrong way around (basically the order of the points should be ordered clockwise iirc, and if it's counterclockwise it can cause issues)
@@satibel But the same fonts were fine on other machines. Actually, it wasn't just the horizontal line missing, the corresponding part of the vertical line was missing too. So, it turned 't' not into 'l', but more like into 'i'.
@@danagoyette7932 still seems to me like the font has a quirk on the bar part that doesn't render properly at that resolution.
At a former workplace we sold activation keys for games. Some guys got these keys in a plain text file from the publisher and uploaded them to our database via a webpage. But once a batch of keys could not be uploaded; the webpage denied the file.
I investigated and finally found the reason: the file was not identified as plain text because a few characters in one of the keys exactly matched what was used to identify a certain file format, just like in the "can not print on Tuesdays" case in the video. It had thus been enough to swap a couple of the keys.
Reminds me when I was on tech support. I help a customer add a new package to our product using remote access. I tested the install, and then disconnected. The customer called back saying it did not work. I reconnected and demonstrated that it worked. Then disconnected. The customer called back saying it did not work. I watched the customer try it, and it worked. Then disconnected. The customer called back. This was about the time we worked out that the new DLL was somehow attached to the remote access tool, and would only work if I was connected.
I disconnected, and the worked the customer though the reinstall, and everything worked from there.
The "any day but Tuesday" office suite.
Never on Tuesday
@@SeekingTheLoveThatGodMeans7648 Yep!
Microsoft 312
@@ifritdiezel I don't get it.
@@Amos_Huclkeberry it's like microsoft 365 (days in a year) minus all the tuesdays
I’ve heard of bugs on Wednesday as it’s the longest day of the week (day name string length). Will have to watch the video to see what Tuesday has :-)
Ah… didn’t think of magic :-)
I have watched the video and still don't understand what Tuesday has
A bug in `file` and `/etc/magic`
I love how a bug in magic sounds
`file` sucks. This is additional evidence but it already did. Windows-style name suffixes are better, since we can't be assed to consistently use content prefixes as an industry.
I once left debug on as a "fix" in a production environment because the bug would disappear whenever it was enabled.
Debug was really working, then.
I'm sure plenty of hardware engineers have considered just telling the user "it only works if you hold your finger here"!
Makes me think of renaming your game executable the same as a benchmarking suite, so the GPU and CPU will schedule it higher
@@renakunisaki CEOs too. Steve Jobs: "Just avoid holding it that way". (aka "you're holding it wrong")
@@renakunisaki Crack in the ground layer of a multilayer board. A little pressure and the problem goes away - even the pressure of applying a DMM probe to the test points. Yeah, we've seen that one enough that it is now a running joke.
Issue: Can't print of Tuesday
Tag: Won't Fix
Reason: It works every other day of the week.
Oh I know this one, The horse's name is Friday.
*Are you sure about that?*
Icarly fan
@@PowerPuffBoysZ That predates iCarly by about 100 years. Maybe more.
Imagine a bug like "generate random number from 0 to 9999, save it as local ID that persists reinstallation, but they forgot that 0 can be generated, so ID 0 breaks everything" then there is 1 single customer going crazy with the bug reports that it doesn't work while everybody else says "it works on my machine".
Technically to be a heisenbug it must disappear when trying to study it but re-appear when you stop trying to study it.
I've had those before. There was this one bug that stopped appearing as soon as I started to add debug printing at the place where the thing crashed. The debug message showed everything to be correct and there was no crash. Removing the debug print caused it to crash again, even when just commenting it out.
Turned out to be… you guessed it: A race condition. Just locking stdout and formatting the data for pretty-printing caused enough delay to barely make it past the race for me.
Those are the worst!
One of the hardest things to explain to a non-programmer is that bugs can sometimes have a kind of beauty, such that you almost feel bad about fixing them. This is one example of that.
Yes, been their, I had a nice neat looking page of Arduino 'C', however it worked more reliably if I put a nasty looking discontinuation in the middle of it, so I didn't......
Maybe someone should start a Museum of Glitches to showcase the most fascinating ones from throughout computing history. Wouldn't be the dumbest thing anyone's ever made a museum of, I'm sure.
Back then I was convinced CUPS stands for "Can yoU Print Somewhere?" and tried hard to avoid it :D
Unfortunately for me the answer is currently 'no'
- networked printer hanging of a Windows PC
My dad was writing software for a research project, and found that the results were consistently skewed and not following the predictions. Other people analysing the same data were getting the correct results. Turns out that the RNG algorithm of one programing language was closer to true random than the other.
I might have actually hit this specific bug back in the day. For years I exported to PDF from OpenOffice, then printed from KPDF (or whatever it was I used at the time), because it was too much effort to wait and see if OOo was actually going to print or not.
This is hilarious, back in those days, I never printed on Tuesday, because I was working, and when I got off, I was done for the day, I really only printed things out on the weekends.
Lucky it wasn't a "can't print on Sundays", it would never have been fixed.
Uhm yes teacher actually the reason I don't have my homework is because yesterday was a Tuesday, and I can't print on Tuesdays
Oooh yes... the other similar kind of bug, the racing condition: You test it on one machine - it works, you test it on another it doesn't.... but sometimes it DOES! These kind of bugs may lead to question your own sanity.
I remember brodie made a video about a guy who restarted linux a crazy amount of times, because a bug would appear randomly and so rarely, he had to restart like thousands of times to solve the issue
hardware bound issues are even _more_ fun.
as an example, for some reason an instruction (forgot which) is about twice as fast on amd cpus than intel, sometimes leading to a race condition on one but not the other.
grinding gear games, creators of path of exile said they had servers that caused issues, after a while, they just decided to call them cursed and replace them.
11:45 anyone who works on cars is well aware of this kind of bug as well. Customer reports a problem with a vehicle, you check over it and can't find anything. Give car back to customer and they have the same problem again. Rinse and repeat. Also happens with computer hardware. I once had two otherwise identical computers I had taken apart for maintenance. When I put them back together, I accidentally swapped the processors (same model, so should have been no big deal). Nope, neither computer would boot. At some point in troubleshooting, I got the idea of swapping the processors and they worked again. Swap them back, not working. Still to this day I have no idea what caused that.
The beginning's of 'Apple serialised iPhone parts', although I also understand Tesla is also guilty of it.
look up platform secure boot (AMD PSB) there was an issue with some lenovo computers having it enabled by default.
Were these new processors with builtin TPM? Or Windows remembered the serial number...
@@bmwiedemann Nope, this was many years ago, early i5 chips I believe. One of the strangest bugs I've ever come across.
Now I'm curious in what the hell a jam file is, but all google results are just about this bug...
You've heard of a "printer jam", right?
it's a file generated to be used by the Joe's Abstract machine interpreter for the erlang programming language
@@mega_gamer93 But why on earth would you try to identify it ONLY by a date? That was just asking for false positives.
@@alexatkinit's probably just a byte sequence turned out to say "Tue" instead of something meaningful
@@alexatkin as DrPeeper said.
its nto that its identified by Tue, its identified by a specific set of bits at the 4th byte.... one that just happend to match exactly with Tue if converted into ASCII
"Printing at the time was a bit flaky"
Dude. It still is.
I think the problem with this bug is that it didn't report any error anywhere that the file type is wrong. It would be so much easier to detect if it appeared somewhere in the logs or similar. So it was just not coded properly.
To report errors, you need to think about them beforehand.
Who would ever have thought that an error in "file" corrupts printing in OOo? And where would you identify/put that error? Back in the day it would have been /var/log/messages, but "file" worked as designed (a filetype was detected, though the wrong one) and OOo had printed "sucessfully".
The whole self-diagnose stuff with OBD-Dongles on cars fails if there is an error not known ("impossible") to the developer/car manufacturer. They can diagnose a failed fuse, a failed window Lifter rear passender side, Insulation Fault from the HV-Battery but rarely a corroded fuse or some weird wiring defects.
@@deineroehre If a file is sent and it's found out that it's the wrong type, then something has to be done. What the program did is just do nothing at all and act as if no file was sent, which is wrong.
@@deineroehre You raise the error in the component that ran "file" to check the file type, and got back an unsupported type. The code as shipped looked roughly like this
if (type_supported) {
print_it
}
What's needed is an "} else { report_error }
In general, every if() statement should have an else, unless you consciously decide the right choice is to do nothing (such as skipping comment lines).
Or more realistically since the print code is probably long:
if ( ! supported_type) {
throw_error("unsupported file type")
}
print stuff
It must be Tuesday. I never could get the hang of printing on Tuesdays.
A Heisenbug is a bug with a high uncertainty, it may or may not appear when testing. A Schrodenbug is a bug that goes away when you look at it. Dashboard could be classified as the former but certainly not the latter.
Shoutout to Steve's Wife, what incredible pattern recognition
Well that is funky. I would just close and report if someone would open ticket with title "does not work on tuesdays"
I finally found worse than "can't replicate" when reporting an issue: the "obviously won't even try to replicate".
Can't replicate as it's Wednesday, closing.
What software do you maintain so I can avoid it?
Man, atleast attempt to replicate the issue before reporting. It takes like 2 minutes to change your pc's date and you can try it on an empty file so you wont waste the paper if it was a troll.
Surprised someone hasn't tried to make 'No Print Tuesday' a thing.
On a side note, I'm so glad/shocked to learn that the file command exists (no really, I've never seen/heard it used before despite how useful it looks....assuming you're not trying to print on Tuesday a decade and a half ago).
My favourite Heisenbug was a STM32 "eBay special" microcontroller that kept executing the wrong code. Investigating made it disappear.
Discovered that if a Jump instruction was located at a *particular address* the jump destination was wrong. Made a NOP sled to test it, all other jump origins were fine.
I'd suspect the program memory but it looked fine in the debugger. Was a strange one.
Bug or hardware backdoor? Who knows.
Had a similar bug with a faulty Wii. The code is there, I can see it in the memory dump, so why does it crash on this harmless instruction, behaving as if there's nothing there!?
...oh, _every_ game has this bug when run on this machine...
Had a bug with a large, auto-generated assembly file (don't ask) once where the assembler complained about an unrecognized token. Turning on debugging caused the problem to disappear. Digging around showed that it was an ELSE that was not being recognized - looked fine when editing the file. Suspecting a non-printing character had somehow gotten into the token I did a hex dump of the file and found that the faulty token was at address $FFFE - $10001 and turning on debugging shunted the ELSE a few characters further down the file. Smoking gun time.
I once had a similar one: An Atmega2560 with dementia. You could flash a piece of code to it, reset it as often as you like without removing power, then read it back, and it read back the entire hex file without issues, but if you removed power for more than 5 seconds, it deleted the hey file, and instead returned to an older display controller code I had on there before. If you read the code then, it would spit out that display controller hex file, as if it was never reflashed. Super wierd, especially how it kept the old code in the exact same memory location as the new one (my best guess is that the memory cells suffered some kind of damage while flashing that code, causing them to always return to their old values). Still have that thing on my shelf as an example of a super wierd hardware issue.
@unmountablebootvolume that feels totally impossible. What a head scratcher! Very cool. The original hex is totally corrected when read back?
On a von Neumann I maybe could see this, but on Harvard? I feel need sniped haha
I wonder about the wisdom of using a date to identify a file type. My instincts tell me that you're asking for an ass bite if you do things like that!
Probably similar thoughts as using the value of π to identify a software version...
one somewhat logical reason i can think of is that it might be a some testing from like 0.0.1 version of file, and the dev just happened to forget it there, because probably not that many files have "Tue" written in that exact specific place, for anyone to notice (until 2008)
@@hornattila Also, it is not necessarily so that the "Tu" in that position of such files had anything to do with Tuesday at all.
@@benhetland576 He said in the video it was supposed to be looking for a specific date string, but they forgot to escape the spaces. So yeah, it was looking specifically for a date, which was asking for trouble.
I think your 'instincts' are probably 20/20 hindsight.
Sorry, I've done the same.
Thinking 'Well, that was a dumb thing to do', but not thinking of all the other 'dumb' options that are taken on a daily basis, which don't cause an issue.
As I say, I'm not having a go at you, I have had similar thoughts, but only after knowing what the issue is.
You sound like an Australian so you'll get this. I was working for a large australian website. We kept having users pay their bills via BPay and it didn't hit their account but it always went to this orher account. So every month this would always happen. Couldn't find a bug. BPay file from the bank has this data in it and so we're doing the right thing. Then I decided to look at our site. We had a demo invoice that used the account code where all these funds were being sent to. These users were reading the amount from their invoice and using the account code from the example invoice. That took ages to come up with that brainwave.
That shit is really hard to figure out, once had a bug in an embedded system only showing up sometimes... Actually was caused if temperature was above ~28°C triggering memory corruption because of integer overflow due to wrong uint8 variable which should have been uint16t. Took me weeks to find it that insanity
Weird day, random bugs always happens in weekends, and are, ofc, gone by the time any devs login to debug.
Me: my connection always drops when it's raining
ISP: (tests on a nice sunny day) works now!
sometimes bug happens because of random bit flips in ram. Not during runtime, no, during compilation/copying to disk. These are very good at 'suddenly bug disappears after recompile'.
Which is one of many reasons, why I do use ecc ram. And recommend it to everyone. I have seen silent file corruption in the past, caught by zfs. I do not want to see them ever again.
Now think of the poor souls at NASA trying to fix the last memory bug on Voyager......
I've got a similar problem with a combination of file-server using SMB + XFS for filesystem about 10-15 yrs ago, on RHEL and any derivative distro such as CentOS, CERN linux... with windows clients + linux on server side.
Nothing as serious as a plain file corruption (it didn't make them unusable), but with this specific setup (SMB+XFS, nothing with NFS+XFS, nothing with SMB+whatever other fs, could be ext3, ext4, reiserfs, even GFS2), the file on the server side always ended up with a different hash while using SMB for transfer and XFS on the receiving end. And it had nothing to do with the hardware (whatever motherboard/memory type/network card/raid card or disk controller involved).
My fix ? Not using XFS when windows is involved in exchanging files with a given server.
I would say this is a "silently ignoring errors" bug.
This must be Thursday,' said Arthur to himself, sinking low over his beer. 'I never could get the hang of Thursdays.
Douglas Adams, The Hitchhiker’s Guide to the Galaxy
My retired ex-boss told me about the problem in the 80s with backup tapes being faulty during sunny days but only in winter. Apparently in the winter the sun didn't rise as high so it could shine through the window all the way to the tape writer and mess up the writing head. The fix was a strategically placed piece of cardboard.
That bug really was a "see you next Tuesday".
Lots of comments saying technical people would dismiss the "obviously unrelated" cause. Maybe I've just been a developer for too long, but I've seen the weirdest bugs and it's taught me to never dismiss any detail out of hand.
One bug that stands out to me is when our checkout would rarely save a basket to the database with two pieces of data that should never both be populated. Took me most of a day to realise that very rarely the checkout could be submitted and saved before an ajax request doing a state update finished. I fixed it by scrapping the ajax function and doing the state update in the checkout POST handler.
If I had a penny for every "bug" I've found, asked on a forum somewhere if this was a known issue, for the program to work right afterwards, I would have a disturbingly large pile of pennies
Nothing helps more when trying to get something to work than asking how to make it work, _especially_ if you don't get an answer.
There is a rare issue with Olive video editor, where it displays a message box with part of a file path but the rest are a bunch of Chinese characters. The characters are likely the result of misinterpreted memory content that is treated like UTF-16 encoded text but it also seems to be a read beyond the intended memory region. The cause is unclear and the people who experienced it didn't provide enough information to reproduce the problem.
It makes sense, UTF-16 characters are made up of more bytes, so if the message box is just told "display that many characters from this memory region", it would try to display double the bytes
I remember being bit by this bug, and noticing the pattern, but thinking "oh well, the developers will probably fix this soon" and being hit by a harddrive crash on my system and having to reinstall everything anyway, probably with a different Linux distro or something.
In those days my daily drivers were often as stable as a novice thightrope rope walker on his first attempt.
The Time Travelling Bug.
We were sending mobile phone roaming data from Indonesia to a sorting/redistribution hub in Switzerland.
From time to time it was rejected by the hub because it had call times in the future.
Turned out both systems (IIRC) were using local time.
Easy to identify and fix, but it was fun when it happened.
I remember one of these back in the old IBM 360 mainframe days (showing my age, I know). I don't recall all the details after all this time, but essentially, one of the IBM-supplied utility programs would not run on one certain day of the year. No warnings, no errors, the program simply ended without doing anything. I was the customer, and I do recall working with several support folks on multiple continents both to concisely identify the characteristics of the problem, and then turned over to them for permanent fixing. (nothing was open-source back then) I spent days pouring through IBM assembler memory dumps and tracing execution to isolate the problem code. Once I found it, I could patch it on the fly by storing assembler code at the console. We all had a good laugh, but it sure enhanced my problem solving skills and I had to thank them for that!
My favourite weird bug: Years ago I read about a guy wrote to Ford because he car would act up when he went to the store to buy ice cream, but only when he bought vanilla. The engineer who read this was so curious that he got permission to travel to visit the guy and figure out what was going wrong. If I recall correctly, it was vapour lock. It only happened when they guy went to the store to buy ice cream specifically and vanilla in particular, because he would drive there, park his car, go into the store, get the one item he needed, pay for it, and try to leave. The engine as still hot enough to cause the issue. If he went to buy any other flavour of ice cream, he would stand in the ice cream section and look at all of the flavours trying to decide. This would take long enough that the engine would cool down enough that it wouldn't cause this problem.
After you learn what happens, it all makes sense and why the guy would associate vanilla with car troubles.
I bet at least a couple potential linux users switched back to windows because of this.
I remember trying Ubuntu in the windows 7 days and the touchpad experience was so bad I couldn't stick with it.
There's always one thing that is the tipping point. I wonder if any potential Lunux users tried Ubuntu for the first time on a Tuesday and noped out when they couldn't print.
I mean, they probably came back to linux by now.
If not because of liking linux, but for windows being shittier by the fay
The executive director at my last job told me in a lunch break convo (caveat: he and I were the only two people at that place who were geeks) that this is the core reason why he believes switching to Linux is a no-go for most organizations. Unless Linux has the "killer app" that their organization absolutely needs, then it's just too much hassle to retrain everyone on a different OS with different applications and best practices to justify the cost savings.
Yes, I bet a few did, not because of the bug, but rather the fact they were ignored and nobody took it seriously.
@@pyrioncelendil I think Linux kind of finally has that 'feature', 'No Microsoft ramming xx down your throat'
Linux keeps getting better even when it doesn't actually improve, by just letting the others get worse.
I solved so many bugs just by being in the call with a customer.
But also actually solved a bug like this by logging every time a customer reported something they could never prove happened. Their sessions would break, customers would say they thought they messed something up and try again and it would work but I just went conspiracy mode on it and it turned out to be a session expiring bug.
Ah yes, the bugs that disappear as soon as you call a technician!
I had a weird bug like this where one of my two monitors would cut out for about 20-30 seconds at seemingly arbitrary intervals. After a few times I determined that it was the monitor that's connected by display port while the other is HDMI. Useful info, but not enough to determine anything. the Xorg log didn't show anything and dmesg... well, I didn't see anything at first. Whenever it happened I'd check dmesg to see if there was anything that might conceivably be related (there were lots of nvidia_drm errors, but researching them seemed to indicate their existence was fairly common and apparently benign). It wasn't until I decided to keep a dmsg -w running constantly in an always-on-top window on the HDMI monitor that I noticed that every cut-out was associated with a USB error that was associated to a port with a USB 3 hub attached (with, at the time, only USB2 things attached, the problem persisted even with nothing attached). Removing the hub resolved the issue. There is clearly an interaction between USB3 and Display Port, either in the drivers or the hardware.
sounds like something related to the I²C bus. weird.
hmm... my duration is a lot shorter, but I have an issue where one of my monitors cuts out briefly whenever I'm watching something on Prime Video.. next time there's something there I want to watch I'll try unplugging my hub lol
@@isaac_marcus just prime? sounds like a software problem then?
@bullzebub yup, just Prime (well, out of the many things I've used. Could be something else out there that does it).
It's probably something software but I could never figure out what it was doing differently (beyond my current knowledge). All video players done in Chrome, displayed on the same monitor, always causes the same one the blink on and off (not the one it's on).
Typing it out like this I should try to see if it happens in another browser. I tried things like toggling hardware acceleration, driver updates, the usual suspects.
if you have 5000 series ryzen like me, theres an unfixable bug either in the cpu microcode or in the motherbord firmware (b550) that causes all communications lines from the CPU (USB, SATA, PCIe, ethernet, etc) to temporarily freeze and reset. it shows as keyboard inputs "hanging" on windows and gpu util/power slams to idle (even if theres 3d load from a game) before slamming back to 100%. im sure the power supply and gpu power circuitry love going from 0 watts to 330 watts randomly.
if you have this hardware, it could be your issue.
edit: this is known as the usb dropout bug, but it affects more than just usb. amd is not being very transparent about this issue at the moment. i suspect this is also partly why were seeing so many high power GPUs burn up power delivery plugs and board components on the nvidia side.
This brings to mind the late 90s story of the person whose monitor stopped working in the afternoon. Long story short, the tech hung out at their cube for the day and the cube person watered their plant which was over their monitor. Water dripped down and shorted something out, but it dried by the time the tech got there so it took a while to figure out.
lmao
20+ years ago, I had the following bug.
My setup at the time : I had 2 displays, my home directory was mounted on NFS, and I had a TV tuner PCI card (it was cheaper than having a real tv and this was before netflix & co).
If I moved the tv application window from one display to the other, the kernel NFS client froze for a few seconds, rendering my system unusable if I was working on anything in my home directory at the time.
I never bothered to report it, since I had no idea how to find what component was responsible and the setup to reproduce was kind of exotic in the first place.
Kind of my problem with windows shares on linux, I'm sure if I try and report I'll get some silly comment back that it's not the shares, but rather xxxxx, and the report will be closed, just like was described in this 'No print on Tuesdays' bug, they just seemed to find a reason to sweep it under the carpet. "Life's good were happy"
So maybe the real bug here is the Linux bug reporting setup where things have to be categorised and "lo and behold the poor soul" who puts it in the wrong box, in the Linux programmers eye's
This is why I always take my end users at their word that something isn’t right. They have a different way of looking at things and don’t get bogged down by technical understanding making things more complicated than they are
"I will gladly print on Tuesday for a ink cartridge today"
We had a bug that was coming and going throughout the year. It turned out that they were storing the dates as dd/mm/yyyy. In the UK office it would break starting on the 13th of each month and go away on the first of each month. Hilarious, and annoying.
Video released on Tuesday :)
Depends on your time zone here it's still Monday when released
Wait it's Tuesday?
Right now, it's Tuesday morning in Australia.
He had to release it as he could not print it
Okay but we're missing the real reason this was such an issue. An error clearly occurred, but it was not passed back to the calling application to be handled, which made it harder to trace.
Printer goin' up, on a Tuesday!
Got your CUPS in the cut and they ain't printing! 😂
I garuntee if this bug didn’t print on Friday, the pattern would have been spotted within a month, probably after only two weeks. So many weekly reports, summations, etc are likely printed out at the end of the week on Friday, someone would have definitely noticed if a weekly report didn’t get distributed in time two weeks in a row due to some printer glitch that didn’t seem to be a problem the rest of the week. But apparently no one schedules any regular, weekly bit of documentation that anyone cares about to be printed out on Tuesday, so no one ever said “Hey, the Tuesday Report’s been late for the past three weeks, what gives?”
Simple fix, rename Tuesday to Chewsday. #wontfix
My favorite kind of bug is that caused by compiler optimization, since as a dev you compile as is for debugging, and you can easily forget to make sure the compiler optimized version isn't buggy.
Imagine using a specific date timestamp, formatted in plain text, as a file magic number... wtf?! What if I wanted to go back in time to 1991 and print something?
You were impressed by the fact that this affected 4 Ubuntu versions, but that's nothing compared to the 16-year-old (still open!) Thunderbird email sorting bug that bit me a few months ago.
Oh, I remember hearing about this one, it was my first year in university and I'd just switched to Fedora as my first bare metal Linux distro on my laptop.
I can't imagine how many more similar but obscure bugs like this one exist out there.
It's quite easy you see how someone would make the connection. Let's assume Steve's wife works two days a week - Tuesdays and Fridays. It will be obvious to her very quickly that she can never print on Tuesdays, so she mentions it to Steve...
And if she'd only have worked on Tuesdays:"This Openoffice stuff never works!". So, context and background is important...
The wife who spotted the bug is the real hero in this story
Only Tuesday? I have never been able to print from any flavor of Linux.
I think the actual bug is that they need to identity the file in the first place and the way it's done. You can't just look at a few bytes and decide what type of file is it and assume there's no overlap between different file types.
Yeah, seems to me that there were 3 bugs. The software decided to use file type as a proxy for valid input, the software decided to shell out to a best guess tool rather than asking the authoritative source (print spooler), and file (which is best effort anyway) messed up it's identification. The two big ones aren't with file.
@paulstubbs7678 Kind of stupid they are testing the file, it came from the word processor addressed to a printer, so just send it there
They might be testing if the file is an image or a script or something. But instead they should check if its valid postscript instead.
I think it was supposed to check for a specific date, but did it wrong.
This is why 'file' does not stop at the first match. It outputs ALL matches, because some files have ambiguous characteristics and could be one of several things. Thus the erroneous magic-file lead to both the faulty and the correct detection being output.
So say you're a printer, you know how to print Postscript files, and you know how to print PDF files, maybe you know how to print SVG files, and several other types, and you also know how to print text files, which is what you use as a fallback, and you need to decide which mode to use for a given file. You can probe the file with 'file' and if one of the matches is PostScript, you can use that mode. However the way it was implemented it was upset by errant detection, would basically only work if the file ONLY identified by 'file' as PostScript and nothing else, which is incorrect usage of 'file' utility.
Most printers can only print say PostScript and something like PCL, some can print plain text directly but not UTF8 text, and if you encounter a PDF, or an image, or UTF8 text, you need to transform it into either of these formats first. A Linux print spooler is expected to be able to deal with different types of input files and transform them into something the printer can work with.
Using 'file' is not quite ideal of course, instead you may be thinking of going to a fully featured PostScript parser and asking it whether the file is valid, but that has another pitfall, maybe your PostScript parser has a bug and differs in its understanding of PostScript from the printer, and would fail a file which would otherwise print just fine.
Person: Hey printer, can you print out this document?
Printer: Can't...
Person: Why not? I refilled your ink and I know you have paper.
Printer: It's Tuesday.
Looking at the commits, 4.23 seems to be a fairly small version and I only see like 2 changes that _might_ be changing anything here. Hard to tell really…
The bug here was caused by whoever decided to use file(1) as the final arbiter of whether the file should be printed. file(1) is a hacky thing designed to give the user a hint about what an unknown file might be. At best it's an educated guess, and while it might be right 90% or 95% of the time, it's definitely not to be relied upon.
Most functional printer on Linux:
printers generally work better on linux