./www/ruby-puma, Modern concurrent web server for Ruby

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 5.3.2, Package name: ruby26-puma-5.3.2, Maintainer: taca

Puma: A Ruby Web Server Built For Concurrency

Puma is a simple, fast, and highly concurrent HTTP 1.1 server for Ruby web
applications. It can be used with any application that supports Rack, and is
considered the replacement for Webrick and Mongrel. It was designed to be the
go-to server for Rubinius, but also works well with JRuby and MRI. Puma is
intended for use in both development and production environments.


Required to run:
[security/openssl] [net/ruby-nio4r] [lang/ruby26-base]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: 1c4df276d6d26741dd2ab7bc962da90a41d27bfd
RMD160: 88fb92f14d68d11671cfb29acaee71dd1b2abd31
Filesize: 196.5 KB

Version history: (Expand)


CVS history: (Expand)


   2021-06-02 17:13:54 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
www/ruby-puma: update to 5.3.2

5.3.2 (2021-05-21)

Bugfixes

* Gracefully handle Rack not accepting CLI options (#2630, #2626)
* Fix sigterm misbehavior (#2629)
* Improvements to keepalive-connection shedding (#2628)

5.3.1 (2021-05-11)

Security

* Close keepalive connections after the maximum number of fast inlined
  requests (CVE-2021-29509) (#2625)

5.3.0 (2021-05-07)

Features

* Add support for Linux's abstract sockets (#2564, #2526)
* Add debug to worker timeout and startup (#2559, #2528)
* Print warning when running one-worker cluster (#2565, #2534)
* Don't close systemd activated socket on pumactl restart (#2563, #2504)

Bugfixes

* systemd - fix event firing (#2591, #2572)
* Immediately unlink temporary files (#2613)
* Improve parsing of HTTP_HOST header (#2605, #2584)
* Handle fatal error that has no backtrace (#2607, #2552)
* Fix timing out requests too early (#2606, #2574)
* Handle segfault in Ruby 2.6.6 on thread-locals (#2567, #2566)
* Server#closed_socket? - parameter may be a MiniSSL::Socket (#2596)
* Define UNPACK_TCP_STATE_FROM_TCP_INFO in the right place (#2588, #2556)
* request.rb - fix chunked assembly for ascii incompatible encodings, add
  test (#2585, #2583)

Performance

* Reset peerip only if remote_addr_header is set (#2609)
* Reduce puma_parser struct size (#2590)

Refactor

* Refactor drain on shutdown (#2600)
* Micro optimisations in wait_for_less_busy_worker feature (#2579)
* Lots of test fixes
   2021-03-07 11:12:15 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
www/ruby-puma: update to 5.2.2

5.2.2 / 2021-02-22

Bugfixes

* Add #flush and #sync methods to Puma::NullIO (#2553)
* Restore sync=true on STDOUT and STDERR streams (#
   2021-02-14 14:47:27 by Takahiro Kambe | Files touched by this commit (3) | Package updated
Log message:
www/ruby-puma: update to 5.2.1

5.2.1 (2021-02-05)

Bugfixes
* Fix TCP cork/uncork operations to work with ssl clients ([#2550])
* Require rack/common_logger explicitly if :verbose is true ([#2547])
* MiniSSL::Socket#write - use data.byteslice(wrote..-1) ([#2543])
* Set @env[CONTENT_LENGTH] value as string. ([#2549])
   2021-02-03 16:47:55 by Takahiro Kambe | Files touched by this commit (3) | Package updated
Log message:
www/ruby-puma: update to 5.2.0

5.2.0 (2021-01-27)

Features

* 10x latency improvement for MRI on ssl connections by reducing overhead
  ([#2519])
* Add option to specify the desired IO selector backend for libev
  ([#2522])
* Add ability to set OpenSSL verification flags (MRI only) ([#2490])
* Uses flush after writing messages to avoid mutating $stdout and $stderr
  using sync=true ([#2486])

Bugfixes

* MiniSSL - Update dhparam to 2048 bit for use with SSL_CTX_set_tmp_dh
  ([#2535])
* Change 'Goodbye!' message to be output after listeners are closed
  ([#2529])
* Fix ssl bind logging with 0.0.0.0 and localhost ([#2533])
* Fix compiler warnings, but skipped warnings related to ragel state
  machine generated code ([#1953])
* Fix phased restart errors related to nio4r gem when using the Puma
  control server ([#2516])
* Add #string method to Puma::NullIO ([#2520])
* Fix binding via Rack handler to IPv6 addresses ([#2521])

Refactor

* Refactor MiniSSL::Context on MRI, fix MiniSSL::Socket#write ([#2519])
* Remove Server#read_body ([#2531])
* Fail build if compiling extensions raises warnings on GH Actions,
  configurable via MAKE_WARNINGS_INTO_ERRORS ([#1953])
   2021-01-16 14:05:26 by Takahiro Kambe | Files touched by this commit (3) | Package updated
Log message:
www/ruby-puma: update to 5.1.1

5.1.1 / 2020-12-10

* Bugfixes

  - Fix over eager matching against banned header names (#2510)

5.1.0 / 2020-11-30

* Features

  - Phased restart availability is now always logged, even if it is not
    available.
  - Prints the loaded configuration if the environment variable
    PUMA_LOG_CONFIG is present (#2472)
  - Integrate with systemd's watchdog and notification features (#2438)
  - Adds max_fast_inline as a configuration option for the Server object
    (#2406)
  - You can now fork workers from worker 0 using SIGURG w/o fork_worker
    enabled #2449
  - Add option to bind to systemd activated sockets (#2362)
  - Add compile option to change the QUERY_STRING max length (#2485)

* Bugfixes

  - Fix JRuby handling in Puma::DSL#ssl_bind (#2489)
  - control_cli.rb - all normal output should be to @stdout (#2487)
  - Catch 'Error in reactor loop escaped: mode not supported for this
    object: r' (#2477)
  - Ignore Rails' reaper thread (and any thread marked forksafe) for
    warning (#2475)
  - Ignore illegal (by Rack spec) response header (#2439)
  - Close idle connections immediately on shutdown (#2460)
  - Fix some instances of phased restart errors related to the json gem
    (#2473)
  - Remove use of json gem to fix phased restart errors (#2479)
  - Fix grouping regexp of ILLEGAL_HEADER_KEY_REGEX (#2495)

5.0.4 / 2020-10-27

* Bugfixes

  - Pass preloaded application into new workers if available when using
    preload_app (#2461, #2454)

5.0.3 / 2020-10-26

* Bugfixes

  - Add Client#io_ok?, check before Reactor#register (#2432)
  - Fix hang on shutdown in refork (#2442)
  - Fix Bundler::GemNotFound errors for nio4r gem during phased restarts
    (#2427, #2018)
  - Server run thread safety fix (#2435)
  - Fire on_booted after server starts (#2431, #2212)
  - Cleanup daemonization in rc.d script (#2409)

* Refactor

  - Remove accept_nonblock.rb, add test_integration_ssl.rb (#2448)
  - Refactor status.rb - dry it up a bit (#2450)
  - Extract req/resp methods to new request.rb from server.rb (#2419)
  - Refactor Reactor and Client request buffering (#2279)
  - client.rb - remove JRuby specific 'finish' code (#2412)
  - Consolidate fast_write calls in Server, extract early_hints assembly
    (#2405)
  - Remove upstart from docs (#2408)
  - Extract worker process into separate class (#2374)
  - Consolidate option handling in Server, Server small refactors, doc
    changes (#2389)

5.0.2 / 2020-09-28

* Bugfixes
  - Reverted API changes to Server.

5.0.1 / 2020-09-28

* Bugfixes

  - Fix LoadError in CentOS 8 (#2381)
  - Better error handling during force shutdown (#2271)
  - Prevent connections from entering Reactor after shutdown begins
    (#2377)
  - Fix error backtrace debug logging && Do not log request dump if it is
    not parsed (#2376)
  - Split TCP_CORK and TCP_INFO (#2372)
  - Do not log EOFError when a client connection is closed without write
    (#2384)

* Refactor

  - Change Events#ssl_error signature from (error, peeraddr, peercert) to
    (error, ssl_socket) (#2375)
  - Consolidate option handling in Server, Server small refactors, doc
    chang (#2373)
   2020-09-19 15:04:10 by Takahiro Kambe | Files touched by this commit (3) | Package updated
Log message:
www/ruby-puma: update to 5.0.0

Update ruby-puma package to 5.0.0.

## 5.0.0

* Features
  * Allow compiling without OpenSSL and dynamically load files needed for SSL, \ 
add 'no ssl' CI (#2305)
  * EXPERIMENTAL: Add `fork_worker` option and `refork` command for reduced \ 
memory usage by forking from a worker process instead of the master process. \ 
(#2099)
  * EXPERIMENTAL: Added `wait_for_less_busy_worker` config. This may reduce \ 
latency on MRI through inserting a small delay before re-listening on the socket \ 
if worker is busy (#2079).
  * EXPERIMENTAL: Added `nakayoshi_fork` option. Reduce memory usage in \ 
preloaded cluster-mode apps by GCing before fork and compacting, where \ 
available. (#2093, #2256)
  * Added pumactl `thread-backtraces` command to print thread backtraces (#2054)
  * Added incrementing `requests_count` to `Puma.stats`. (#2106)
  * Increased maximum URI path length from 2048 to 8192 bytes (#2167, #2344)
  * `lowlevel_error_handler` is now called during a forced threadpool shutdown, \ 
and if a callable with 3 arguments is set, we now also pass the status code \ 
(#2203)
  * Faster phased restart and worker timeout (#2220)
  * Added `state_permission` to config DSL to set state file permissions (#2238)
  * Added `Puma.stats_hash`, which returns a stats in Hash instead of a JSON \ 
string (#2086, #2253)
  * `rack.multithread` and `rack.multiprocess` now dynamically resolved by \ 
`max_thread` and `workers` respectively (#2288)

* Deprecations, Removals and Breaking API Changes
  * `--control` has been removed. Use `--control-url` (#1487)
  * `worker_directory` has been removed. Use `directory`.
  * min_threads now set by environment variables PUMA_MIN_THREADS and \ 
MIN_THREADS. (#2143)
  * max_threads now set by environment variables PUMA_MAX_THREADS and \ 
MAX_THREADS. (#2143)
  * max_threads default to 5 in MRI or 16 for all other interpreters. (#2143)
  * preload by default if workers > 1 (#2143)
  * Puma::Plugin.workers_supported? has been removed. Use Puma.forkable? \ 
instead. (#2143)
  * `tcp_mode` has been removed without replacement. (#2169)
  * Daemonization has been removed without replacement. (#2170)
  * Changed #connected_port to #connected_ports (#2076)
  * Configuration: `environment` is read from `RAILS_ENV`, if `RACK_ENV` can't \ 
be found (#2022)
  * Log binding on http:// for TCP bindings to make it clickable

* Bugfixes
  * Fix JSON loading issues on phased-restarts (#2269)
  * Improve shutdown reliability (#2312, #2338)
  * Close client http connections made to an ssl server with TLSv1.3 (#2116)
  * Do not set user_config to quiet by default to allow for file config (#2074)
  * Always close SSL connection in Puma::ControlCLI (#2211)
  * Windows update extconf.rb for use with ssp and varied Ruby/MSYS2 \ 
combinations (#2069)
  * Ensure control server Unix socket is closed on shutdown (#2112)
  * Preserve `BUNDLE_GEMFILE` env var when using `prune_bundler` (#1893)
  * Send 408 request timeout even when queue requests is disabled (#2119)
  * Rescue IO::WaitReadable instead of EAGAIN for blocking read (#2121)
  * Ensure `BUNDLE_GEMFILE` is unspecified in workers if unspecified in master \ 
when using `prune_bundler` (#2154)
  * Rescue and log exceptions in hooks defined by users (on_worker_boot, \ 
after_worker_fork etc) (#1551)
  * Read directly from the socket in #read_and_drop to avoid raising further SSL \ 
errors (#2198)
  * Set `Connection: closed` header when queue requests is disabled (#2216)
  * Pass queued requests to thread pool on server shutdown (#2122)
  * Fixed a few minor concurrency bugs in ThreadPool that may have affected \ 
non-GVL Rubies (#2220)
  * Fix `out_of_band` hook never executed if the number of worker threads is \ 
> 1 (#2177)
  * Fix ThreadPool#shutdown timeout accuracy (#2221)
  * Fix `UserFileDefaultOptions#fetch` to properly use `default` (#2233)
  * Improvements to `out_of_band` hook (#2234)
  * Prefer the rackup file specified by the CLI (#2225)
  * Fix for spawning subprocesses with fork_worker option (#2267)
  * Set `CONTENT_LENGTH` for chunked requests (#2287)
  * JRuby - Add Puma::MiniSSL::Engine#init? and #teardown methods, run all SSL \ 
tests (#2317)
  * Improve shutdown reliability (#2312)
  * Resolve issue with threadpool waiting counter decrement when thread is killed
  * Constrain rake-compiler version to 0.9.4 to fix `ClassNotFound` exception \ 
when using MiniSSL with Java8.
  * Fix recursive `prune_bundler` (#2319).
  * Ensure that TCP_CORK is usable
  * Fix corner case when request body is chunked (#2326)
  * Fix filehandle leak in MiniSSL (#2299)

* Refactor
  * Remove unused loader argument from Plugin initializer (#2095)
  * Simplify `Configuration.random_token` and remove insecure fallback (#2102)
  * Simplify `Runner#start_control` URL parsing (#2111)
  * Removed the IOBuffer extension and replaced with Ruby (#1980)
  * Update `Rack::Handler::Puma.run` to use `**options` (#2189)
  * ThreadPool concurrency refactoring (#2220)
  * JSON parse cluster worker stats instead of regex (#2124)
  * Support parallel tests in verbose progress reporting (#2223)
  * Refactor error handling in server accept loop (#2239)
   2020-09-14 17:37:58 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
www/ruby-puma: update to 4.3.6

Update ruby-puma to 4.3.6.

## 4.3.6 / 2020-09-05

* Bugfixes

  * Explicitly include ctype.h to fix compilation warning and build error on
    macOS with Xcode 12 (#2304)
  * Don't require json at boot (#2269)
   2020-05-24 15:47:49 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
www/ruby-puma: update to 4.3.5

Update ruby-puma to 4.3.5.

4.3.4/4.3.5 and 3.12.5/3.12.6 / 2020-05-22

Each patchlevel release contains a separate security fix. We recommend
simply upgrading to 4.3.5/3.12.6.

* Security

  Fix: Fixed two separate HTTP smuggling vulnerabilities that used the
  Transfer-Encoding header. CVE-2020-11076 and CVE-2020-11077.