Gandi hosting resources
Erlang package manager (A Giant Nebula of Erlang Repositories)
Joakim Grebenö's xmlrpc 1.13 with many patches
cdist configuration management
Fix the header, footer, left or right columns of a table in place, to always show them when scrolling
WIP on an Elm file uploader - Currently developed for Elm 0.18 but with an eye for Elm 0.19
Non-blocking Erlang Memcached client
Ansible modules - these modules ship with ansible
date-time and time zone handling in Elixir
WebGL virtual globe and map engine
issue commenterlang/otp
Cannot reallocate 0 bytes of memory (of type "estack")
You can send the crash dump to rickard at erlang.org
comment created time in 3 hours
issue closederlang/otp
OTP 23 beam can‘t auto gc on a CentOS 7 server
Describe the bug OTP 23 beam can‘t auto gc on a CentOS 7 server,and call 'erlang:garbage_collect' effectively frees the process's memory; and It works on mac
To Reproduce Steps to reproduce the behavior.
Expected behavior after the client establishes a connection to the server, the process takes 40K bytes and does not release it
Affected versions otp 23
Additional context gc.md
closed time in 3 hours
TangYunTaoissue commenterlang/otp
OTP 23 beam can‘t auto gc on a CentOS 7 server
This is not a bug. A process is not garbage collected unless it reach certain limits, for example it needs to allocate heap data and there is no free heap available. If a process stops executing, it does not matter how long time passes, it wont automatically garbage collect by itself unless it reaches one of these limits.
comment created time in 3 hours
issue commenterlang/otp
ssl psk ciphers options break between ssl 9.2 and 10.1
There seems to be a larger problem with option handling. After changing the options to look like this:
SslOptions = [
{ verify, verify_none },
{ psk_identity, "TESTID" },
{ versions, [ 'tlsv1.2' ] },
{ user_lookup_fun, { fun psk_lookup/3, nil } },
{ ciphers, [
#{
cipher => aes_128_cbc,
key_exchange => psk,
mac => sha,
prf => default_prf
}
]
}
],
I run the same test using a docker container based on alpine, which does not include and ca-certificates by default and the error produced was:
=WARNING REPORT==== 18-Jun-2021::19:32:38.925569 ===
Description: "Authenticity is not established by certificate path validation"
Reason: "Option {verify, verify_peer} and cacertfile/cacerts is missing"
But {verify, verify_none} is set. Using versions [ 'tlsv1.2' ] did not alter the outcome.
comment created time in 3 hours
pull request commenterlang/otp
@lagebr you need to do a rebase --onto and force push your branch, moving things backwards with github button does not work I am afraid.
comment created time in 3 hours
issue openederlang/otp
Describe the bug
The man page for lists (lib/stdlib/doc/src/lists.xml) describes the lists:search/2 function as
search(Pred, List) -> {value, Value} | falseIf there is aValueinListsuch thatPred(Value)returnstrue, returns{value, Value}for the first suchValue, otherwise returnsfalse.
This makes no mention whatsoever about what the Pred(Value) call needs to return if it does not return true, so all values which are not the atom true should be valid according to that description.
However, the implementation of lists:search/2 in lib/stdlib/src/lists.erl is more strict and insists that Pred(Value) MUST return either the atom true or the atom false, which is also reflected by its -spec specifying a boolean() return value.
-spec search(Pred, List) -> {value, Value} | false when
Pred :: fun((T) -> boolean()),
List :: [T],
Value :: T.
search(Pred, [Hd|Tail]) ->
case Pred(Hd) of
true -> {value, Hd};
false -> search(Pred, Tail)
end;
search(Pred, []) when is_function(Pred, 1) ->
false.
To Reproduce
Run this script:
#!/usr/bin/env escript
%% -*- erlang -*-
main([]) ->
lists:search(fun(X) ->
case X rem 2 of
0 -> true;
_ -> odd
end
end,
[5,1,3,2,9,14]),
ok.
[user@host ~]$ escript lists-search-pred-values
escript: exception error: no case clause matching odd
in function lists:search/2 (lists.erl, line 1412)
in call from erl_eval:do_apply/6 (erl_eval.erl, line 680)
in call from escript:eval_exprs/5 (escript.erl, line 872)
in call from erl_eval:local_func/6 (erl_eval.erl, line 567)
in call from escript:interpret/4 (escript.erl, line 788)
in call from escript:start/1 (escript.erl, line 277)
in call from init:start_em/1
in call from init:do_boot/3
[user@host ~]$
Yes, this example fun may look a bit contrived, but with a number of OTP functions such as lists:search/2 or lists:keysearch/3 returning either {value, Value} or false, there are certainly precedents for a function returning either a boolean value or something that is not a boolean value at all not being very unusual.
Expected behavior
If the documentation is correct, the escript should run without throwing an exception.
Affected versions
All OTP versions since the introduction of lists:search/2 which, according to lists.xml, was OTP 21.0. In my case, OTP 23.
Additional context
I see two ways to fix this:
- either fix the documentation to explicitly demand that
Pred(Value)needs to return eithertrueorfalse - or fix the implementation (and the
-spec) to allow for any non-truevalue to be interpreted as currentlyfalseis
There are arguments for both ways. Fixing the implementation appears to allow all non-true values appears to be the more Erlang-y way to me, though, and should change much in the code (not sure whether the -spec for Pred is a good way to express this, though):
-spec search(Pred, List) -> {value, Value} | false when
Pred :: fun((T) -> true | term()),
List :: [T],
Value :: T.
search(Pred, [Hd|Tail]) ->
case Pred(Hd) of
true -> {value, Hd};
_ -> search(Pred, Tail)
end;
search(Pred, []) when is_function(Pred, 1) ->
false.
created time in 5 hours
Pull request review commenterlang/otp
Clean up and support reuse of distribution capability bits
-define(DFLAG_EXIT_PAYLOAD, 16#400000). -define(DFLAG_FRAGMENTS, 16#00800000). -define(DFLAG_HANDSHAKE_23, 16#01000000).--define(DFLAG_RESERVED, 16#fe000000).--define(DFLAG_SPAWN, 16#100000000).--define(DFLAG_NAME_ME, 16#200000000).--define(DFLAG_V4_NC, 16#400000000).--define(DFLAG_ALIAS, 16#800000000).+-define(DFLAG_MANDATORY_25, 16#04000000).
-define(DFLAG_UNLINK_ID, 16#02000000).
-define(DFLAG_MANDATORY_25, 16#04000000).
I seem to have forgotten the DFLAG_UNLINK_ID flag here...
comment created time in 6 hours
Pull request review commenterlang/otp
Clean up and support reuse of distribution capability bits
-define(ERL_DIST_VER_LOW, ?ERL_DIST_VER_5). -define(ERL_DIST_VER_HIGH, ?ERL_DIST_VER_6). +%%%+%%% To avoid having to extend the number of distribution flags from 64+%%% to 128, an scheme for garbage collection of the flags was
%%% to 128, a scheme for garbage collection of the flags was
comment created time in 6 hours
Pull request review commenterlang/otp
Clean up and support reuse of distribution capability bits
#define DFLAG_DIST_STRICT_ORDER DFLAG_DIST_HDR_ATOM_CACHE /* All flags that should be enabled when term_to_binary/1 is used. */-#define TERM_TO_BINARY_DFLAGS (DFLAG_EXTENDED_REFERENCES \- | DFLAG_NEW_FUN_TAGS \- | DFLAG_NEW_FLOATS \- | DFLAG_EXTENDED_PIDS_PORTS \- | DFLAG_EXPORT_PTR_TAG \- | DFLAG_BIT_BINARIES \- | DFLAG_MAP_TAG \- | DFLAG_BIG_CREATION)+#define TERM_TO_BINARY_DFLAGS DFLAG_NEW_FLOATS
#define TERM_TO_BINARY_DFLAGS 0
Since DFLAG_NEW_FLOATS now are mandatory, or maybe I'm missing something?
comment created time in 6 hours
Pull request review commenterlang/otp
Clean up and support reuse of distribution capability bits
dflag2str(?DFLAG_FRAGMENTS) -> "FRAGMENTS"; dflag2str(?DFLAG_HANDSHAKE_23) -> "HANDSHAKE_23";
"HANDSHAKE_23";
dflag2str(?DFLAG_UNLINK_ID) ->
"UNLINK_ID";
I seem to have forgotten the DFLAG_UNLINK_ID flag here...
comment created time in 6 hours
push eventerlang/otp
commit sha 269a7d1961b3e61237afc4378b2046c298b2c76f
[kernel] Improve inet:info/1 The info function did not handle a closed socket well. A 'closed' socket is represented by a info map with *only* the one or two states-attributes, with the value(s) set to [closed]. Also if the function is called for a non-socket port, behave as well as possible (no status or statistics). OTP-17492 [kernel] More tweaking
commit sha c6d8967198e3e4515ed81cc3908821b92d658042
[kernel|test] Add (simple) test cases Add two simple test cases to is a very simple way verify that inet:info/1 behaves "properly". OTP-17492
commit sha 0aeeaeb95d12c0edcf50943a55e1dee3fbe16328
Merge branch 'bmk/kernel/20210614/inet_info_closed_socket/OTP-17492' into maint OTP-17492
push time in 6 hours
push eventerlang/otp
commit sha 269a7d1961b3e61237afc4378b2046c298b2c76f
[kernel] Improve inet:info/1 The info function did not handle a closed socket well. A 'closed' socket is represented by a info map with *only* the one or two states-attributes, with the value(s) set to [closed]. Also if the function is called for a non-socket port, behave as well as possible (no status or statistics). OTP-17492 [kernel] More tweaking
commit sha c6d8967198e3e4515ed81cc3908821b92d658042
[kernel|test] Add (simple) test cases Add two simple test cases to is a very simple way verify that inet:info/1 behaves "properly". OTP-17492
commit sha 0aeeaeb95d12c0edcf50943a55e1dee3fbe16328
Merge branch 'bmk/kernel/20210614/inet_info_closed_socket/OTP-17492' into maint OTP-17492
commit sha aab9695d49da8850f769d855a9c3b896c7690b78
Merge branch 'maint' OTP-17492
push time in 6 hours
issue commenterlang/otp
@rickard-green: thanks, it looks like #4980 resolves the issue!
Applying it to OTP-23.3.4.4 and OTP-24.0.2, the above repro example runs cleanly in the standard and debug emulators, and the behavior above no longer occurs. Without the patch, one of the following still occurs:
schedulers_onlinevalue stops changing / processes get stuck (standard+debug)- emulator aborts with assertion (debug)
Will look into enabling more extensive local testing.
comment created time in 7 hours
pull request commenterlang/otp
Yes, it should work for "all" kinds of sockets. The function socket:monitor/1 is official, but is intended for when you only work with 'socket' sockets.
comment created time in 10 hours
issue openederlang/otp
OTP 23 beam can‘t auto gc on a CentOS 7 server
Describe the bug OTP 23 beam can‘t auto gc On a CentOS 7 server,and call 'erlang:garbage_collect' effectively frees the process's memory; and It works on mac
To Reproduce Steps to reproduce the behavior.
Expected behavior after the client establishes a connection to the server, the process takes 40K bytes and does not release it
Affected versions otp 23
Additional context gc.md
created time in 10 hours
pull request commenterlang/otp
@bmk as I did not know it existed, that is why you should review the code! Do I understand it correctly that it will work for both new and old sockets and that I then can skip the is_port guard in the original code?
comment created time in 10 hours
issue commenterlang/otp
ssl psk ciphers options break between ssl 9.2 and 10.1
However I believe there is a bug in handling the cipher suites when supporting both TLS-1.3 and TLS-1.2 with a list of ciphers suites including ciphers from both and that contains TLS-1.2 PSK cipher suites . And I believe #4983 will fix it
comment created time in 10 hours
issue commenterlang/otp
ssl psk ciphers options break between ssl 9.2 and 10.1
The option is {versions, ['tlsv1.2']}
comment created time in 10 hours
issue commenterlang/otp
ssl psk ciphers options break between ssl 9.2 and 10.1
I used the latest version available as a docker container. I just freshly pulled to make sure and got
{ssl_app,"10.4.1"},
I also added protocol_versions
{ protocol_versions, 'tlsv1.2' }
wireshark shows:
Version: TLS 1.2 (0x0303)
No change in the Client Hello otherwise. Is there some other configuration part that's needed?
comment created time in 11 hours
pull request commenterlang/otp
Why don't you use inet:monitor/1?
comment created time in 11 hours
pull request commenterlang/otp
Improve the readability of .asm-dumps
By the way, I can test on Arm when you have added that code.
comment created time in 12 hours
Pull request review commenterlang/otp
Improve the readability of .asm-dumps
beamfile_read(const byte *data, size_t size, BeamFile *beam) { MakeIffId('C', 'I', 'n', 'f'), /* 8 */ MakeIffId('L', 'i', 'n', 'e'), /* 9 */ MakeIffId('A', 't', 'U', '8'), /* 10 */+ MakeIffId('L', 'o', 'c', 'T'), /* 11 */
Nitpick: Nowadays we intend with space, not tabs.
comment created time in 12 hours
push eventerlang/otp
commit sha 71c04d5d532206710a8ada591049adc321e4c1b4
Merge branch 'rickard/monotonic-hrtime/OTP-17493' into rickard/monotonic-hrtime/22/OTP-17493 * rickard/monotonic-hrtime/OTP-17493: Fix monotonic hrtime configure test
commit sha 65c4efcdbfb8c524a6a5f4de1af2483213067e17
Update configure scripts
commit sha 7be61008abc3c320eb1f371efdd600e8967e6fe8
Merge branch 'rickard/monotonic-hrtime/22/OTP-17493' into maint * rickard/monotonic-hrtime/22/OTP-17493: Update configure scripts
push time in 12 hours
push eventerlang/otp
commit sha 71c04d5d532206710a8ada591049adc321e4c1b4
Merge branch 'rickard/monotonic-hrtime/OTP-17493' into rickard/monotonic-hrtime/22/OTP-17493 * rickard/monotonic-hrtime/OTP-17493: Fix monotonic hrtime configure test
commit sha 65c4efcdbfb8c524a6a5f4de1af2483213067e17
Update configure scripts
commit sha 7be61008abc3c320eb1f371efdd600e8967e6fe8
Merge branch 'rickard/monotonic-hrtime/22/OTP-17493' into maint * rickard/monotonic-hrtime/22/OTP-17493: Update configure scripts
commit sha b7eaf55ccb645ccb82b2cb691acff694b0dd9280
Merge branch 'maint' * maint: Update configure scripts
push time in 12 hours
push eventerlang/otp
commit sha eb128f92f3fa0b84a97da696ecf7dfc5bb8b3756
Merge branch 'rickard/monotonic-hrtime/OTP-17493' into rickard/monotonic-hrtime/23/OTP-17493 * rickard/monotonic-hrtime/OTP-17493: Fix monotonic hrtime configure test
commit sha 28b86fe3b10cc8f9c7110106d6823d69aef10c23
Update configure scripts
commit sha 835412656e0666d109004c640961d8a2390b46ee
Merge branch 'rickard/monotonic-hrtime/23/OTP-17493' into maint * rickard/monotonic-hrtime/23/OTP-17493: Update configure scripts
push time in 12 hours
push eventerlang/otp
commit sha eb128f92f3fa0b84a97da696ecf7dfc5bb8b3756
Merge branch 'rickard/monotonic-hrtime/OTP-17493' into rickard/monotonic-hrtime/23/OTP-17493 * rickard/monotonic-hrtime/OTP-17493: Fix monotonic hrtime configure test
commit sha 28b86fe3b10cc8f9c7110106d6823d69aef10c23
Update configure scripts
commit sha 835412656e0666d109004c640961d8a2390b46ee
Merge branch 'rickard/monotonic-hrtime/23/OTP-17493' into maint * rickard/monotonic-hrtime/23/OTP-17493: Update configure scripts
commit sha 84517abf70697f3ee94bfaeef8d8b5f73910f733
Merge branch 'maint' * maint: Update configure scripts
push time in 12 hours
push eventerlang/otp
commit sha e8bff1bf55e822ea76a2b993a7cf3abeea7180ab
Merge branch 'rickard/monotonic-hrtime/OTP-17493' into rickard/monotonic-hrtime/24/OTP-17493 * rickard/monotonic-hrtime/OTP-17493: Fix monotonic hrtime configure test
commit sha 3d94326dcd3d1279df408498b1c1629600245c93
Update configure scripts
commit sha fb92bda4652aac0a58bb968fded02777674fec67
Merge branch 'rickard/monotonic-hrtime/24/OTP-17493' into maint * rickard/monotonic-hrtime/24/OTP-17493: Update configure scripts Fix monotonic hrtime configure test
commit sha 7929a979ad7407c594126b31563d607eebaf95df
Merge branch 'maint' * maint: Update configure scripts
push time in 12 hours
push eventerlang/otp
commit sha c179130c691c7c61784ee0d9c3643100da4e466a
Fix monotonic hrtime configure test
commit sha e8bff1bf55e822ea76a2b993a7cf3abeea7180ab
Merge branch 'rickard/monotonic-hrtime/OTP-17493' into rickard/monotonic-hrtime/24/OTP-17493 * rickard/monotonic-hrtime/OTP-17493: Fix monotonic hrtime configure test
commit sha 3d94326dcd3d1279df408498b1c1629600245c93
Update configure scripts
commit sha fb92bda4652aac0a58bb968fded02777674fec67
Merge branch 'rickard/monotonic-hrtime/24/OTP-17493' into maint * rickard/monotonic-hrtime/24/OTP-17493: Update configure scripts Fix monotonic hrtime configure test
push time in 12 hours
push eventerlang/otp
commit sha 03e3dae2ee58b0ec0a5096c856e8a68ac4d54f05
zlib: Fix edge case in state flushing
commit sha 3b7fd673e1a7c8830266e2cdbec7b7294e2bd175
Merge branch 'bjorn/erts/backport-zlib-fix/ERIERL-657/OTP-17470' into maint * bjorn/erts/backport-zlib-fix/ERIERL-657/OTP-17470: zlib: Fix edge case in state flushing
push time in 12 hours