Fixing Date Problems From The Future
June 22, 2015
HP 3000 managers have traveled long roads toward the future of their servers, but sometimes the server travels even farther. Into the future, it seems, to apply modification dates to files that couldn't possibly be modified months or years from now.
This can cause problems with system maintenance. Craig Lalley experienced some last week. After running the NMVALCK command, he discovered "I have thousands of files with future dates." He was pretty sure there's a way to adjust a date like FRI, SEP 10, 2027, 1:53 AM by using MPEX. (A good bet, since the Vesoft product manages the 3000's files better than MPE/iX itself). But what about other repair options?
There are two, one in the community's freeware resources, and one in its Posix namespace. The freeware comes from Allegro Consultants. FIXFDATE (just do a "find" on the web page to locate the utility's entry) "will sweep through your files and change any creation, modification, access, allocation, or statechange date that is a "future" date to be today."
Another resource comes from within the 3000's Fundamental Operating System. Touch, a common Posix utility, exists on the HP 3000's implementation.
Touch shall change the last data modification timestamps, the last data access timestamps, or both.
The time used can be specified by the -t time option-argument, the corresponding time fields of the file referenced by the -r ref_file option-argument, or the -d date_time option-argument, as specified in the following sections. If none of these are specified, touch shall use the current time.
Changing the dates of a full system's worth of files might someday be the mission for any 3000 owner who's trying to carry MPE beyond January 1, 2028. The world of 3000 Future Time hasn't been explored much, mostly because the community seems confident some solution will be available in 2027. It's still 12 years away, after all.
Allegro's Steve Cooper knows date representation issues have been addressed by the 3000 development community before -- in an era when many companies were still engineering for the system. He can sound sanguine about the issue because his partner Stan Sieler engineered date repairs for the 3000 during Y2K work at the end of the 1990s.
Allegro sold a Y2K utility as part of its 3000 development toolset. "If anyone cares by then, one will need to do remediation similar to what was done for Y2K," Cooper has said. "Each program will need to be inspected for vulnerabilities, then fixed to use an alternate method of date storage and manipulation."
And, yes, as you suspect, this could arise before then. If, for instance, you are manipulating contract expiration dates in your COBOL program, and are using a 2027-sensitive format, then you will not be able to correctly handle any date past the 2027 cut-off.
If you don't mind, though, I'm not going to lose any sleep over this issue for another several years. Remind me again toward the end of the decade, and I'll ask Stan to look into it. If I ask him now, I will lose a few months of productivity out of him, while he solves next decade's problems.
The issue is not limited to the HP 3000, even though the 2027 date is unique to MPE/iX. Unix has got the same kind of deadline approaching 11 years later. Cooper pointed to a Wikipedia article that explains the "Year 2038 problem" as an analogy to the 3000's.