Changelog¶
This is the hand-created ChangeLog used prior to v1.1.3. Please refer to git log for changes after that.
1.1.12 Sun Feb 9 04:27:38 PST 2014 * GEARMAN_SERVERS environmental variable for libgearman to pick up servers to communicate with. This means that any driver now linked with libgearman will be able to handle multiple servers. * Add INFO level messages for queue creation.
1.1.11 Thu Oct 3 04:38:47 EDT 2013 * Workers which return a bad gearman_return_t will be counted as an error by the server and not a final (i.e. they will be retried). * Fixed possible bug where the server would over count the number of NOOP sent if NOOP messages did not get sent.
1.1.10 Mon Sep 16 04:20:13 CDT 2013 * Added gearman_job_use_client() * Improve compile time. * Fix for NOOP failure (bad worker causes early exit of loop). * Fix for postgres (use INFORMATION_SCHEMA). * Added gearman_client_has_active_tasks() so that you can see if a client has active tasks that it is working on.
1.1.9 Fri Aug 2 02:39:25 EDT 2013 * Added gearman_task_is_finished() * Improved SSL support. * Exceptions are now supported. * gearmand accepts its root CA via the environmental variable GEARMAND_PORT. * libgearman will now accept GEARMAND_CA_CERTIFICATE, GEARMAN_CLIENT_PEM, and GEARMAN_CLIENT_KEY.
1.1.8 Thu Jun 6 18:47:01 EDT 2013 * Postgres test case now passes. * SSL support added. * OSX fixes.
1.1.7 Mon May 6 06:46:20 EDT 2013 * Cleanup of error codes returned by gearmand. * gearmand will now set its port from the env variable GEARMAND_PORT. * Fix issue where identifier might not be set correctly on reconnect.
1.1.6 Tue Apr 16 03:29:57 EDT 2013 * Merge of 1.0.4 tree * Added support for gearadmin to "cancel" a job. * Keep-alive support for gearmand has been extended (more options to control behavior). * Fixed issues related to clients who didn't really support exceptions being passed exceptions.
1.1.5 Mon Feb 4 00:59:19 EST 2013 * Rollup of bug fixes for 1.0.3 * --threads=0 for gearmand will now result in gearmand using all available cores.
1.1.4 Mon Dec 17 21:24:16 EST 2012 * Add GEARMAN_CLIENT_GENERATE_UNIQUE, with default set to not generate. * Experimental addition to queue service which will allow a queue to be stored on shutdown (--libsqlite3-store-on-shutdown). * Rollup of all changes in 1.0.2
1.1.3 Wed Nov 7 22:48:21 EST 2012 * Merge with 1.0.1
1.1.2 Fri Oct 12 05:34:29 EDT 2012 * Merge with 0.41
1.1.1 Wed Sep 19 22:04:56 EDT 2012 * Merge with 0.39
1.1.0 Wed Sep 5 08:33:37 PDT 2012 * Fix for ABI compatibility issues.
1.0.6 Mon May 6 02:48:30 EDT 2013 * strlen() of zero on name passed for instance did not result in a connection to localhost (which the php driver thought would happen). * Fix regression in log not updating time on all platforms. * Fix issue where pecl php wasn't passing a null string to get default host.
1.0.5 Mon Apr 15 06:36:05 EDT 2013 * Fix for log_fn
1.0.4 Never Released * Added --coredump flag to gearmand * Removed result type enum, since the structure is never exposed to the user this was of limited use. * Assorted bug fixes.
1.0.3 Sun Feb 3 21:05:52 EST 2013 * Allow for a longer set of retries if port is in use when the server starts up. * Added checking for valgrind sgcheck * Fedora 18 fixes.
1.0.2 Mon Dec 17 07:24:42 EST 2012 * Add --expceptions to Gearmand to enable exceptions by default * Backtraces on some types of crashes. * Add GEARMAN_CLIENT_GENERATE_UNIQUE. * If the unique value passed to any client function is "#" then the unique value will be derived by hashing the workload that is being supplied to the function. * Optimize status requests so that they exit as soon as request is received. * Fix test case results for FreeBSD.
1.0.1 Tue Nov 6 01:07:07 EST 2012 * Stable branch labeled as 1.0 * Update all build related files. * Add a few additional platforms to the supported list.
0.41 Fri Oct 12 05:34:29 EDT 2012 * Switched from --having-debug to --enable-debug * Fix for SQLITE, it wasn't replaying its queue on startup. * More testing done now on durable queues.
0.39 Wed Sep 19 03:36:06 EDT 2012 * Added gearman_job_error() interface. * gearman_client_errno() and gearman_worker_errno() now return EINVAL if client or worker is invalid.
0.38 Fri Sep 14 02:16:01 EDT 2012 * Updates for compiling on different platforms. * UUID portability fixes.
0.37 Sun Sep 2 22:51:08 EDT 2012 * Fix compiler issues around older compilers. Bug 1039629.
0.36 Sat Aug 18 16:57:13 EDT 2012 * Fix issue where sqlite was not correctly being shutdown. * Check for more warnings (and cleanup found from). * Fix thread safety issue for uuid_generate().
0.35 Sun Aug 5 16:03:21 EDT 2012 * Critical bug fix for rare case in which initialization of pipe for a worker fails. * Add support for MySQL specific driver to specify port. * Fix library issue with OSX Mountain Lion.
0.34 Tue Jul 10 21:19:10 EDT 2012 * Alpha support for direct MySQL queue. * XML option for testing under valgrind. * gearmand now allows for a user to specify the format for the server key * First pass support for checking status via unique value.
0.33 Thu May 3 22:09:29 PDT 2012 * Add --config-file option * Additional testing for Drizzle * Fix for OSX 10.6.8 compile issue.
0.32 Wed Apr 11 02:25:38 PDT 2012 * Fix for shutdown bug.
0.31 Sat Apr 7 11:56:58 PDT 2012 * Fixes for bugs 975591, 974712, 970828, 967859, 967463, * Valgrind fix around epoch retry. * Numerous issues cleaned up around bouncing server during testing.
0.29 Tue Mar 13 22:58:16 PDT 2012 * Additional Fixes for Postgres * Additional debug calls in server via tuneable logging. * Documentation update. * Fixes for Ubuntu 11.10
0.28 Thu Jan 26 22:43:46 PST 2012 * -v has been deprecated because of parsing issues. Please use --verbose instead * --log-file=stderr will set output to stderr. * Fix for gearman.spec file for rpm build.
0.27 Mon Jan 9 20:02:16 PST 2012 * Fix for TokyoCabinet * Build updates for building on Ubuntu
0.26 Wed Nov 30 09:25:49 PST 2011 * Completed support for syslog for gearmand * Fix libdrizzle issues * Add API for killing a worker.
- 0.25 Thu Nov 3 09:18:46 PDT 2011
1.0 libgearman API extracted.
Fix for long function names.
Fix for Worker consuming CPU by hanging.
TokyoCabinet build fix.
Fix for 32bit fix.
- 0.24 Sun Jul 24 20:57:02 PDT 2011
Minor bug fixes.
Updated test framework.
make fixes for Fedora.
- 0.23 Wed Jun 29 13:26:26 PDT 2011
Defined workers can now return GEARMAN_SHUTDOWN.
Benchmark worker can now be told to shutdown.
Allocator code has been cleaned up (gearman_allocator_t).
Added "workers" option to gearadmin
Workers will now default to -1 as timeout (lowers CPU on gearmand server for non-active workers).
SO_KEEPALIVE is now enabled on client/worker connections.
By default, workers now grab the unique value of the job.
- 0.22 Sun Jun 19 20:32:18 PDT 2011
Added gearman_work_map() for gearman_work_t describer.
gearman_execute_by_partition() added.
gearamn_task_attr_t added.
Additional documentation update.
Issue with PHP client using automated task free (Thanks Taneli Leppä!!)
Fixed issue where PHP client's custom allocator was free'ing memory that did not belong to it.
- 0.21 Wed Jun 15 21:01:04 PDT 2011
Support for "drop function" in admin client
Fixed issue where server would not report on a bad unique value due to size
Forces do operations to complete no matter how the worker is designed.
Tasks inherit actions from client, and use them throughout execution.
Support for namespaces.
gearman_worker_define_function() has been added. It allows jobs to map out work to other workers and then aggregate the results.
gearman_client_run_tasks() will now reset the IO state for all connections on exit if all hosts have been marked down. The next call will check all hosts.
Lots of bug fixes.
- 0.20 Fri Apr 8 09:25:15 PDT 2011
gearman_client_execute() interface added
New types of gearman_unique_t, gearman_function_st, gearman_workload_t
Better error reporting from clients.
Server no longer hangs because of bad job list.
First bit of work on supporting epoch portion of protocol. John Ewart, john@johnewart.net
Improved error message handling in client.
Updates for manpages.
- 0.19 Fri Apr 1 09:50:22 PDT 2011
Fix bug where gearman util would create duplicate output.
Update sqlite queue so that it uses a prepared statement.
Fixes a number cases where server was not initializing default values internally correctly.
gearman_client_compare() API added. Returns true if the client connections are connects are equivalent.
- 0.18 Tue Mar 15 13:32:33 PDT 2011
Bug fix for compile when no plugins are requested.
Bug fix where during startup using Drizzle or MySQL the server could crash.
Bug fix to make sure test programs will run if NULL sized objects are sent.
- 0.17 Tue Mar 8 08:27:04 PST 2011
gearadmin added, easy access to shutdown, version, and verbose commands on the server.
Bug fixes related to CLI.
Bug fixes related to Memcached support.
Bug fixes related to Drizzle support.
Dependency on boost now required for build.
Drizzle queue module expects that a schema named "gearmand" exists.
Fix copyright headers were needed.
- 0.16 Tue Feb 22 10:55:33 PST 2011
Fixed cases where silent failure of server for queues would not cause tests to fail.
Fix for failure when setsockopt() failed on new connection.
Fixed silen exit in client library based on signals.
Error log now reports failure location in compiled code for ERROR conditions.
Fix for failover.
Fixed issue in client where it would silently die based on signal issues.
"verbose" has been added to the string protocol. It allows you to see what the verbose setting is.
- 0.15 Mon Feb 14 18:44:32 PST 2011
Numerous issues around overflow on buffers are now fixed.
Updates on gearmand daemon to share a bit more code.
Numerious fixes for gearman command line client.
IPV6 fix for server.
- 0.14 Wed Jun 30 13:04:39 PDT 2010
Leak in SQLite resolved.
updated build configs
Increased testting.
- 0.13 Sun Apr 4 14:45:08 PDT 2010
Fix for bug #518512.
Use OR REPLACE syntax for inserting items into the sqlite.
Changed default bitfield optimize setting to only be off for Solaris.
Refactoring on server.
Various bug fixes as reported on mailing list, such as a bad return code and treating EHOSTDOWN as lost connection for FreeBSD.
Fixed bug #543402 so jobs taking more than max job retries will be removed from persistentn queue as well.
Check to make sure worker job results match assigned worker.
- 0.12 Thu Feb 18 11:28:49 PST 2010
Fixed bug where memory loss occurred if data was too large.
Added gearman_strerror().
Fixed bug where setting an option off in mass would not trip any triggers on the option (for both worker and client).
Options that are internal can no longer be set by external callers.
Deprecated gearman_client_set_event_watch_fn() and gearman_worker_set_event_watch_fn.
gearman_job_handle() and gearman_job_function_name() now return const char* pointers
gearman_worker_unregister now returns GEARMAN_NO_REGISTERED_FUNCTION if the function does not exist (or is being removed)
Added gearman_worker_function_exist()
Trying to send too large of a piece of data will result in GEARMAN_ARGUMENT_TOO_LARGE.
Added support for gearmand command client to daemonize and create a pid file.
Fixed job handle comparison bug with WORK_FAIL responses.
Fixed disable assert configure option.
Build system updates.
- 0.11 - 2009-11-30
Added max wakeup-worker option to gearmand. Default is still to wakeup all.
API and documentation cleanup.
Fixed bug where task context free function was getting called for do() functions. This was PECL/Gearman bug #16899 as well.
Fixed bug #458912, not flushing with multiple gearmands in client.
Fixed PECL/Gearman bug #16847, was actually in C library and not in PHP.
Fixed C++ build/test/ issue, updated pandora build system.
Removed packet varargs function.
- 0.10 - 2009-09-28
Added timeout option.
Separated libgearman client/worker library from the server/gearmand code.
Added server option for max job retry.
Changed queue_libdrizzle to overwrite the password string to hide in ps.
Worker unregister bug fixed. Bug #372074
Added memory ownership functions so applications can pass control with tasks, jobs, and packets.
Changed gearmand to remap stdio to /dev/null for detaching. Bug #407242
Fixed bug that now allows workers to run concurrent jobs.
Changed behavior of sending NOOPs to one per PRESLEEP, rather than only having one in the outgoing queue at any time.
API cleanup to make the code more consistent and object-oriented.
Added more documentation for base classes, client, and worker.
Build system updates.
- 0.9 - 2009-07-20
Added libsqlite3 persistent queue support (Cory Bennett).
Added libpq (PostgreSQL) persistent queue support.
Updated autoconf build system.
Doxygen documentation cleanup.
Bug fix in HTTP protocol module.
- 0.8 - 2009-06-30
Added pluggable protocol support.
Added basic HTTP protocol support.
Updated autoconf build system.
Renamed modconf to gearman_conf.
Improved logging messages for gearmand.
Removed all struct memsets and packed structs for better memory usage.
Fixed client connect bug with multiple job servers.
Fixed server spinning bug with long running jobs and large workloads.
- 0.7 - 2009-05-31
Added libmodconf for config option processing. Eventually this will be split into a separate library. Updated gearmand and tests to use libmodconf.
Fixed persistent queue bug where jobs were not removed after replay.
Fix for bug #379198.
Changed done() function for queue, function_name is now passed to it as well as unique.
Fixed text protocol command response to be dynamic length.
Fixed libevent usage to support libevent 1.1 (still used in CentOS and Suse).
Added gearman_*_add_servers to client/worker interfaces for taking server lists.
- 0.6 - 2009-05-19
Changed behavior so forground jobs are not run when their connected clients disconnect. This is how the Perl server behaves.
Changed to named logging macros, making it easier for module writers to use.
Added persistent queue support with a libdrizzle module. This allows queue storage for both Drizzle and MySQL.
Added Solaris service scripts (Trond Norbye).
Fixed rpm building (make rpm).
Removed AI_V4MAPPED for client/worker connect lookup, not fully supported in all operating systems (like FreeBSD, bug #373060).
Support for gearmand to bind to multiple addresses.
Protocol document updates and fixes (Eric Day, Eric Herman).
Bind to specific hostname in gearmand (Brian Moon).
Minor cleanup and fixes.
- 0.5 - 2009-04-22
Threaded Gearman job server (gearmand).
More options to gearmand.
OSX bug fixes related to poll().
Fix for bug #357881.
Man page rework.
- 0.4 - 2009-03-30
New protocol additions such as UNIQ grab and assign for workers.
Support for high priority background jobs (Brian Moon).
Support for low priority jobs.
New priority queue in server to support new protocol options.
Reworked the unique ID checking in server.
Added hooks to aid in client memory cleanup.
Added gearman command line utility to allow you to use clients and workers from the shell.
Build fixes (Monty Taylor).
Basic init script added.
Fixed getopt bugs with variable type and EOF.
- 0.3 - 2009-02-05
Fixed I/O wait bug in packet parse.
Switched to different autoconf library detection method.
Added detach option to gearmand, can now run in background.
Reworked much of the client code for better concurrency and efficiency.
Added benchmark utilities.
Added man pages.
Changed port to new IANA assigned port, 4730.
- 0.2 - 2009-01-16
Improved gearmand efficiency by tracking events and reducing syscalls.
Reworked most of the worker code, it now reconnects to the job server.
Added version/bugreport options to gearmand (Brian Moon).
Fixed bug #315652, libevent usage.
- 0.1 - 2009-01-08
First release.