Chris M. was a developer at Small Widget Manufacturing. He and his coworker Scott were, in theory, assigned only to developing their in-house ERP software. However, with just one person running the company’s help desk, they often picked up anything considered “software-related.”
A ticket pinged Chris’s inbox: EDI Running Slow. It was from a sales rep named Brett, and like most tickets from sales reps, was marged Urgent. Chris decided to play ball, since Scott was tied up with something else. He called Brett, asking if he could elaborate.
“Normally, when I get an order from a customer,” Brett said, “I can just go into our ERP system and upload it, and it’ll get imported in fifteen minutes. If I get an error, I wait fifteen minutes and try again. That used to work, but now it’s taking longer than 45 minutes for it to upload.”
“It’s probably just a scheduler that’s misconfigured,” Chris said. “I’ll look into it.”
Reappropriated Hardware
Small Widget Manufacturing used a custom-built EDI solution for transferring orders, blueprints, etc. between their customers and the plant. The whole thing had been delivered by some expensive third-party consultants just before Chris had started at Small Widget, after which the consultants vanished without a trace. They hadn’t even left behind documentation for the EDI software.
Chris hadn’t yet dug into the guts of the EDI software, so he asked Scott where it was housed. “Dunno,” he replied. “Check with IT.”
Fine. So Chris went to IT, talking to Cori, who headed that department. After half an hour of digging through paperwork, she led Chris to a desktop box in a corner, covered in dust. On its case was a badge: Windows 7 Home, it said.
“EDI runs on that?”
Cori nodded. “The consultants didn’t want to put it on some new hardware, so they dug this out of storage and installed their software on it. They didn’t even bother to reformat it.”
A Time-Saving Feature
Back at his desk, Chris was able to remote desktop onto the Win7 machine and began digging around. He checked the hard drive first, noticing that there was very little space left. The default Windows task scheduler was terrible, so anything usable must be custom-built. He noticed an application running in the taskbar with a clock icon. He clicked on it, spawning a console window.
The highly-paid consultant’s EDI solution was little more than a long-running FTP app. Thinking that the app must be choking the disk with logs, Chris dug through the hard drive and found them.
[12] Sun 01Nov15 03:24:04 - (Task: SPS FTP) - Next scheduled execution on Sunday, November 01, 2015 04:39:00
That looked wrong. Brett said that his file transfers happened within 15 minutes. Why would the next task be scheduled for an hour and fifteen minutes in the future? Digging further back into the logs, he found this:
[12] Sat 31Oct15 23:39:02 - (Task: SPS FTP) - Next scheduled execution on Saturday, October 31, 2015 23:54:00
It was scheduling tasks correctly on October 31st, but not November 1st. So what happened on that date to cause the scheduler to bump up the interval by an hour? Frustrated, Chris stepped over to Scott’s desk to bounce some ideas off of him. He asked what could possibly have happened on November 1st.
“I dunno,” Scott said. “Daylight saving time?”
As Scott said it, both he and Chris knew that was exactly what was wrong with the machine. It was running off its own scheduler, not Windows, so whatever solution the highly-paid consultants had given Small Widget, it didn’t account for the end of daylight saving time.
Future-Proofing
After some further digging, Chris discovered a setting: the app used “09–01–2015” as a start date for its scheduling timer. He changed this to “11–02–2015”, a day after the end of daylight saving time. He restarted the app in task manager, waited half an hour, and checked the logs.
It was once again running every 15 minutes.
He called Brett with the news, who was just happy that his file transfers didn’t take over an hour to complete. Chris also added an item to his calendar: at the beginning of daylight saving time next year, he would change the date setting again. He didn’t want to know what would happen if the scheduled task were set to run every –45 minutes.