Skip to content

Conversation

@depfu
Copy link
Contributor

@depfu depfu bot commented Dec 11, 2020

Here is everything you need to know about this update. Please take a good look at what changed and the test results before merging this pull request.

What changed?

✳️ puma (4.3.5 → 5.1.1) · Repo · Changelog

Release Notes

5.1.1

  • Bugfixes
    • Fix over eager matching against banned header names ([#2510])

5.1.0

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

  • Bugfixes
    • Pass preloaded application into new workers if available when using preload_app (#2461

5.0.3

A release with a bunch of bugfixes and stability improvements.

  • 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)
    • Consolidate option handling in Server, Server small refactors, doc changes (#2389)

5.0.2 (from changelog)

  • Bugfixes
    • Reverted API changes to Server.

5.0.1

This release fixed a critical error for CentOS users, and quieted some unnecessary error logging for Heroku users.

  • 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])

5.0.0

5.0.0

Spoony_Bard

  • 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)

4.3.7 (from changelog)

  • Bugfixes
    • Backport set CONTENT_LENGTH for chunked requests (Originally: #2287, backport: #2496)

4.3.6

v4.3.5...4.3.6

A quick fix for a build error on Mac OS and a JSON require fix for those using phased restart.

  • Explicitly include ctype.h to fix compilation warning and build error on macOS with Xcode 12 (#2304)
  • Don't require json at boot (#2269)

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by more commits than we can show here.

↗️ nio4r (indirect, 2.5.2 → 2.5.4) · Repo · Changelog

Release Notes

2.5.4 (from changelog)

2.5.3 (from changelog)

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by 50 commits:


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

@depfu depfu bot added the depfu label Dec 11, 2020
@depfu
Copy link
Contributor Author

depfu bot commented Jan 28, 2021

Closed in favor of #335.

@depfu depfu bot closed this Jan 28, 2021
@depfu depfu bot deleted the depfu/update/puma-5.1.1 branch January 28, 2021 22:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants