June 26, 2007
Bug 1482 Fixed: Better Success/Failure Message From Stringmaker - A modification was made to make the exit status of Stringmaker more clear.
Bug 1517 Fixed: XML Files Not Getting Deleted in Some Cases - A fix was made to try to take care of the problem where XML files are left behind after the data have been deleted.
Bug 1909 Fixed: Error in AIRS Pentad Production Rule - The pentad production rule (specific to processing of AIRS data) had an error that occurred at the end of the month resulting in an incorrect interval being returned. This has been fixed.
Bug 1965 Fixed: Bug in Smart Polling Functionality - A bug in Smart Polling caused the polling frequency to revert to the highest value (30 seconds by default) when the maximum polling interval was reached rather than going to the lowest frequency.
Bug 2008 Fixed: Modify Thresholds GUI Doesn't Show Granules Available - The Modify Thresholds GUI, which is run in the Select Data station, allows the wait time and granule number threshold to be modified when the station is preselecting many granules. The GUI, however, didn't show how many granules were actually found for any particular job. This has been fixed.
Bug 1003: Run S4PM Under Individual Not Group) Accounts - Added capability to terminate, suspend and resume jobs without by dropping a signal file instead of directly sending a kill signal. This is activated by setting $cfg_end_job_interval.
Suspend and Resume Fixed - Fixed suspend and resume to send signals to the running processes, not the stationmaster child.
Detailed File Changes
Added nervous_system(), a fork/exec simulation of system() that keeps checking for a signal file to terminate the child job
Added end_job(), a way to generate the signal file for nervous_system() if the $cfg_end_job_interval is set. If not, it calls terminate_job() directly.
Refactored terminate_job and added alert_job() in order to support job control in a multi-user setting.
Deprecated suspend_job() and resume_job() in favor of suspend_job_child() and resume_job_child() so as to send the signal to the process doing the actual executing, not the stationmaster child.
Terminate_job() calls end_job() instead of terminate_job().
The suspend_job() and resume_job() call alert_job() now, so that multi-user signal-file signaling can be invoked if appropriate
Fix for Bug 1517 where the XML file cannot be found based on the data file name. Code was added to try to find the XML file by opening up the UR file and extracting the UR string, pulling off the file name portion, and appending .xml to it.
- Modified so that it finds data based on the end time rather than the mid time.
- Added support for the PREV granule.
Fix for Bug 1965 in function get_polling(). There was an indexing error which caused the return value to be null when the maximum polling interval was reached.
Added checking for duplicate output groups in the @OUTPUTFILEGROUPS array in subroutine fill_in_optional_file_groups() where a duplicate means that it has the same UR as another. If found, the duplicates are removed.
- Fix for Bug 1482. Modified to print out clear success/failure messages.
Modified to set $cfg_stop_interval, $cfg_end_job_interval, and $cfg_deadline in the stations if $multiuser_mode is set.
Also for $multiuser_mode, added PATH environment variable setting to the s4pm_start.ksh file.
- Added invocation of nervous_system() instead of system() if $cfg_end_job_interval is set.