make SCTP in images work older Linux kernels#477
Open
RoadRunnr wants to merge 1 commit intoerlang:masterfrom
Open
make SCTP in images work older Linux kernels#477RoadRunnr wants to merge 1 commit intoerlang:masterfrom
RoadRunnr wants to merge 1 commit intoerlang:masterfrom
Conversation
Linux SCTP ioctls argument length checking is not forward compatible with newer kernel headers. The length of the SCTP ioctl argument is based on the size of some SCTP structs. If code compiled with newer kernel headers, where the SCTP structs are larger, is running on an older kernel and tries to pass the a SCTP struct that is larger than what the running kernel supports, then the ioctl results in an error. Erlangs SCTP code does excatly that. That means that SCTP in a Erlang VM that has been compiled with recent kernel headers will not work on older kernels. This change pulls in Linux 5.4.5 kernel headers (and only the kernel headers) from Alpine 3.12. The resulting images will have working SCTP support when running on Linux 5.4.5 and newer.
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.
Linux SCTP ioctl argument length checking is not forward compatible with newer kernel headers.
The length of the SCTP ioctl argument is based on the size of some SCTP structs. If code compiled with newer kernel headers, where the SCTP structs are larger, is running on an older kernel and tries to pass an SCTP struct that is larger than what the running kernel supports, then the ioctl results in an error.
Erlang's SCTP code does exactly that. This means that SCTP in an Erlang VM that has been compiled with recent kernel headers will not work on older kernels.
This change pulls in Linux 5.4.5 kernel headers (and only the kernel headers) from Alpine 3.12. The resulting images will have working SCTP support when running on Linux 5.4.5 and newer.
Replacement for the outdated #336, fixes #332