The scene: late Friday afternoon, a medium-size company in a big-size panic. Tom and the other web developers churned through last-minute fixes on a client’s new e-commerce site- a site that should’ve been done and deployed two weeks earlier.
Tom committed his latest changes on a CSS file to the SVN repository, wiping sweat from his brow. He updated his local repository, then went back to Dreamweaver, shaking his head. The company’s web designers insisted the devs used Dreamweaver. It wasn’t that bad, Tom supposed, but there were several better-
Tom frowned; he hadn’t seen that happen before. No big deal. He opened Dreamweaver again. That time, it crashed on startup. On the next try, it stayed open a few seconds, then- crash.
“OK, fine,” Tom muttered, digging under the Start Menu for the Restart option.
Tom paced in his cube as his machine booted back up. The company’s network policies and startup scripts guaranteed a five-minute break, at least, but Tom just wanted to be done and home already. His coworkers’ chatter permeated the cube walls.
“What the hell, Dreamweaver?”
“Is it crashing for you, too?”
“Hey, it’s crashing over here too!” Tom piped up.
Slowly, every web developer and designer in the company succumbed to the same problem. Restarting Windows didn’t help.
Late on a Friday, the developers tried to rope in as many IT people as they could who hadn’t already escaped to weekend bliss. “Uh… have everyone run a virus scan!” commanded the most senior guy left, someone who’d only been working there a few months.
All virus scans came back clean. IT convinced one person to attempt a reimage of his machine, yet still the problem persisted. Minutes of downtime dragged into hours. By then, management had emerged to escalate the panic to hysteria. Unfortunately, no amount of “FIX IT NOW” meetings ever did anything to fix a problem, especially when they trapped IT folks in conference rooms and prevented them from working on said problem.
Tom worried about the proximity of his last update and the crash issue occurring. He hadn’t told anyone yet, but it’d only be a matter of time before someone thought to check the commit log. His machine was clean, though! How could a CSS file possibly crash anything?
Tom googled around for anything regarding Dreamweaver crashes. The first page of results led nowhere. It was only after much digging that he discovered a forum post out in the boonies of the Internet, wherein the original poster described a problem remarkably similar. Tom scrolled faster and faster down, scanning for any helpful reply. Finally, someone fingered it: “Dreamweaver can’t open files that are 8KB EXACTLY in size.”
What? That’s insane! Tom thought.
He checked the size of the last file he’d worked on. 32768 bytes.
Well, that’s not 8K... wait! Tom opened up the Windows calculator and typed in 32768 / 8192 = …
4. The answer was 4. Sure enough, the file size was an exact multiple of 8K.
Heart racing, Tom opened the CSS file and added a blank comment line at the bottom. After confirming the file was no longer 32768 bytes in size, he committed the change to the SVN, then updated. Finally, the moment of truth: he tried to open Dreamweaver.
It opened successfully.
Tom waited several seconds, then bolted out of his chair. “Everybody update SVN, now! I think I may have fixed it!”
Soon, everyone was back in business, wondering how the heck Tom had done it. He emailed them a link regarding the now-infamous Dreamweaver 8KB bug, but neglected to mention it was his own check-in that had spawned the issue.