11 ms·
Doom crash after 2.5 years of real-world runtime confirmed on real hardware
- deleted 1y ago[deleted]
- 0cf8612b2e1e 1y agoI am going to need to see this replicated before I can believe.
- ranger_danger 1y agoSeems to be a PocketPC port of Doom, with no source given or even a snippet of the relevant code/variable name/etc. shown at all.
- unixhero 1y agoYes. I think it it seems like it was the os that overflowed, and not Doom in this case.
- nomel 1y agoIt's also running on very old hardware, potentially with some electrolytic capacitors that have dried up. And, there's always the possibility that it's a gamma ray [1]! [1] https://www.bbc.com/future/article/20221011-how-space-weather-causes-computer-errors https://www.bbc.com/future/article/20221011-how-space-weathe...
- jama211 1y agoThey explained it was in the game code though?
- unixhero 1y agoTo me, that error message was caused by some panic, and then the OS began gracefully shutting down the application in this case DooM - which would not have been done by the program itself. Therefore I conclude it was the OS. I am not an OS developer, so I take my own conclusion with a grain of salt.
- jama211 1y agoDid you read the article? They specifically said it was a variable in the game engine code that causes the overflow. A program crashing causes the OS to show the error, but the bug that caused the crash was clearly in the game code itself. Any OS this game engine ran on would experience this crash.
- deleted 1y ago[deleted]
- sunrunner 1y agoNot a comment on the post, but I sure wish Jira would load even half as quickly as this site.
- stevage 1y agoIt's not loading for me at all.
- antsar 1y agoIt takes serious hardware investment [0] to pull that off. [0] https://lenowo.org/viewtopic.php?t=28 https://lenowo.org/viewtopic.php?t=28
- skilled 1y ago> Host it on the Fritzbox 7950 instead? It's a router.. oh my god that made me laugh
- fifteen1506 1y agoMeta-Meta-Meta: Update: After the recent hacker news "invasion", I have now determined that the page can handle up to 1536 users before running out of RAM, meaning that the IP camera surprisingly is fully sufficient for its purpose. In other words, I will not be moving the forum in the near future as 32 MB of RAM seem to be enough to run it Source: https://lenowo.org/viewtopic.php?t=28 https://lenowo.org/viewtopic.php?t=28
- hughes 1y agoIs this a joke because the site isn't loading at all?
- JoshGlazebrook 1y ago2038 is going to be a fun year.
- jonhohle 1y agoThat seems much closer than it did in y2k.
- aaronbrethorst 1y ago[ 25 ] Now [ 13 ] yep
- kevin_thibedeau 1y agoEverybody is sleeping on 2036 for NTP. That's when the fun begins.
- wiredpancake 1y agoAssuming correct implementation of the NTP spec and adherence to the "eras" functions, NTP should be resistant to this failure in 2036. The problem being so many micro-controllers, non-interfaceable or cheaply designed computers/devices/machines might not follow the standards and therefore be susceptible although your iPhone, Laptop and Fridge should all be fine.
- pjc50 1y agoFixing that is my retirement plan.
- cestith 1y agoYou have 13 years to upgrade to 64-bit ints or switch to a long long for time_t. Lots of embedded stuff or unsupported closed-source stuff is going to need special attention or to be replaced. I know the OpenFirmware in my old SunServer 600MP had the issue. Unfortunately I don’t have to worry about that.
- account42 1y ago
- serf 1y agoThe easy way to e-Nostradamus predictions: "See this crash? I predicted it years ago. Don't ask me how, I couldn't tell you." p.s. I had an old iPaq that I wouldn't have trusted to run for longer than a day and stay stable, kudos for that at the very minimum.
- prmoustache 1y agoI had an iPaq for a while and I don't remember seeing OS/hardware crashes.
- zero_shift 1y agoAbout a year ago I was looking at Crash Bandicoot timer systems and I found that Crash 3 has a constantly incrementing int32. It only resets if you die. Left for 2.26 years, it will overflow. When it does finally overflow, we get "minus" time and the game breaks in funny ways. I did a video about it: https://youtu.be/f7ZzoyVLu58 https://youtu.be/f7ZzoyVLu58
- stevage 1y agoYou really managed to make the whole video without making a single "crash" pun? (Those freezes come close enough that you could call them crashes...)
- jsheard 1y agoThere's a weapon in Final Fantasy 9 which can only be obtained by reaching a lategame area in less than 12 hours of play time, or 10 hours on the PAL version due to an oversight. Alternatively you can just leave the game running for two years until the timer wraps around. Slow and steady wins the race. https://finalfantasy.fandom.com/wiki/Excalibur_II_(Final_Fantasy_IX) https://finalfantasy.fandom.com/wiki/Excalibur_II_(Final_Fan...
- zero_shift 1y agoOh yeah. The sword you pick up in Memoria. The problem there is that the PAL version runs slower; the way PSX games "translated" between the two video systems was just to have longer VSync pauses for PAL. So the game is actually slower, not interpolated
- reactordev 1y agoLonger vsync pauses but larger frame time deltas so it’s basically the same speed of play. The only thing that was even noticeable was the UI lag.
- fredoralive 1y agoErm. No, like lots of games during the era quite a lot of stuff is tied to the frame rate, so the 50Hz region game just runs slower than the 60Hz one as next to nobody bothers to adjust for it. The clock for the hidden weapon does run at the same rate for both unfortunately, hence it being harder to get in 50Hz regions.
- Insanity 1y agoLiterally unplayable, someone should fix that. Doom is actually such a good game, I always go back to it every few years. The 2016 reboot is also pretty fun, but the later two in the series didn’t do it for me.
- xmonkee 1y agoSame. And love those brutality mods.
- bitwize 1y agoFun fact: Doom is now a Microsoft property, along with Quake, StarCraft, WarCraft, Overwatch, all of the adventure games from Infocom and Sierra, and of course Halo. Microsoft pretty much owns most of PC gaming. Which is what they've wanted since 1996 or so.
- nurettin 1y ago> Microsoft pretty much owns most of PC gaming. So valve next?
- tomwojcik 1y agoAs long as Gabe is alive, no way.
- Lightkey 1y agoThey missed that window when Sierra was still the publisher for Half-Life. Besides, Valve is not a publicly traded company and Gabe Newell as former manager at Microsoft has no interest in getting back together. Valve is betting everything on Linux right now to be more independent from Microsoft.
- LorenDB 1y agoSince we've hugged the site to death, have an archive.org link: https://web.archive.org/web/20250916234009/https://lenowo.org/viewtopic.php?t=31 https://web.archive.org/web/20250916234009/https://lenowo.or... Sadly it appears that archive.org didn't capture all of the site formatting, but at least the text is there.
- casey2 1y agoHas this ever come up in a TAS of custom levels?
- spjt 1y agoJust be glad you knew what the bug was before you started. After 2.5 years... "Shit, I forgot to enable debug logging"
- ZsoltT 1y agoglitchless?
- jeffrallen 1y agoThis headline gave me a heart attack... I misread the site's name as Lenovo, and as I'm responsible for a whole lot of their servers running for years in a critical role... heart attack. Maybe I need my morning coffee. :)
- minki_the_avali 1y agoI mean I wouldn't mind getting a subdomain there but I do like lenowo more :3
- DeathArrow 1y agoIt's good it didn't took a billion years to overflow. That would have been quite a long wait.
- ustad 1y agoWas this specific to the PDA port or the core doom code? @ID_AA_Carmack Are you going to write a patch to fix this?
- bombcar 1y agoLooks like top security high damage CVE to me!
- jraph 1y agoNotably, DOOM crashed before Windows CE.
- wingi 1y agoYes, great achivement!
- chatmasta 1y agoSeriously… I’m most impressed that this PDA kept an application running for 2.5 years. I’d be shocked if any modern hardware could do this, even while disconnected from the Internet.
- jraph 1y agoI'd be more impressed by current software not crashing for 2.5 years than hardware, but that might be I'm a software developer, not a hardware developer :-)
- moomin 1y agoLiterally unplayable.
- Zobat 1y agoThis is a level of testing that exceeds what the testers I know commit to. I myself was annoyed the five or so times yesterday we had to sit and wait to check the error handling after a 30 second timeout in the system I work on.
- johnjames87 1y agoLiterally unplayable
- shultays 1y agoDoes that hardware traps overflows or something? I had read an article about how DOOMs engine works and noticed how a variable for tracking the demo kept being incremented even after the next demo started. This variable was compared with a second one storing its previous value Doesn't sound like something that would crash, I wonder what was the actual crash
- Sharlin 1y agoSigned overflow is undefined behavior in C, so pretty much anything could happen. Though this crash seems to be deterministic between platforms and compilers, so probably not about that. TFA says the variable is being compared to its previous value, and that comparison presumably assumes new < old cannot happen. And when it does, it could easily lead to eg. stack corruption. C after all happily goes to UB land if, for example, some execution path doesn’t return a value in a function that’s supposed to return a value.
- phkahler 1y agoThat doesn't make sense. If new < old cant happen there is no need to make a comparison. Stack corruption? Nah, its a counter not an index or pointer or it would fail sooner. But then what is the failure? IDK
- jraph 1y agoAssuming new > old doesn't mean you actually make the comparison, but rather that the code is written with the belief that new > old. This code behaves correctly under this assumption, but might be doing something very bad that leads to a crash if the new < old. An actual analysis would be needed to understand the actual cause of the crash.
- Sharlin 1y agoUm, there are the cases new == old and new > old. And all the more specific cases new == old + n. I haven’t seen the code so this is just speculation, but there are plenty of ways how an unexpected, "can never happen" comparison result causes immediate UB because there’s no execution path to handle it, causing garbage to be returned from a function (and if that garbage was supposed to be a pointer, well…) or even execution never hitting a `ret` and just proceeding to execute whatever is next in memory. Another super easy way to enter UB land by assuming an integer is nonnegative is array indexing. int foo[5] = { … } foo[i % 5] = bar; Everything is fine as long as i isn’t negative. But if it is… (note that negative % positive == negative in C)
- piker 1y agoProps again to the id team. No doubt something like that engineered by most folks today would have died long before the 2 year mark due to memory fragmentation if not outright leaks.
- otikik 1y agoQuick! John Carmack needs to be brought into this immediately.
- kwertyoowiyop 1y agoCNR. Please attach video.
- qiine 1y agoIn games I worked on I use time to pan textures for animated FX. After a few hours precision errors accumulate and the texture become stretched and noisy, but since explosions are generally short-lived its never a problem. Yet this keep bothering me..
- patchtopic 1y agoI haven't opened my DOOM software box, it's still in the shrinkwrap. I guess I can take it back and ask for a refund now?
- deleted 1y ago[deleted]
- glitchc 1y agoI love the post, but your blurry text is hurting my eyes. Looks like it's intentionally blurry but I can't figure out why. This can't be a holdover from older systems, they had razor-sharp text rendering on CRTs.
- jraph 1y agoLooks crisp on my setup, but I block fonts and scripts. Reader mode is your friend :-)
- minki_the_avali 1y agoIts not supposed to be blurry, you may have a configuration error in your browsers font renderers pixel order (like using BGR on an RGB screen), Id recommend testing with font smoothing turned off and seeing if it persists.
- EbNar 1y agoLove the look of that board :-)
- cestith 1y agoOnce upon a time, Windows NT 4 had a similar bug. Their counter was high precision, though, and was for uptime of the system. Back before Service Pack 3 (or was it SP2?) we had a scheduled task reboot the system on the first of the month. Otherwise it would crash after about 42 days of uptime, because apparently nobody at Microsoft tested their own server OS to run for that long.
- abbeyj 1y agoAre you thinking of https://web.archive.org/web/19990508050925/http://support.microsoft.com/support/kb/articles/q216/6/41.asp https://web.archive.org/web/19990508050925/http://support.mi... ? Or was there a different bug in NT 4?
- cestith 1y agoThis was definitely NT. It was the IIS server at an ISP. It might have been the same timer, and it might’ve been 49 days instead of 42. Its was in the forties, and 42 sticks in my mind pretty easily. It may have been basically the same bug. UPDATE: Apparently it was 49.7 days in NT, same timer bug as 9x. Only remember this was a server OS. https://www.reddit.com/r/sysadmin/comments/86jxva/anyone_remember_that_windows_nt_bug_that_meant_it/ https://www.reddit.com/r/sysadmin/comments/86jxva/anyone_rem... That, or the Reddit poster and I have the same wrong memory of the bug. I do know my boss at the time made us make the scheduled task to reboot because he understood it at the time to happen on NT 4.
- minki_the_avali 1y ago> about 42 days About 42 sounds a bit too low, if this really was a timer overflow from a 16 bit timer it would have to be around 49 days
- shadowgovt 1y ago"I hope someone got fired for that blunder." /s