Ruby LSAPI Changelog¶
Note
We do our best to update this changelog in a timely manner. However, if a version is missing, you can always find the release announcement in our LiteSpeed Edge Google Group.
Version 5.6¶
Released: January 23, 2024
- [Bug fix] Addressed compatibility issues with Ruby 3.2 and later.
Version 5.5¶
Released: June 9, 2023
- [Bug fix] Addressed compatibility issues with Ruby 3.0 and later.
Version 5.4¶
Released: January 18, 2023
- [Bug fix] Addressed compatibility issues with Ruby 3.0 and later.
Version 5.2¶
Released: February 2, 2021
- [Bug fix] Addressed stability issues with Ruby 2.0 and later caused by a regression in v5.1.
Version 5.1¶
Released: September 1, 2020
- [Tuning] Updated the log message with more information when possible, including the timestamp, UID, and PID.
- [Bug fix] Made single-worker, non-prefork mode work properly.
- [Bug fix] Corrected inaccurate child-process tracking.
Version 5.0¶
Released: May 15, 2020
- [Tuning] Improved stability with Ruby 2.0 and later.
Version 4.4¶
Released: January 19, 2018
- [Feature] Standard-error log output is now redirected to the application log directory for easier troubleshooting.
- [Improvement] Improved compatibility with different versions of the Ruby on Rails framework.
Version 4.1¶
Released: January 30, 2013
- [Major Feature] Added a native
RewindableInputimplementation to boost Rack performance. - [Feature] Added support for Rack Sendfile middleware to use the web server’s file-delivery code.
- [Improvement] Along with the LSWS 4.2.2 release, provided better support for Rack/Rails 3.0 and later applications.
Version 3.5¶
Released: May 14, 2009
- [Bug fix] Reinitialized the random-number generator when a new child process was forked.
Version 3.4¶
Released: October 27, 2008
- [Bug fix] Fixed a bug when calling the
STDERR.reopen()function.
Version 3.3¶
Released: September 10, 2008
- [Improvement] Ignored the
SIGXFSZsignal and disabled core dumps by default.
Version 3.2¶
Released: April 14, 2008
- [Bug fix] Switched to a non-blocking listener socket to avoid hanging Ruby and PHP processes.
- [Bug fix] Replaced
kill(ppid, 0)withgetppid()to test the status of the parent process.
Version 3.1¶
Released: February 26, 2008
- [Bug fix] Improved the internal process manager to avoid killing active child processes with
SIGTERM.
Version 3.0¶
Released: January 31, 2008
- [Bug fix] Fixed the code in the LSAPI library that failed to compile under Mac OS X.
- [Improvement] Added implementations of the PHP functions
getallheaders()andapache_request_headers(). Compatibility with PHP code written formod_phphas been improved.
Version 2.9¶
Released: January 3, 2008
- [Improvement] Improved error logging during application startup to avoid 503 errors.
- [Misc] Cleaned up the source code.
Version 2.8¶
Released: November 25, 2007
- [Bug fix] Fixed a bug that caused LSAPI build failures in some Mac OS X environments.
Version 2.7¶
Released: August 21, 2007
- [Feature] Added the
LSAPI_AVOID_FORKenvironment variable to minimize the dynamic starting and stopping of child processes. - [Bug fix] Fixed a bug that could cause an infinite loop while reading the request body under special circumstances.
Version 2.5¶
Released: May 18, 2007
- [Bug fix] Fixed an incompatibility with
request_uriby including the query-string portion.
Version 2.4¶
Released: April 24, 2007
- [Feature] Added the
LSAPI_EXTRA_CHILDRENenvironment variable to provide better control over how many extra child processes can be started while existing child processes are in an error state. - [Improvement] Improved the built-in Process Manager to stop child processes reliably.
Version 2.3¶
Released: March 15, 2007
- [Feature] Added the following environment variables:
LSAPI_MAX_IDLE_CHILDRENandLSAPI_MAX_PROCESS_TIME. See theREADMEfile for more details. - [Improvement] Rewrote the LSAPI integration code with improved process control and standard-error logging.
- [Improvement] Logged the standard-error stream in the web server log file instead of
stderr.log.
Version 1.13¶
Released: January 16, 2007
- [Bug fix] Fixed a bug that could cause the Ruby LSAPI application to use 99% CPU.
Version 1.12¶
Released: January 10, 2007
- [Improvement] Updated the Ruby LSAPI extension to follow the Ruby I/O library specification more closely.
- [Bug fix] Fixed a bug that could cause the LSAPI application to use 99% CPU.
Version 1.11¶
Released: October 9, 2006
- [Bug fix] Fixed an issue where custom request-header values could be truncated.
Version 1.10¶
Released: September 29, 2006
- [Bug fix] Registered
env_copyas a Ruby global variable to prevent it from being garbage-collected, which could have resulted in a 503 error.
Version 1.9¶
Released: September 25, 2006
- [Improvement] Updated request parameters to match those of WEBrick.
- [Bug fix] Fixed a build problem for Solaris 8.
Version 1.8¶
Released: September 18, 2006
- [Feature] Added the
LSAPI_PGRP_MAX_IDLEenvironment variable to tell an idle process group to terminate. LSWS 2.2.2 sets this environment variable automatically based on Max idle time.
Version 1.7¶
Released: September 11, 2006
- [Improvement] Changed the default value of
LSAPI_MAX_REQSfrom1,000to1,000,000. - [Bug fix] Fixed missing environment variables set in Rails configuration.
Version 1.6¶
Released: August 22, 2006
- [Bug fix] Worked around Ruby’s internal signal handler to ensure that unresponsive Ruby processes terminate.
Version 1.5¶
Released: August 16, 2006
- [Bug fix] Fixed a v1.4 bug where a small POST operation could fail.
Version 1.4¶
Released: August 4, 2006
- [Feature] Limited the maximum number of worker processes to twice the configured value to prevent DoS-type attacks.
- [Feature] Added the
LSAPI_MAX_REQS=nenvironment variable, wherenis the maximum number of requests a child process can serve. The default value is1,000. Once the limit is reached, the child process exits automatically. This helps address memory leaks in Rails. - [Feature] Added the
LSAPI_MAX_IDLE=nenvironment variable, wherenis the maximum idle time, in seconds, that a child process waits for a new request. Once the limit is reached, the child process exits. The default value is 60. Whenn <= 0, the child process waits indefinitely. This option helps eliminate idle child processes. - [Bug fix] Fixed an issue where a worker process did not remain persistent when a request was canceled.
Version 1.3¶
Released: June 29, 2006
- [Bug fix] Added a
SIGCHLDsignal handler to the Ruby LSAPI module to resolve a problem that could lead to zombie processes.
Version 1.2¶
Released: May 16, 2006
- [Bug fix] Fixed a 503 error when the
PHP_LSAPI_CHILDRENenvironment variable was set. The environment variable does not apply to Ruby, but the fix affected the base library.