Revision history for Perl extension Helios.
2.31_0231 Thu Jan 12 01:15:00 2012
-2.40 RELEASE CANDIDATE 4
-Helios::Service->logMsg() tweak to load Helios::Logger::Internal *before*
the other loggers instead of after (reduces headaches if something goes
wrong in the external loggers)
-corrected Helios::Error::LoggingError
-tweaks to Bundle::Helios...seems to be work on Ubuntu 11.04, more tests
needed
2.31_0211 Mon Jan 09 23:00:00 2012
-2.40 RELEASE CANDIDATE 3
-shenanigan prevention adjustments
-documentation for new submitJob.pl
-refactored StubService.pm (it's just an example anyway)
2.31_0172 Sun Jan 08 23:00:00 2012
-2.40 RELEASE CANDIDATE 2
-shenanigan prevention
-Helios::Service->work() returns 0 to helios.pl launch_worker() now
(prevents helios.pl from carping about an undefined return code)
-sql/helios_schema.sql is more complete; creates database and (if
uncommented) user
-Bundle::Helios added (still experimental)
-Updated INSTALL and added INSTALL.ubuntu & INSTALL.redhat
-Updated Stub::StubService for clarity
2.31_0141 Wed Jan 04 23:00:00 2012
-2.40 RELEASE CANDIDATE 1
-Fixed MaxRetries() and RetryInterval()
-Added INSTALL.ubuntu
-Removed sql/helios_schema_20upgrade.sql (obsolete)
2.31_0111 Mon Jan 02 23:30:00 2012
-HeliosX::Logger::Internal: re-added support for
log_priority_threshold config param
2.30_5272 Sun Jan 01 23:30:00 2012
-Renamed runMetajob() to metarun()
-Renamed DOWNSHIFT_ON_FAILED_JOB to DOWNSHIFT_ON_NONZERO_RUN to
make it clearer what it does.
-Rewrote Helios::TestService to be more clear and up-to-date.
-Updated copyright notices (Happy New Year!)
-Helios::Job: changed failed() and failedNoRetry() to limit the
char length of the error recorded to 254 chars. That's one less
than the default size of the db field in the ERROR table, so it
should prevent long errors like stack traces from unexpectedly
blowing up worker processes and potentially losing jobs
-Helios::Service->work(): calls to run() and metarun() are now
wrapped in an eval {} block to catch uncaught exceptions. If the
run() or metarun() method of a service dies while processing a
job, the uncaught exception will be caught & logged, the job in
question will be failed, and the worker process will be exited.
This will prevent worker processes from unexpectedly blowing up
and losing jobs.
2.30_5271 Sun Jan 01 11:44:00 2012
-Changed Helios::Service->work() to ignore the value returned by a
service's run() or runMetajob() method by default. Previous
Helios versions would understand a nonzero return from run() to
mean a failed job, and would force the worker process to end even
though the service was in OVERDRIVE mode. This was considered a
safety measure as the reason for the job failure was unknown.
However, this feature was underdocumented and confusing and has
been removed.
The new default behavior doesn't pay attention to the value returned
from run() or runMetajob(). You should mark your job as completed or
failed in run() or runMetajob() and not worry about returning anything.
This new behavior also has the advantage of working with all of the
popular modes of Perl exception handling (using Perl's eval {} will return
1 if successful, while Try::Tiny and Error's try {} will not).
Anyone requiring the old behavior can use the new DOWNSHIFT_ON_FAILED_JOB
parameter to enable it.
2.30_5232 Wed Dec 28 20:20:00 2011
-Added Helios::Service->runMetajob() to update and modularize
metajob handling code.
-Cleaned up some unnecessary warnings from work() and logMsg()
-Removed vestigial dependency on XML::Parser in Helios::Service
(forgot that was in there)
2.30_5072 Wed Dec 20 21:33:00 2011
-Same as 5071, but with including BaseError and fixed MANIFEST
(oops, sorry!)
2.30_5071 Sun Dec 18 02:30:00 2011
-Added Helios::Error::BaseError and modified all Helios::Error::
exception classes to subclass it instead of Error::Simple
directly. This creates an actual exception class hierarchy,
and makes it easy to determine whether a caught exception is a
Helios error or another kind of error. (It might also allow
an eventual move from Error to another exception handling
system.)
2.30_5041 Thu Dec 15 23:40:00 2011
-Completely rewrote submitJob.pl to allow requester to send job
arg XML in an HTTP POST; the form encoding is no longer
necessary (though is still supported to ensure compatibility)
See submitJob.pl for updated job XML syntax
New submitJob.pl also eliminates dependency on HELIOS_CLASS_MAP
to determine the proper class for a particular job type (though
HELIOS_CLASS_MAP is still supported)
-Removed vestigial dependency on XML::Parser in Helios::Job &
removed mention of it in Makefile.PL
-Corrected Makefile.PL to remove mention of XML::SAX,
XML::Namespace as dependencies (Helios's only direct XML::*
dependency is XML::Simple)
-Corrected Makefile.PL with older versions of DBI and XML::Simple.
These versions were packaged as RPMs with CentOS 5.7. This
change helps installation on RPM-based Linux OSes, and Helios is
compatible with these versions.
2.30_4931 Wed Dec 07 00:52:00 2011
-Switch to "Linux-style" versioning:
odd minor version == development version
even minor version == stable version
second minor number == patch level
(we're still also using Perl-style _ for devel versions too)
-Merged in HeliosX::ExtLoggerService functionality
(long overdue but not tested yet!)
-Removed Helios::Service->parseArgXML() (deprecated since 2.00)
-Removed Helios::Worker (deprecated since 2.00)
2.23 Fri Sep 10 12:22:00 2010
-Helios::Job: fixed bug where getArgXML() returned undef if job
object was vivified from job queue
2.22 Thu May 21 11:30:00 2009
-Helios::Service: fixed a bug in getFuncidFromDb() that caused
services to fail to load properly if there was no entry for them
in FUNCMAP table.
-helios.pl: Several revisions to make it a more robust daemon. Now
honors TERM signal; 'kill <pid>' from a shell will attempt to
safely shut down workers and daemon process w/o using Panoptes
-Documentation updates
2.21 Thu May 14 17:00:00 2009
-added set/getJob() accessors to facilitate access to current
Helios::Job object from methods other than run()
2.20 Tue Apr 28 18:00:00 2009
-various tweaks for cross-platform compatibility
-documentation additions/corrections
-added Helios::LogEntry::Levels to remove dependencies on
Sys::Syslog
-helios.pl: Cleaned up messages to console after daemonize
-helios.pl + Helios::Service: added support for WORKER_MAX_TTL
config param
-Helios::Service: added JobClass() allow extensible Helios::Job
classes
-Helios::Service: added MaxRetries() and RetryInterval() to replace
TheSchwartz's max_retries() and retry_interval() (this is not an
abitrary change; it's to allow for extensions at the Helios layer
in the future)
-Helios::Service: added default run() method for class completeness
(it throws a Helios::Error::FatalNoRetry error because you forgot
to implement a run() method)
-Helios::Service: removed logging to syslogd to eliminate
Sys::Syslog dependency (see HeliosX::ExtLoggerService)
-Helios::Service: added set/getFuncid(), getFuncidFromDb() and
changed jobWaiting() to use them. This eliminates an unnecessary
database query previously done every time jobsWaiting() was called
-Helios::Service: added support for log_priority_threshold config
param
-Helios::Job: added getFailures() to access the number of times a
job has previously failed
2.00 Fri Aug 01 02:00:00 2008
-First public production release (same as 1.90_26 w/more documentation)
1.90_26 Thu Jun 26 11:30:00 2008
-Helios 2.0 RC1
-NEW Helios 2.0 API
Helios::Service
Helios::Job
Helios::MetajobBurstService
Helios::ConfigParam
Helios::JobHistory
Helios::LogEntry
Helios::TestService
-helios.pl: added PID check to prevent 2 instances of a service
running on the same server
-helios.pl: added --clear-halt option to clear Worker Admin HALTs
at the cmd line
-helios.sql: new helios_worker_registry_tb.start_time field for
uptime stats
-submitJob.pl, helios_job_submit.pl, helios_job_clean.pl use new
2.0 API
-eg/Stub/StubService.pm for example of new 2.0 API service class
-new tests to test both 1.x and 2.x API
1.19_07 Thu May 29 14:00:00 2008
-added Helios.pm (for version checking & documentation)
-added Helios::Job (for eventual refactoring)
-added Helios::Test (for system testing)
1.19_06 Wed May 28 12:00:00 2008
-added LICENSE file that was left out
-add helios_log_clean.pl utility to clean log, job history
-added eg/Stub/StubWorker.pm as a worker class stub example
1.19 Mon May 19 12:00:00 2008
-First public release