Missile dev casually budgets RAM for memory leaks - impact provides final garbage collection
Description
Black-on-white mono-spaced screenshot of a 1995 Usenet post titled “Re: Does memory leak?” from Kent Mitchell at Rational Software Corporation. Full visible text: From: [email protected] (Kent Mitchell) Subject: Re: Does memory leak? Date: 1995/03/31 Message-ID: <[email protected]>#1/1 X-Deja-AN: 100649473 distribution: world references: <[email protected]> <[email protected]> <[email protected]> organization: Rational Software Corporation newsgroups: comp.lang.ada Norman H. Cohen ([email protected]) wrote: : The only programs I know of with deliberate memory leaks are those whose : executions are short enough, and whose target machines have enough : virtual memory space, that running out of memory is not a concern. : (This class of programs includes many student programming exercises and : some simple applets and utilities; it includes few if any embedded or : safety-critical programs.) This sparked an interesting memory for me. I was once working with a customer who was producing on-board software for a missile. In my analysis of the code, I pointed out that they had a number of problems with storage leaks. Imagine my surprise when the customer software engineer said "Of course it leaks". He went on to point out that they had calculated the amount of memory the application would leak in the total possible flight time for the missile and then doubled that number. They allocated this much additional memory to the hardware to "support" the leaks. Since the missile will explode when it hits its target or at the end of its flight, the ultimate in garbage collection is performed with no programmer intervention. -- Kent Mitchell Technical Consultant Rational Software Corporation | | One possible reason that things aren't | going according to plan is ..... | that there never *was* a plan! Visual layout resembles a plain-text email/newsreader window, with quoted lines prefixed by colons and a signature block separated by dashes. Technically, it lampoons memory management in safety-critical embedded systems: the team knowingly leaks memory, counting on the missile’s destruction for cleanup - an extreme time-bounded execution strategy that highlights embedded constraints and developer humor
Comments
17Comment deleted
Forget reference counting - on the missile project we used time-to-impact semantics: if the heap outlives the airframe, it’s not a leak, it’s a feature
Ah yes, the good old days when we debated memory leaks on Usenet instead of Stack Overflow, and 'just restart the process' was considered a legitimate garbage collection strategy for missile guidance systems - what could possibly go wrong?
When your garbage collector is a kinetic energy event and your memory leak mitigation strategy is 'just add more RAM and hope the explosion happens before the OOM killer,' you've achieved a level of systems architecture that makes malloc() look like a solved problem. This is the embedded systems equivalent of 'it's not a bug, it's a feature' - except the feature is a fireball, and your uptime SLA is measured in Mach numbers
Memory leak in missile software? That's not a bug - it's a trajectory correction gone wrong
Design pattern: ballistic GC - budget the leak, add RAM, rely on a terminal destructor; works perfectly until Product extends mission time and your allocator becomes the incident
Favorite embedded SLO: "heap must last until impact." They fixed the leak by overprovisioning RAM and relying on hardware GC - aka detonation; the one time crash-only systems isn’t a metaphor
That's like not caring for closing files/sockets in python bc the program is so short system will close them anyway Comment deleted
the hell Comment deleted
Are the 'leaks' a necessary side-effect of whatever software this thing is running? Would it not be more efficient to reduce leakage and by extension the materials needed for fabrication? What am I missing? Comment deleted
by the time u fix the leak the war is over Comment deleted
Oh, a perfect time to advertise the Rust programming language Comment deleted
imagine integration testing :D Comment deleted
I want this amount of pissoires Comment deleted
Php Comment deleted
? Comment deleted
Early versions has no garbage collector - "php designed to die" anyway. I.e. run script for every https request, than process exit. Comment deleted
huh Comment deleted