profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/evax/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

evax/gandihosting 4

Gandi hosting resources

evax/agner 2

Erlang package manager (A Giant Nebula of Erlang Repositories)

evax/erlang_xmlrpc 2

Joakim Grebenö's xmlrpc 1.13 with many patches

evax/cdist 1

cdist configuration management

evax/FixedHeader 1

Fix the header, footer, left or right columns of a table in place, to always show them when scrolling

EddyLane/elm-file.info 0

WIP on an Elm file uploader - Currently developed for Elm 0.18 but with an eye for Elm 0.19

evax/anchor 0

Non-blocking Erlang Memcached client

evax/ansible-modules-core 0

Ansible modules - these modules ship with ansible

evax/calendar 0

date-time and time zone handling in Elixir

evax/cesium 0

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

lhoguin

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

TangYunTao

issue 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.

TangYunTao

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.

danj3

comment created time in 3 hours

pull request commenterlang/otp

doc: Fix spelling errors

@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.

lagebr

comment created time in 3 hours

issue openederlang/otp

lists:search/2 documentation and implementation disagree about non-true return values of Pred function

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} | false If there is a Value in List such that Pred(Value) returns true, returns {value, Value} for the first such Value, otherwise returns false.

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 either true or false
  • or fix the implementation (and the -spec) to allow for any non-true value to be interpreted as currently false is

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...

bjorng

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
bjorng

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?

bjorng

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...

bjorng

comment created time in 6 hours

push eventerlang/otp

Micael Karlberg

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

view details

Micael Karlberg

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

view details

Micael Karlberg

commit sha 0aeeaeb95d12c0edcf50943a55e1dee3fbe16328

Merge branch 'bmk/kernel/20210614/inet_info_closed_socket/OTP-17492' into maint OTP-17492

view details

push time in 6 hours

push eventerlang/otp

Micael Karlberg

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

view details

Micael Karlberg

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

view details

Micael Karlberg

commit sha 0aeeaeb95d12c0edcf50943a55e1dee3fbe16328

Merge branch 'bmk/kernel/20210614/inet_info_closed_socket/OTP-17492' into maint OTP-17492

view details

Micael Karlberg

commit sha aab9695d49da8850f769d855a9c3b896c7690b78

Merge branch 'maint' OTP-17492

view details

push time in 6 hours

issue commenterlang/otp

intermittent segfault / abort / stuck processes when setting schedulers_online system flag starting in OTP 20

@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:

  1. schedulers_online value stops changing / processes get stuck (standard+debug)
  2. emulator aborts with assertion (debug)

Will look into enabling more extensive local testing.

zerth

comment created time in 7 hours

pull request commenterlang/otp

ssl: Use new socket:monitor/1

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.

IngelaAndin

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

ssl: Use new socket:monitor/1

@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?

IngelaAndin

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

danj3

comment created time in 10 hours

PR opened erlang/otp

Ingela/ssl/psk/gh 4978/otp 17501

Solve issue #4978

+317 -163

0 comment

10 changed files

pr 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']}

danj3

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?

danj3

comment created time in 11 hours

pull request commenterlang/otp

ssl: Use new socket:monitor/1

Why don't you use inet:monitor/1?

IngelaAndin

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.

frej

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.

frej

comment created time in 12 hours

push eventerlang/otp

Rickard Green

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

view details

Rickard Green

commit sha 65c4efcdbfb8c524a6a5f4de1af2483213067e17

Update configure scripts

view details

Rickard Green

commit sha 7be61008abc3c320eb1f371efdd600e8967e6fe8

Merge branch 'rickard/monotonic-hrtime/22/OTP-17493' into maint * rickard/monotonic-hrtime/22/OTP-17493: Update configure scripts

view details

push time in 12 hours

push eventerlang/otp

Rickard Green

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

view details

Rickard Green

commit sha 65c4efcdbfb8c524a6a5f4de1af2483213067e17

Update configure scripts

view details

Rickard Green

commit sha 7be61008abc3c320eb1f371efdd600e8967e6fe8

Merge branch 'rickard/monotonic-hrtime/22/OTP-17493' into maint * rickard/monotonic-hrtime/22/OTP-17493: Update configure scripts

view details

Rickard Green

commit sha b7eaf55ccb645ccb82b2cb691acff694b0dd9280

Merge branch 'maint' * maint: Update configure scripts

view details

push time in 12 hours

push eventerlang/otp

Rickard Green

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

view details

Rickard Green

commit sha 28b86fe3b10cc8f9c7110106d6823d69aef10c23

Update configure scripts

view details

Rickard Green

commit sha 835412656e0666d109004c640961d8a2390b46ee

Merge branch 'rickard/monotonic-hrtime/23/OTP-17493' into maint * rickard/monotonic-hrtime/23/OTP-17493: Update configure scripts

view details

push time in 12 hours

push eventerlang/otp

Rickard Green

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

view details

Rickard Green

commit sha 28b86fe3b10cc8f9c7110106d6823d69aef10c23

Update configure scripts

view details

Rickard Green

commit sha 835412656e0666d109004c640961d8a2390b46ee

Merge branch 'rickard/monotonic-hrtime/23/OTP-17493' into maint * rickard/monotonic-hrtime/23/OTP-17493: Update configure scripts

view details

Rickard Green

commit sha 84517abf70697f3ee94bfaeef8d8b5f73910f733

Merge branch 'maint' * maint: Update configure scripts

view details

push time in 12 hours

push eventerlang/otp

Rickard Green

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

view details

Rickard Green

commit sha 3d94326dcd3d1279df408498b1c1629600245c93

Update configure scripts

view details

Rickard Green

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

view details

Rickard Green

commit sha 7929a979ad7407c594126b31563d607eebaf95df

Merge branch 'maint' * maint: Update configure scripts

view details

push time in 12 hours

push eventerlang/otp

Rickard Green

commit sha c179130c691c7c61784ee0d9c3643100da4e466a

Fix monotonic hrtime configure test

view details

Rickard Green

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

view details

Rickard Green

commit sha 3d94326dcd3d1279df408498b1c1629600245c93

Update configure scripts

view details

Rickard Green

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

view details

push time in 12 hours

push eventerlang/otp

John Högberg

commit sha 03e3dae2ee58b0ec0a5096c856e8a68ac4d54f05

zlib: Fix edge case in state flushing

view details

Björn Gustavsson

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

view details

push time in 12 hours