Skip to content

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 RewindableInput implementation 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 SIGXFSZ signal 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) with getppid() 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() and apache_request_headers(). Compatibility with PHP code written for mod_php has 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_FORK environment 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_uri by including the query-string portion.

Version 2.4

Released: April 24, 2007

  • [Feature] Added the LSAPI_EXTRA_CHILDREN environment 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_CHILDREN and LSAPI_MAX_PROCESS_TIME. See the README file 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_copy as 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_IDLE environment 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_REQS from 1,000 to 1,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=n environment variable, where n is the maximum number of requests a child process can serve. The default value is 1,000. Once the limit is reached, the child process exits automatically. This helps address memory leaks in Rails.
  • [Feature] Added the LSAPI_MAX_IDLE=n environment variable, where n is 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. When n <= 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 SIGCHLD signal 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_CHILDREN environment variable was set. The environment variable does not apply to Ruby, but the fix affected the base library.