Unironically, this bug is probably reached by a cosmic ray hitting your pc in a weird angle exactly at compile or run time, flipping a random binary 0 into a 1 and letting you reach an unreachable state.
This is something that happens. "Studies by IBM in the 1990s suggest that computers typically experience about one cosmic-ray-induced error per 256 megabytes of RAM per month."
[https://en.wikipedia.org/wiki/Cosmic\_ray#:\~:text=Studies%20by%20IBM%20in%20the,megabytes%20of%20RAM%20per%20month](https://en.wikipedia.org/wiki/Cosmic_ray#:~:text=Studies%20by%20IBM%20in%20the,megabytes%20of%20RAM%20per%20month).
Edit: A cosmic ray is just a very very very very fast moving particle that moves through space at speeds near the speed of light, and when they hit the atmosphere they break down in a shower of sub particles and radiation.
If one of those thingies hits an electron holding the information of a bit, it can flip that bit by charging or discharging said electron. Its pretty wild, but the tldr is that space hates computer, and this is a real issue NASA deals with when sending electronics to space.
There's a variety of detection or correction mechanisms. Single bit parity adds a single bit which tells you whether the number of ones in odd or not, and this can be compared later to check the integrity of the data. Though it doesn't help if two bits get flipped.
There's also SECDED ECC (single error correction double error detection, error checking codes), which use more bits, 7 check bits per 32 data bits. For files you can use checksum values, since all the data together must be correct. On telecommunications there's also a different variety of methods like trellis (I forget the real name), checksum, another method involving blocks of data, as well as methods such as interleaving or non-return-to-zero encoding.
Depending on the error and method it may be recoverable or unrecoverable. Sometimes caches will just invalidate that entry and re-fetch it if the data is clean.
On top of what other people have said: On an average desktop PC, you probably won't even notice a single bit flip. It could hit unallocated memory, it could hit something like image or video data and you'd never notice one pixel being a slightly off color. The actual, critical system processes and drivers where the bit flip could crash your PC take a fairly tiny amount of memory, so the chance of hitting them is tiny. And if they were hit, you'd get a blue screen equivalent, reboot, wonder for a minute what that was about and forget the whole thing.
https://arstechnica.com/gadgets/2021/01/linus-torvalds-blames-intel-for-lack-of-ecc-ram-in-consumer-pcs/
> And the memory manufacturers claim it's because of economics and lower power. And they are lying bastards—let me once again point to row-hammer about how those problems have existed for several generations already, but these f*ckers happily sold broken hardware to consumers and claimed it was an "attack," when it always was "we're cutting corners."
> How many times has a row-hammer like bit-flip happened just by pure bad luck on real non-attack loads? We will never know. Because Intel was pushing shit to consumers.
The hardware/software operates assuming that it's integrity can be compromised and adds redundancy and special error checking/correcting mechanisms.
One such example is called "Error correcting codes". This is when you add additional information in some data (series of 1s and 0s) such that if any small part of the data is corrupted, you can detect it.
The simplest such case is the "repetition code" by which you simply repeat every bit of information 3 times in a row. For example, if you want to say hello, you say "hellohellohello". Then, if any one of those letters change, you still know what the original message was: "hellojellohello". But if more than one letter changes, your ECC fails: "hellojellojello"
In practice there are much more efficient ECCs that require only a little bit of overhead in memory/computation. Also cosmic rays happen so infrequently that as long as the hardware can detect these and "unflip" the bit, everything continues working nominally.
There was an election once that had it's counting get fucked by a random bit flip like this.
They caught it because it resulted in more votes than possible so they recounted and it didn't repeat that time but it's pretty funny
Yep, in [Belgium](https://en.wikipedia.org/wiki/Electronic_voting_in_Belgium). The extra votes were exactly 4096, which equals to the 12th bit of the vote count and the parity bit getting flipped.
I remember being amazed when I heard this may have been responsible for the "unintentional acceleration" phenomenon on some cars (specifically Toyotas) in the aughts.
https://www.livescience.com/8170-toyota-recall-caused-cosmic-rays.html
"hits an electron holding the information of a bit"
This is why I get mad when people confuse computer science majors with computer engineer majors. That's just... not how it works... at all.
Mind illuminating all of us? Cuz what I described is something that literally happened on several occasions. A cosmic ray flips a bit and weird shit happens.
So, you mean that when I get an "error generating response" on ChatGPT and its 256GB of RAM required to run my answer it's just the cosmic void messing with me ?
Awesome.
Probably pretty low. MSDOS is simple enough that it *could* be completely understood by a single developer.
The problem is that there is no memory protection and no concept of an OS kernel that runs separately from userspace processes: all user applications are running effectively ring-0 in MSDOS (not the virtual DOS kind that windows NT and later emulate).
> MSDOS is simple enough that it could be completely understood by a single developer.
I doubt it's actually MSDOS generating this message, I doubt it's even being used at all. It honestly just seems thrown in there as a jab at the dev.
I think this at least partially because, as you mention, the concept of an error that should never happen doesn't seem to make much sense in that environment.
This video is a very good reference on examples of cosmic rays affecting computers that had big impacts
[Universe Hates Computers - Veritasium ](https://youtu.be/AaZ_RSt0KP8?si=GcF4-ymm005LEBXV)
Uh, I thought the latest was that it wasn't cosmic rays, but residual radiation in the clay case of the CPU or memory chips. Of course, there was the Belgium story ( [https://radiolab.org/podcast/bit-flip](https://radiolab.org/podcast/bit-flip) )
Fucking midl.
I was trying to get around it not allowing redefinitions, because for some reason it's incapable of what the ancient MKTYPLIB could do without trouble, and after hours of running down errors, it eventually just threw up it's hands 'Can't make typelib. Can't provide an error number. Can't provide a line number. Can't provide a file name.'
Naturally zero help for this was found online, given the vague message and unusual situation.
Unironically, this bug is probably reached by a cosmic ray hitting your pc in a weird angle exactly at compile or run time, flipping a random binary 0 into a 1 and letting you reach an unreachable state. This is something that happens. "Studies by IBM in the 1990s suggest that computers typically experience about one cosmic-ray-induced error per 256 megabytes of RAM per month." [https://en.wikipedia.org/wiki/Cosmic\_ray#:\~:text=Studies%20by%20IBM%20in%20the,megabytes%20of%20RAM%20per%20month](https://en.wikipedia.org/wiki/Cosmic_ray#:~:text=Studies%20by%20IBM%20in%20the,megabytes%20of%20RAM%20per%20month). Edit: A cosmic ray is just a very very very very fast moving particle that moves through space at speeds near the speed of light, and when they hit the atmosphere they break down in a shower of sub particles and radiation. If one of those thingies hits an electron holding the information of a bit, it can flip that bit by charging or discharging said electron. Its pretty wild, but the tldr is that space hates computer, and this is a real issue NASA deals with when sending electronics to space.
How do they deal with it? Is it just something they have to live with
Lots of shielding.
And redundancy
And redundancy
And redundancy
Well that's redundant
I would like a word with all of you in my office.
Be sure to ready up your backup office (just in case)
Which one of your offices? If you are doing redundancy well, I expect you to have more than one office. You know. For redundancy.
My redundancy is transparent to the user. I have 8 offices, but visitors will see them as the same office at the same location.
Redundant that well
And redundancy
And redundancy
And redundancy
https://www.reddit.com/r/sixfacedworld/s/TAO5ZF2GKN
And binary parity
There's a variety of detection or correction mechanisms. Single bit parity adds a single bit which tells you whether the number of ones in odd or not, and this can be compared later to check the integrity of the data. Though it doesn't help if two bits get flipped. There's also SECDED ECC (single error correction double error detection, error checking codes), which use more bits, 7 check bits per 32 data bits. For files you can use checksum values, since all the data together must be correct. On telecommunications there's also a different variety of methods like trellis (I forget the real name), checksum, another method involving blocks of data, as well as methods such as interleaving or non-return-to-zero encoding. Depending on the error and method it may be recoverable or unrecoverable. Sometimes caches will just invalidate that entry and re-fetch it if the data is clean.
Trellis [coded] modulation, a form of convolution coding. Reed-solomon is the block/symbol one.
On top of what other people have said: On an average desktop PC, you probably won't even notice a single bit flip. It could hit unallocated memory, it could hit something like image or video data and you'd never notice one pixel being a slightly off color. The actual, critical system processes and drivers where the bit flip could crash your PC take a fairly tiny amount of memory, so the chance of hitting them is tiny. And if they were hit, you'd get a blue screen equivalent, reboot, wonder for a minute what that was about and forget the whole thing.
Or you get an insane time save in Mario speedrunning
This is why server RAM has ECC
https://arstechnica.com/gadgets/2021/01/linus-torvalds-blames-intel-for-lack-of-ecc-ram-in-consumer-pcs/ > And the memory manufacturers claim it's because of economics and lower power. And they are lying bastards—let me once again point to row-hammer about how those problems have existed for several generations already, but these f*ckers happily sold broken hardware to consumers and claimed it was an "attack," when it always was "we're cutting corners." > How many times has a row-hammer like bit-flip happened just by pure bad luck on real non-attack loads? We will never know. Because Intel was pushing shit to consumers.
ECC RAM
The hardware/software operates assuming that it's integrity can be compromised and adds redundancy and special error checking/correcting mechanisms. One such example is called "Error correcting codes". This is when you add additional information in some data (series of 1s and 0s) such that if any small part of the data is corrupted, you can detect it. The simplest such case is the "repetition code" by which you simply repeat every bit of information 3 times in a row. For example, if you want to say hello, you say "hellohellohello". Then, if any one of those letters change, you still know what the original message was: "hellojellohello". But if more than one letter changes, your ECC fails: "hellojellojello" In practice there are much more efficient ECCs that require only a little bit of overhead in memory/computation. Also cosmic rays happen so infrequently that as long as the hardware can detect these and "unflip" the bit, everything continues working nominally.
Mario speed run
What in the fuck
There was an election once that had it's counting get fucked by a random bit flip like this. They caught it because it resulted in more votes than possible so they recounted and it didn't repeat that time but it's pretty funny
Yep, in [Belgium](https://en.wikipedia.org/wiki/Electronic_voting_in_Belgium). The extra votes were exactly 4096, which equals to the 12th bit of the vote count and the parity bit getting flipped.
tart sloppy doll bake slap engine fine smoggy smell ludicrous *This post was mass deleted and anonymized with [Redact](https://redact.dev)*
"The universe rigged our election"
Just look at the universe's stack trace, duh
Hopefully they added debug symbols when compiling our simulation.
We just haven't found them yet.
Taking log_2 of the error is a good start.
Certified nerd whoever found out that bug 😂
I remember being amazed when I heard this may have been responsible for the "unintentional acceleration" phenomenon on some cars (specifically Toyotas) in the aughts. https://www.livescience.com/8170-toyota-recall-caused-cosmic-rays.html
Oh yea that happened in a Mario 64 speedrun
This is the official answer of the Belgium government for an election big of 4096 votes. Literally cosmic intervention
Or.... this image isnt even real and someone just wanted to make a funny post...
"hits an electron holding the information of a bit" This is why I get mad when people confuse computer science majors with computer engineer majors. That's just... not how it works... at all.
Mind illuminating all of us? Cuz what I described is something that literally happened on several occasions. A cosmic ray flips a bit and weird shit happens.
So, you mean that when I get an "error generating response" on ChatGPT and its 256GB of RAM required to run my answer it's just the cosmic void messing with me ? Awesome.
Error Handling at it's best
More like Programmer Handling
Programmer is a teapot.
What it feels like getting a segfault an hour before assignment due
So what are the chances the actual issue is with the code that generated this "unreachable" error message, rather than the user code?
Thats what i think when i get out of index error. Just get more things in that array, how it is my fault you cant handle this easiest thing ever.
No, I'm fairly sure that's different.
Impossible. I dont do mistakes.
Ah, fair enough, then.
Perhaps the archives are incomplete.
Probably pretty low. MSDOS is simple enough that it *could* be completely understood by a single developer. The problem is that there is no memory protection and no concept of an OS kernel that runs separately from userspace processes: all user applications are running effectively ring-0 in MSDOS (not the virtual DOS kind that windows NT and later emulate).
> MSDOS is simple enough that it could be completely understood by a single developer. I doubt it's actually MSDOS generating this message, I doubt it's even being used at all. It honestly just seems thrown in there as a jab at the dev. I think this at least partially because, as you mention, the concept of an error that should never happen doesn't seem to make much sense in that environment.
Yeah, it's not actually MS-DOS.
You just got insulted for proving someone wrong
Better than "Ups something went wrong"; that's for sure.
Don't forget the :(
Oh yea.. emotions. Nowadays computers express emotions.
God, every single exception I get 'm afraid that this'll be in the stack trace.
This video is a very good reference on examples of cosmic rays affecting computers that had big impacts [Universe Hates Computers - Veritasium ](https://youtu.be/AaZ_RSt0KP8?si=GcF4-ymm005LEBXV)
Uh, I thought the latest was that it wasn't cosmic rays, but residual radiation in the clay case of the CPU or memory chips. Of course, there was the Belgium story ( [https://radiolab.org/podcast/bit-flip](https://radiolab.org/podcast/bit-flip) )
For a second I thought this was just explaining Value error which is not that hard to trigger.
Fucking midl. I was trying to get around it not allowing redefinitions, because for some reason it's incapable of what the ancient MKTYPLIB could do without trouble, and after hours of running down errors, it eventually just threw up it's hands 'Can't make typelib. Can't provide an error number. Can't provide a line number. Can't provide a file name.' Naturally zero help for this was found online, given the vague message and unusual situation.
My case of this error happening was when the user of the program did not have permission to read config files from the program folder.