forked from erlang/otp
-
Notifications
You must be signed in to change notification settings - Fork 1
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 #87
Merged
Merged
Conversation
This file contains 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
introducing lf(), lt(), lr() to list local functions, types and records respectively. introducing fl(), ff(), tf() to remove locally defined types and functions. introducing save_module(FilePath) that saves local defined functions and types to given filename. updating fd to store the original function definition. updating rd, rf to accurately add and remove locally defined records to local table.
If the URL has an anchor part at the end (# with line number), color that line to make it easier to find on the screen.
…frag-unaliased-leak/25/OTP-18885 * rickard/frag-unaliased-leak/24/OTP-18885: [erts] Fix memory leak of fragmented message to unaliased process
…frag-unaliased-leak/OTP-18885 * rickard/frag-unaliased-leak/25/OTP-18885: [erts] Fix memory leak of fragmented message to unaliased process
…frag-unaliased-leak/25/OTP-18885 * rickard/frag-unaliased-leak/24/OTP-18885: [erts] Fix crash on reception of fragmentated message to unaliased process
…frag-unaliased-leak/OTP-18885 * rickard/frag-unaliased-leak/25/OTP-18885: [erts] Fix crash on reception of fragmentated message to unaliased process
These macros should ignore the extra bits in the signal tag. This since as of the changes introduced in this branch, those are not always zero anymore (non-zero means that a trace token is attached to the signal). This bug has never been released, so it needs no ticket of its own.
We can do this because we know that the list will contains valid unicode code points so there is no need to validate it again. This speeds up reading standard_io a lot. Solves #7924
for macros enif_select_read enif_select_write enif_select_error
beam/erl_nif.c:1476:8: warning: conflicting types for 'enif_binary_to_term' due to enum/integer mismatch; have 'size_t(ErlNifEnv *, const unsigned char *, size_t, ERL_NIF_TERM *, ErlNifBinaryToTerm)' {aka 'long unsigned int(struct enif_environment_t *, const unsigned char *, long unsigned int, long unsigned int *, ErlNifBinaryToTerm)'} [-Wenum-int-mismatch] 1476 | size_t enif_binary_to_term(ErlNifEnv *dst_env, | ^~~~~~~~~~~~~~~~~~~ In file included from beam/erl_nif.c:44: beam/erl_nif_api_funcs.h:174:31: note: previous declaration of 'enif_binary_to_term' with type 'size_t(ErlNifEnv *, const unsigned char *, size_t, ERL_NIF_TERM *, unsigned int)' {aka 'long unsigned int(struct enif_environment_t *, const unsigned char *, long unsigned int, long unsigned int *, unsigned int)'} 174 | ERL_NIF_API_FUNC_DECL(size_t, enif_binary_to_term, (ErlNifEnv *env, const unsigned char* data, size_t sz, ERL_NIF_TERM *term, unsigned int opts)); | ^~~~~~~~~~~~~~~~~~~ beam/erl_nif.h:369:71: note: in definition of macro 'ERL_NIF_API_FUNC_DECL' 369 | # define ERL_NIF_API_FUNC_DECL(RET_TYPE, NAME, ARGS) extern RET_TYPE NAME ARGS | ^~~~ 0 is a valid parameter but is not in the enum, so the extern declaration is the correct one. Changed the function definition, documentation, and a test case to match.
During high load, we observe lock contention on this ETS table: ``` > lcnt:inspect(db_tab, [{print, [id, colls, ratio, duration]}]). id #collisions collisions [%] duration [%] --- ------------ --------------- ------------- ssl_otp_cacertificate_db 7827 12.5136 616.1264 ssl_otp_ca_file_ref 30 0.2561 0.0026 ``` ets:select is more efficient than using ets:foldl and in practice reduces the contention that we see here. Separately I plan to also issue another PR to add read_concurrency to the ETS table which has also helped reduce the incidence of this.
We see lock contention on this table under high load, e.g. ``` > lcnt:inspect(db_tab, [{print, [id, colls, ratio, duration]}]). id #collisions collisions [%] duration [%] --- ------------ --------------- ------------- ssl_otp_cacertificate_db 7827 12.5136 616.1264 ssl_otp_ca_file_ref 30 0.2561 0.0026 ``` Use read_concurrency as this is a read-heavy table and this has helped reduce the lock contention seen here.
* upstream/pr/7921: Add read_concurrency to ssl_otp_cacertificate_db
* maint: Add read_concurrency to ssl_otp_cacertificate_db Optimize pkix_db cert selection
This option requires traversing the loadpaths several times and doing multiple filesystem lookups during boot.
* jv-code-path-strict-updated: Update preloaded modules Default -code_path_choice to strict OTP-18894
* rickard/mon-msgq-len/OTP-18709: [erts] Fix alias signal type check macros
…ak/OTP-18885 Fix memory leak and crash due to fragmented message to unaliased process
* maint: [erts] Fix crash on reception of fragmentated message to unaliased process [erts] Fix memory leak of fragmented message to unaliased process
* maint: Update license information for OTP 25 Fixes of license and copyright information
* john/merge-strict-KEX: ssh: KEX strict
* maint: ssh: KEX strict
* maint-26: Updated OTP version Prepare release Update copyright year
* maint: Updated OTP version Prepare release Update copyright year
* maint-25: Updated OTP version Prepare release Update copyright year
* maint: Updated OTP version Prepare release Update copyright year
* maint-24: Updated OTP version Prepare release Update copyright year
* maint: Updated OTP version Prepare release Update copyright year
* john/kernel/merge-jv-ensure-loaded-to-master: Avoid mixed usage of ebin directories on build Fix regressions in ensure_loaded
Fix regressions in code:ensure_loaded/1
* maint:
OTP-18907
…c/OTP-18908 stdlib: Preserve cwd when compiling using c:c/1
…unctions-to-chunks Add hidden functions to chunks
Eliminate memory leak in the native coverage feature
* bjorn/cuddle-with-tests: Reduce memory consumption for test of list_to_integer/1
* maint: Reduce memory consumption for test of list_to_integer/1
…ne/OTP-18910 kernel: Short-circuit when casting from list to list
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.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )