News for hackers. Stuff that matters.
Re:Malloc Geiger Counter by apankrat on Saturday August 29, 2020 @05:44AM (#24314945)
Bit flips in RAM happen often enough to be an issue.

I make a desktop program with a sizeable installation base and it uses a form paged on-disk storage for larger data sets. The code has a fair amount of asserts in it and one specific assert would keep failing in a very tiny percentage of the cases. I kept reviewing the code and scratching my head before finally adding some extra logging for this case.

Lo and behold, in all failed cases an argument passed to a function had one of the bits set for no apparent reason. I.e. the offsets of pages in the cache would be:

    00000000000000 ...
    00000000100000 ...
    00000000200000 ...
    00000000300000 ...
But the args would come in as

    80000000100000
    00040000200000
    01000000300000
    ...
Followed up with the people who reported these, asked to run an overnight RAM test and ALL of them found issues with their RAM. That was quite an eye-opener.
Re:Malloc Geiger Counter by Someone on Saturday August 29, 2020 @08:55AM (#24315751)
You weren’t explicitly saying it, but some might infer it, so I think it’s worth mentioning that bit flips in RAM aren’t necessarily radiation-induced. Some other causes are heat and aging (both increase capacitor leakage, and DRAM cells are tiny capacitors), or lack of robustness in refresh logic.
Re:Malloc Geiger Counter by quercusa on Saturday August 29, 2020 @12:44PM (#24317373)
Another cause, at least in the old days, was bad board design, in which badly-placed traces could induce currents in other traces. Of course this only happened two+ hours into the test.
Re:Malloc Geiger Counter by tyingq on Saturday August 29, 2020 @09:19AM (#24315872)
One of the more interesting ways to test this is to register a one character typo of a very popular domain where the typo is one bit off.

Like, say, dacebook.com or facebooo.com

Spin up a web server, and you'll get traffic, but typically only one of the requests from a specific client.

Re:Malloc Geiger Counter by sneak on Saturday August 29, 2020 @10:25AM (#24316319)
it has to be a one-bit-error byte change in particular.

https://media.blackhat.com/bh-us-11/Dinaburg/BH_US_11_Dinabu...

Re:Malloc Geiger Counter by brokenmachine on Tuesday September 01, 2020 @01:53AM (#24338948)
I read a blog article years back by a game author who inserted CPU/RAM/Math sanity checks into the code (I forget what the reason he did this for was), and he was suprised with how often it detected hardware errors in customer's PCs.

Wish I could find the article again, I forget the details but it was a fun read.

Re:Malloc Geiger Counter by s9w on Saturday August 29, 2020 @08:58AM (#24315774)
I remember a blog post by Riot (league of legends developer) also about this happening. But I couldn't find it again when I was searching for it. I can't imagine the havoc that regular bit flips must cause.
Re:Malloc Geiger Counter by andi999 on Saturday August 29, 2020 @09:39AM (#24315997)
Were all the machines which reported that in the same building (your software could been used in house). If so, better check for radiation levels, for health risks; I have never seen a RAM test fail actually (apart from a completely broken chip)
Re:Malloc Geiger Counter by toast0 on Saturday August 29, 2020 @12:54PM (#24317457)
If you've got a system where you can tweak the ram timings and/or voltages (most desktops will let you do at least some of this), it's pretty easy to induce failures, if you haven't run into bad ram naturally.

I've run enough systems with ECC ram to say the vast majority of ram works and will continue to work, but over time, a small amount will fail, again the vast majority is a single bit in the whole chip, but some will do multiple bits near each other (uncorrectable ecc error usually halts the system), or man single bit errors all over (many machine check errors per second makes the system go so slow, halting would be better).

Re:Malloc Geiger Counter by edwintorok on Saturday August 29, 2020 @09:56AM (#24316121)
As mentioned below it can deteriorate over time. A while ago I had a RAM stick fail. I noticed because GCC started segfaulting randomly and I haven't upgraded GCC recently. Sure enough a memtest revealed the fault. I think it didn't have enough cooling.

I only purchased RAM with heatsinks since then, and I didn't have such problems anymore (also my latest case has much better airflow)

Re:Malloc Geiger Counter by hinkley on Monday August 31, 2020 @11:56AM (#24332701)
I unplugged the wrong power cable once, and thereafter the RAID controller on that machine would report degradation after the system was running for a while. Finally ran a RAM error check, one bit in most of a stick was flipped. The last stick. So once the machine was all spooled up for a while, I’d get errors.

This is also how I learned 3ware was using RAM instead of its own memory. What is he point of hardware RAID if main memory can screw it up?

I have also heard of people swapping hardware on a defective machine only to learn that the power supply was bad, sending noise or brown power to the system. Swap in a new power supply and the components start to behave themselves.