Repository navigation
Conversation
The echo protocol closes connections after 60s without data.
Building the relup can take longer than that on slower
runners, which made the test fail with {error,closed}.
Member
|
Merged, thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
upgrade_SUITE:do_upgrade_ranch_one_connfails intermittently on macOS with{badmatch,{error,closed}}at line 215, the firstrecvafter the upgrade. Seen in scheduled runs on 2026-09-07, 09-14, 09-21 and 10-05 (OTP 27, 28, 29 and master on macos-14), for example the OTP-29.1.1 macOS job of run 37262937056.The cause is the example's
echo_protocol: it callsrecvwith a 60s timeout and closes the connection when that expires. The test opened S1 and then built the relup while S1 sat idle. In the failing job, S1 was used at 04:22:38 and next used at 04:23:49, which is 71s later, so the server had already closed it. The passing OTP-28.5.0.7 macOS job in the same run had a 59.5s gap.This change builds the relup before S1 is opened. The release that is running still uses the previous Ranch version, so S1 is still opened before the upgrade, and the test still checks that it survives the upgrade and the downgrade. Now only the upgrade itself runs between S1's checks, which takes about 2s.
The
masterOTP failures at line 207 (econnrefused) are not addressed here. In those jobs the rebar3 bootstrap fails to compile on OTP master becauseerlang:exit/2is deprecated, so the release never starts.Verified locally:
make ct-upgradepasses (OTP 27.3.4.1).