Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from erlang:master #219

Merged
merged 22 commits into from
Feb 17, 2025
Merged

[pull] master from erlang:master #219

merged 22 commits into from
Feb 17, 2025

Conversation

pull[bot]
Copy link

@pull pull bot commented Feb 17, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.1)

Can you help keep this open source service alive? 💖 Please sponsor : )

Summary by Sourcery

Prepare inets and ssl for the OTP 27.1 release. This includes fixing bugs related to SSL protocol version handling, SNI error handling, and httpd startup robustness. Additionally, update the build process for the base Docker image, remove unused scripts and workflows, and update documentation and copyright years.

Bug Fixes:

  • Fix potential issues when setting a lower protocol version than the default in the SSL server API after ssl:listen/2.
  • Improve error handling in the server name indication function of the SSL application.
  • Improve the robustness of the httpd startup procedure by handling cases where the server name cannot be read from the ETS table

Build:

  • Update the base Docker image build process to use a fixed number of jobs and enable inline caching with BuildKit.
  • Remove the MAKEFLAGS build argument from the Docker build command

CI:

  • Remove the steps for checking out the erlang/erlang.github.io repository, uploading PRs to GitHub pages, and deploying to GitHub pages from the PR comment workflow.
  • Update the URLs for CT logs and HTML documentation artifacts in the PR comment to point to erlang.org instead of erlang.github.io.
  • Update various GitHub actions to their latest versions

Documentation:

  • Document the fixes for setting protocol versions in SSL, improving SNI error handling, and improving httpd startup robustness in the release notes for inets 9.3.2 and ssl 11.2.8

Chores:

  • Update copyright years to 2025 in httpd_instance_sup.erl, httpd_request_handler.erl and inets.app.src.
  • Remove the sync-github-prs.es script and the associated GitHub workflow.
  • Bump the version of inets to 9.3.2 and ssl to 11.2.8

u3s and others added 22 commits February 13, 2025 15:32
- when starting httpd, starting httpd_manager first
- default to net_adm:localhost() in httpd_request_handler:init
- avoid calling net_adm for expected execution flows
If two or more processes calls halt it seems the yielded
dummy call halt(undefined,undefined) can actually happen.

Suspend the calling process to make sure it does get scheduled again.
into sverker/27/erts/halt-race-fix/OTP-19490
For some reason the prebuilt images never were cached, by changing
to inline cache it works again.
…190' into maint

* kuba/inets/start_httpd_manager_first/OTP-19486/ERIERL-1190:
  inets: fix httpd startup sequence + net_adm default
* ingela/ssl/sni-fun-error-handling/OTP-19467:
  ssl: Improve error handling of sni_fun
…t-27

* ingela/ssl/maint-27/socket-inherit/OTP-19457:
  ssl: Handle defaults on version change
…190' into maint-27

* kuba/inets/start_httpd_manager_first/OTP-19486/ERIERL-1190:
  inets: fix httpd startup sequence + net_adm default
Github has a limitation of 10GB of data that you can have in
a github pages instance, and we constantly hit that limit for
our PRs. So the PR viewing service has not been migrated to
erlang.org. This commit redirects the links and removes the
infrastructure to upload PR results.
…o-erlang.org

gh: Migrate PR test logs and docs to erlang.org
* lukas/gh/migrate-pr-results-to-erlang.org:
  gh: Fix link to new test results
* lukas/gh/debug-docker-build-cache:
  gh: Update docker builds to use inline cache
* maint-27:
  Updated OTP version
  Prepare release
  Update copyright year
* maint:
  Updated OTP version
  Prepare release
  Update copyright year
@pull pull bot added the ⤵️ pull label Feb 17, 2025
@pull pull bot merged commit 34f92c2 into garazdawi:master Feb 17, 2025
Copy link

sourcery-ai bot commented Feb 17, 2025

Reviewer's Guide by Sourcery

This pull request includes changes to the Github Actions workflow, the inets and ssl applications, and the base image build script. The Github Actions workflow was updated to remove the step that publishes the PR to Github Pages. The inets application was updated to improve the robustness of the httpd startup procedure. The ssl application was updated to fix a bug where setting the protocol version to a lower value than supported by default could result in wrong default values being used. The base image build script was updated to use BuildKit for caching.

Sequence diagram for httpd startup with server name lookup

sequenceDiagram
    participant httpd_request_handler
    participant ConfigDB
    participant net_adm

    httpd_request_handler->>ConfigDB: lookup(server_name)
    alt server_name found in ConfigDB
        ConfigDB-->>httpd_request_handler: EtsValue
        httpd_request_handler->>httpd_request_handler: ServerName = EtsValue
    else server_name not found in ConfigDB
        ConfigDB-->>httpd_request_handler: undefined
        httpd_request_handler->>net_adm: localhost()
        net_adm-->>httpd_request_handler: Hostname
        httpd_request_handler->>httpd_request_handler: ServerName = Hostname
    end
    httpd_request_handler->>httpd_request_handler: ServerNameBin = iolist_to_binary(ServerName)
    httpd_request_handler->>httpd_request_handler: set_label({Protocol, ServerNameBin})
Loading

File-Level Changes

Change Details Files
Updated the Github Actions workflow to remove the step that publishes the PR to Github Pages.
  • Removed the checkout step for the erlang/erlang.github.io repository.
  • Removed the job that uploads the PR to Github Pages.
  • Updated the links for CT logs and HTML documentation to point to erlang.org instead of erlang.github.io.
.github/workflows/pr-comment.yaml
.github/scripts/pr-comment.js
Improved the robustness of the httpd startup procedure in inets.
  • Added a workaround to handle cases where server_name cannot be read from the ETS table.
  • Reordered the children in the supervisor to start the manager before the acceptor.
lib/inets/src/http_server/httpd_request_handler.erl
lib/inets/src/http_server/httpd_instance_sup.erl
lib/inets/doc/notes.md
Fixed a bug in the ssl application where setting the protocol version to a lower value than supported by default could result in wrong default values being used.
  • Improved error handling of server name indication fun.
  • Added a note to notes.md describing the fix.
lib/ssl/doc/notes.md
Retry halt if we lost the race against another halt call.
  • Suspend the process and do a dummy trap while waiting for other halt call to terminate the beam.
erts/emulator/beam/bif.c
Updated the base image build script to use BuildKit for caching.
  • Added BuildKit cache.
  • Set DOCKER_BUILDKIT=1 to enable BuildKit.
  • Set BUILDKIT_INLINE_CACHE=1 to enable inline cache.
  • Use registry cache instead of local cache.
  • Reduced the number of jobs used when building the base image.
.github/scripts/build-base-image.sh
Updated the version numbers for inets and ssl.
  • Updated INETS_VSN to 9.3.2.
  • Updated SSL_VSN to 11.2.8.
lib/inets/vsn.mk
lib/ssl/vsn.mk
Removed unused files.
  • Removed .github/scripts/sync-github-prs.es.
  • Removed .github/workflows/sync-github-prs.yaml.
.github/scripts/sync-github-prs.es
.github/workflows/sync-github-prs.yaml
Updated otp_versions.table. otp_versions.table

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!
  • Generate a plan of action for an issue: Comment @sourcery-ai plan on
    an issue to generate a plan of action for it.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants