From bile@REDACTED Mon Mar 1 00:00:44 2010 From: bile@REDACTED (bile@REDACTED) Date: Sun, 28 Feb 2010 18:00:44 -0500 Subject: [erlang-patches] spawn to rpc, filter, etc. In-Reply-To: <6672d0161002280644m19387427ud50db6820fc036f1@mail.gmail.com> References: <20100221051303.66bb8b72@landofbile.com> <6672d0161002250002x292abe4doe202fba914f412ce@mail.gmail.com> <20100228011626.347d0a85@otis> <6672d0161002280644m19387427ud50db6820fc036f1@mail.gmail.com> Message-ID: <20100228180044.321c75c2@otis> > Thanks! Now it's much clearer. > > I have included it in 'pu' for now so that it will be easier to > review, but I think that it is unlikely that it will be approved in > its current form (because spawning from a new node to an old node no > longer works). > (Apologies if this email has made it multiple times to the list. I seem to be having some delivery issues.) I'm open to suggestions. It could be changed to not send messages to rex but net_kernel like originally, net_kernel could forward them to rex like now for compatibility but instead change the From field to the originator and allow rex to reply back. I didn't do that originally because 1) I didn't want the extra hop and 2) proxying through net_kernel allows the filter to know it's from an older node. Or revert the merging of spawn with rpc and duplicate the filter logic. I'm not really a fan of either but would prefer the former if the new -> old node spawning won't be acceptable. From alexander.uvarov@REDACTED Mon Mar 1 00:29:30 2010 From: alexander.uvarov@REDACTED (Alexander Uvarov) Date: Mon, 1 Mar 2010 04:29:30 +0500 Subject: Missing docs for crypto:md4, new crypto:des_ecb_encrypt and crypto:des_ecb_decrypt funs. Message-ID: <447552D5-F001-42DD-A45E-ECC211A04A12@gmail.com> Hi, team. * Added missing docs for md4 and friends. Let people know about it. * 2 new useful functions des_ecb_encrypt and des_ecb_decrypt. Tests and docs are included. Quote from "man des": DES_ecb_encrypt() is the basic DES encryption routine that encrypts or decrypts a single 8-byte DES_cblock in electronic code book (ECB) mode. git fetch git://github.com/wildchild/otp.git crypto View online: http://github.com/wildchild/otp/commits/crypto Crypto test suite with these changes passes on OSX 10.6. From bgustavsson@REDACTED Mon Mar 1 08:42:41 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Mon, 1 Mar 2010 08:42:41 +0100 Subject: [erlang-patches] [PATCH] Fix typo in efficiency guide section 2.7 In-Reply-To: <1267376843-368-1-git-send-email-tuncer.ayaz@gmail.com> References: <1267376843-368-1-git-send-email-tuncer.ayaz@gmail.com> Message-ID: <6672d0161002282342w23e5e4b0h4e5d9969a5ec206a@mail.gmail.com> On Sun, Feb 28, 2010 at 6:07 PM, Tuncer Ayaz wrote: > Noticed and corrected typo in efficiency guide section 2.7. Thanks, but I happened to see the same typo and have already included the same correction in the bg/efficiency-guide branch. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Mon Mar 1 14:42:35 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Mon, 1 Mar 2010 14:42:35 +0100 Subject: [erlang-patches] Missing docs for crypto:md4, new crypto:des_ecb_encrypt and crypto:des_ecb_decrypt funs. In-Reply-To: <447552D5-F001-42DD-A45E-ECC211A04A12@gmail.com> References: <447552D5-F001-42DD-A45E-ECC211A04A12@gmail.com> Message-ID: <6672d0161003010542g43dab07cxef54f24404911e4@mail.gmail.com> On Mon, Mar 1, 2010 at 12:29 AM, Alexander Uvarov wrote: > * Added missing docs for md4 and friends. Let people know about it. > * 2 new useful functions des_ecb_encrypt and des_ecb_decrypt. Tests and docs are included. Thanks! Will include in 'pu' (after minor editing of the commit messages and combining the first two commits into one). -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bile@REDACTED Mon Mar 1 16:54:20 2010 From: bile@REDACTED (bile@REDACTED) Date: Mon, 1 Mar 2010 09:54:20 -0600 Subject: [erlang-patches] spawn to rpc, filter, etc. In-Reply-To: <6672d0161003010620q1fa4c80awc08dc2ce3e0e6824@mail.gmail.com> References: <20100221051303.66bb8b72@landofbile.com> <6672d0161002250002x292abe4doe202fba914f412ce@mail.gmail.com> <20100228011626.347d0a85@otis> <6672d0161002280644m19387427ud50db6820fc036f1@mail.gmail.com> <20100228102118.033a597a@otis> <6672d0161003010620q1fa4c80awc08dc2ce3e0e6824@mail.gmail.com> Message-ID: Bj?rn Gustavsson wrote: > I consider this feature "nice to have". It does not provide enough > additional security so that you would dare to connect to untrusted > nodes, so the ability to filter messages can only be a convenience > feature, not a game changing feature. (As far as I can understand. > You have not mentioned any specific applications that would have > a need for the feature.) Currently there is nearly zero security outside of the cookie. There are cases where native connected nodes are desired without opening up the entire system. Trust is not binary. Just because I can ssh to a box doesn't mean I can execute anything on the machine. My team is currently rewriting an application in Erlang and we must have certain levels of lock down. There are always tradeoffs for security but Erlang in its current form forces tradeoffs that aren't necessary. I see several easy and minor changes to the Erlang system that would go a long way to providing a more secure environment and I'm trying to get them out there so others can take advantage of them. > > Therefore, being only a "nice to have" feature that changes > sensitive code paths, the following are the minimum requirements: > > * It should be 100% backwards compatible. I was under the understanding that different releases shouldn't necessarily be used together. It's a rather large jump in security between nodes relative to what exists and I'd think it's a reasonable tradeoff. As I mentioned in the previous email it could be made fully compatible but I don't find it a very appealing solution. > * It should not reduce the performance for applications > that don't use (and have no use for) the new feature. Within reason, agreed. In this case if the filter isn't set 'apply' is called directly. There is only wrapper function with a guard as overhead. > * It should be obviously correct and harmless. (It is > embarrassing for the Erlang/OTP team if a new killer feature > breaks something that has always worked. It is *very* > embarrassing if a not specially important features breaks > something.) Obviously. That's why pu and unit exists is it not? I'll be happy to write some additional unit tests I've just not had the time. However, there is a difference between purposeful breakage in the name of advancement and breakage due to bad code. Security in Erlang has been talked about a lot but little is done. This patch provides a certain amount of security without any major impact. I wouldn't consider it unreasonable if R14 remote spawns didn't work on R13 and prior. Just as I consider it reasonable that by catching throws now in rpc there is a possibility of breakage. > > Unless you can convince us that the feature is more > important than just "nice to have", it is unlikely that we > will approve it. I'm hoping more people comment on the feature. In my short time in the Erlang community I've seen a few individuals ask about sandboxing beam and/or networked nodes. The former would require a lot of work but the latter is straight forward if an ability to plugin to remote 'apply'ing is provided. I've CCed erlang-questions to bring a larger audience. -Antonio From tuncer.ayaz@REDACTED Mon Mar 1 18:36:22 2010 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Mon, 1 Mar 2010 18:36:22 +0100 Subject: [erlang-patches] [PATCH] Fix typo in efficiency guide section 2.7 In-Reply-To: <6672d0161002282342w23e5e4b0h4e5d9969a5ec206a@mail.gmail.com> References: <1267376843-368-1-git-send-email-tuncer.ayaz@gmail.com> <6672d0161002282342w23e5e4b0h4e5d9969a5ec206a@mail.gmail.com> Message-ID: <4ac8254d1003010936x4ec3d8baw7652c77ddc224190@mail.gmail.com> 2010/3/1 Bj?rn Gustavsson : > On Sun, Feb 28, 2010 at 6:07 PM, Tuncer Ayaz wrote: >> Noticed and corrected typo in efficiency guide section 2.7. > > Thanks, but I happened to see the same typo and have already included > the same correction in the bg/efficiency-guide branch. Cool. From ulf.wiger@REDACTED Mon Mar 1 18:44:12 2010 From: ulf.wiger@REDACTED (Ulf Wiger) Date: Mon, 01 Mar 2010 18:44:12 +0100 Subject: [erlang-patches] spawn to rpc, filter, etc. In-Reply-To: References: <20100221051303.66bb8b72@landofbile.com> <6672d0161002250002x292abe4doe202fba914f412ce@mail.gmail.com> <20100228011626.347d0a85@otis> <6672d0161002280644m19387427ud50db6820fc036f1@mail.gmail.com> <20100228102118.033a597a@otis> <6672d0161003010620q1fa4c80awc08dc2ce3e0e6824@mail.gmail.com> Message-ID: <4B8BFCEC.20108@erlang-solutions.com> bile@REDACTED wrote: > Bj?rn Gustavsson wrote: >> ... > > I see several easy and minor > changes to the Erlang system that would go a long way to providing a more > secure environment and I'm trying to get them out there so others can take > advantage of them. I'd say that the inability to filter incoming rpc calls is one of the things that push people towards implementing their own communication channels and "user-level rpc". Improving security would definitely be welcome... One problem is of course that if you're connected to a node, you can send any message on any process on that node, which is a whopping big security hole. As an example, the application controller is always pid <0.6.0> (used to be <0.5.0> for many years. If you can only figure out the node index of a remote node, you can do evil stuff like: NIndex = 6341, % (or whatever) P = c:pid(NIndex,6,0), P ! {'$gen_call', {P,ref}, {stop_application,kernel}} and render it pretty much useless. I'm all for incrementally improving the situation, but am hesitant if we don't believe that good-enough security is within reach. Moving from "obviously unsecure" to "not obviously unsecure" is not necessarily an improvement. >> Therefore, being only a "nice to have" feature that changes >> sensitive code paths, the following are the minimum requirements: >> >> * It should be 100% backwards compatible. > > I was under the understanding that different releases shouldn't > necessarily be used together. It's a rather large jump in security between > nodes relative to what exists and I'd think it's a reasonable tradeoff. As > I mentioned in the previous email it could be made fully compatible but I > don't find it a very appealing solution. I think it should be 100% bw compatible with old nodes, but old nodes should not need to offer any better security than before. The problem is that there doesn't seem to be a way to tell whether a connected node is old or new. Users who don't need the added security must still be able to rely on core functionality to be b/w compatible. > I wouldn't consider it unreasonable if R14 > remote spawns didn't work on R13 and prior. Just as I consider it > reasonable that by catching throws now in rpc there is a possibility of > breakage. I think there is a difference between these two, and do think that remote spawns cannot be seen to suddenly break. -- Ulf Wiger CTO, Erlang Solutions Ltd, formerly Erlang Training & Consulting Ltd http://www.erlang-solutions.com --------------------------------------------------- --------------------------------------------------- WE'VE CHANGED NAMES! Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD. www.erlang-solutions.com From Antonio.Musumeci@REDACTED Mon Mar 1 19:04:36 2010 From: Antonio.Musumeci@REDACTED (Musumeci, Antonio S) Date: Mon, 1 Mar 2010 13:04:36 -0500 Subject: [erlang-patches] spawn to rpc, filter, etc. In-Reply-To: <4B8BFCEC.20108@erlang-solutions.com> References: <20100221051303.66bb8b72@landofbile.com> <6672d0161002250002x292abe4doe202fba914f412ce@mail.gmail.com> <20100228011626.347d0a85@otis> <6672d0161002280644m19387427ud50db6820fc036f1@mail.gmail.com> <20100228102118.033a597a@otis> <6672d0161003010620q1fa4c80awc08dc2ce3e0e6824@mail.gmail.com> <4B8BFCEC.20108@erlang-solutions.com> Message-ID: <01489E237C2C8F45AF7898E135F48E80021EE05D00@NYWEXMBX2129.msad.ms.com> Working within the existing modules only allows us so much flexibility. The RPC protocol doesn't provide any way to provide a security context AFAICT. This patch I've proposed *at least* provides the ability to filter on MFA/From. The only thing you can do currently is to tell kernel_sup to shutdown rex but leaves open spawn and spawn is held inside net_kernel which would cause major breakage if shut down. Leaving rpc/spawn wide open without reasonable ability to tighten up security seems rather strict and unnecessary. It's not unlike the connected port exclusivity patch I'm working on. A few dozen lines of code can restrict communication with ports to only its connected process. Obviously unsecure just doesn't fly in many places and these little changes can go a long way I think in helping Erlang get adopted. RPC 2.0 can always be designed without existing constraints but providing some amount of security within the existing framework is a necessary step to that. I'll look into making it fully backward compatible. As before suggestions are welcome. -----Original Message----- From: erlang-patches@REDACTED [mailto:erlang-patches@REDACTED] On Behalf Of Ulf Wiger Sent: Monday, March 01, 2010 12:44 PM To: bile@REDACTED Cc: erlang-patches@REDACTED; erlang-questions@REDACTED Subject: Re: [erlang-patches] spawn to rpc, filter, etc. bile@REDACTED wrote: > Bj?rn Gustavsson wrote: >> ... > > I see several easy and minor > changes to the Erlang system that would go a long way to providing a > more secure environment and I'm trying to get them out there so others > can take advantage of them. I'd say that the inability to filter incoming rpc calls is one of the things that push people towards implementing their own communication channels and "user-level rpc". Improving security would definitely be welcome... One problem is of course that if you're connected to a node, you can send any message on any process on that node, which is a whopping big security hole. As an example, the application controller is always pid <0.6.0> (used to be <0.5.0> for many years. If you can only figure out the node index of a remote node, you can do evil stuff like: NIndex = 6341, % (or whatever) P = c:pid(NIndex,6,0), P ! {'$gen_call', {P,ref}, {stop_application,kernel}} and render it pretty much useless. I'm all for incrementally improving the situation, but am hesitant if we don't believe that good-enough security is within reach. Moving from "obviously unsecure" to "not obviously unsecure" is not necessarily an improvement. >> Therefore, being only a "nice to have" feature that changes sensitive >> code paths, the following are the minimum requirements: >> >> * It should be 100% backwards compatible. > > I was under the understanding that different releases shouldn't > necessarily be used together. It's a rather large jump in security > between nodes relative to what exists and I'd think it's a reasonable > tradeoff. As I mentioned in the previous email it could be made fully > compatible but I don't find it a very appealing solution. I think it should be 100% bw compatible with old nodes, but old nodes should not need to offer any better security than before. The problem is that there doesn't seem to be a way to tell whether a connected node is old or new. Users who don't need the added security must still be able to rely on core functionality to be b/w compatible. > I wouldn't consider it unreasonable if R14 remote spawns didn't work > on R13 and prior. Just as I consider it reasonable that by catching > throws now in rpc there is a possibility of breakage. I think there is a difference between these two, and do think that remote spawns cannot be seen to suddenly break. -- Ulf Wiger CTO, Erlang Solutions Ltd, formerly Erlang Training & Consulting Ltd http://www.erlang-solutions.com --------------------------------------------------- --------------------------------------------------- WE'VE CHANGED NAMES! Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD. www.erlang-solutions.com ________________________________________________________________ erlang-patches (at) erlang.org mailing list. See http://www.erlang.org/faq.html To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED -------------------------------------------------------------------------- NOTICE: If received in error, please destroy, and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. We may monitor and store emails to the extent permitted by applicable law. From andrew@REDACTED Mon Mar 1 19:16:46 2010 From: andrew@REDACTED (Andrew Thompson) Date: Mon, 1 Mar 2010 13:16:46 -0500 Subject: [erlang-patches] format_status analog for error_info In-Reply-To: <65b2728e1002272213hf4e6072n7672710f2b0aae29@mail.gmail.com> References: <20100224165358.GF1751@hijacked.us> <20100224210853.GI1751@hijacked.us> <6672d0161002242249g36bf72cemf8eb73c36b81c849@mail.gmail.com> <20100225153403.GL1751@hijacked.us> <20100225155642.GM1751@hijacked.us> <6672d0161002250816m616b5761k3fa67759df07d95f@mail.gmail.com> <20100225163155.GN1751@hijacked.us> <65b2728e1002252330p552c28nb59ef09e8cf5abe5@mail.gmail.com> <65b2728e1002272213hf4e6072n7672710f2b0aae29@mail.gmail.com> Message-ID: <20100301181646.GX1751@hijacked.us> On Sun, Feb 28, 2010 at 01:13:37AM -0500, Steve Vinoski wrote: > This patch is ready: > > git fetch git://github.com/vinoski/otp.git format_status_error_info > > Since gen_event did not previously have format_status callback support, I > made these changes in two commits: the first to add termination support to > existing format_status support in gen_fsm and gen_server along with doc and > unit tests, and the second commit to add the format_status callback support > to gen_event along with related doc and unit tests. > The patch looks good to me, except that I *think* (github makes it hard to tell) that the indenting on line 545 of gen_fsm.erl is wrong (FmtStateData = .. end should line up with the call to error_info). The documentation changes look good too. Thanks for your work on this. Andrew From vinoski@REDACTED Mon Mar 1 19:32:47 2010 From: vinoski@REDACTED (Steve Vinoski) Date: Mon, 1 Mar 2010 13:32:47 -0500 Subject: [erlang-patches] format_status analog for error_info In-Reply-To: <20100301181646.GX1751@hijacked.us> References: <20100224165358.GF1751@hijacked.us> <20100224210853.GI1751@hijacked.us> <6672d0161002242249g36bf72cemf8eb73c36b81c849@mail.gmail.com> <20100225153403.GL1751@hijacked.us> <20100225155642.GM1751@hijacked.us> <6672d0161002250816m616b5761k3fa67759df07d95f@mail.gmail.com> <20100225163155.GN1751@hijacked.us> <65b2728e1002252330p552c28nb59ef09e8cf5abe5@mail.gmail.com> <65b2728e1002272213hf4e6072n7672710f2b0aae29@mail.gmail.com> <20100301181646.GX1751@hijacked.us> Message-ID: <65b2728e1003011032m4d68f3b1t1e9ddb7396d79e2b@mail.gmail.com> On Mon, Mar 1, 2010 at 1:16 PM, Andrew Thompson wrote: > On Sun, Feb 28, 2010 at 01:13:37AM -0500, Steve Vinoski wrote: > > This patch is ready: > > > > git fetch git://github.com/vinoski/otp.git format_status_error_info > > > > Since gen_event did not previously have format_status callback support, I > > made these changes in two commits: the first to add termination support > to > > existing format_status support in gen_fsm and gen_server along with doc > and > > unit tests, and the second commit to add the format_status callback > support > > to gen_event along with related doc and unit tests. > > > > The patch looks good to me, except that I *think* (github makes it hard > to tell) that the indenting on line 545 of gen_fsm.erl is wrong > (FmtStateData = .. end should line up with the call to error_info). > Thanks for checking. Because the FmtStateData = ... is a continuation over multiple lines, the second and subsequent lines are indented a little beyond the initial line, which I think is correct. I'm using a fairly recent emacs erlang-mode without modification or specialization, so I assume it's indenting correctly. > The documentation changes look good too. Thanks for your work on this. > Sure, and thanks for proposing the idea in the first place. --steve From bile@REDACTED Tue Mar 2 04:11:22 2010 From: bile@REDACTED (bile@REDACTED) Date: Mon, 1 Mar 2010 22:11:22 -0500 Subject: [erlang-patches] spawn to rpc, filter, etc. In-Reply-To: References: <20100221051303.66bb8b72@landofbile.com> <6672d0161002250002x292abe4doe202fba914f412ce@mail.gmail.com> <20100228011626.347d0a85@otis> <6672d0161002280644m19387427ud50db6820fc036f1@mail.gmail.com> <20100228102118.033a597a@otis> <6672d0161003010620q1fa4c80awc08dc2ce3e0e6824@mail.gmail.com> Message-ID: <20100301221122.58d098ea@otis> Could I get some feedback on the possibility of getting one of these versions of the filtered rpc / spawn into the main tree before I go and rework the existing one? 1) Current version: remote spawn moved to rex. erlang:spawn sends messages to rex rather than net_kernel. Issue: Old nodes could spawn on new nodes but not new on old. 2) Keep spawn in rex. erlang:spawn sends messages to net_kernel which forwards on to rex. Issues: looses {From,Tag} unless gen:call is more or less duplicated within net_kernel:spawn or gen module gets the ability to forward messages. Extra hop. 3) Leave rex and spawn separate, place the filter logic in one of the modules and have the other communicate with it to filter. Issues: creates dependency on the module, adds extra hop for module not containing filter. 4) Leave rex and spawn separate, place filters in both independent of one another. Issues: duplicated logic, separate filters. I'm leaning toward 4. -Antonio From martti.kuparinen@REDACTED Tue Mar 2 08:32:10 2010 From: martti.kuparinen@REDACTED (Martti Kuparinen) Date: Tue, 2 Mar 2010 09:32:10 +0200 (EET) Subject: Two printf format fixes Message-ID: <20100302073210.05B538A7C1@kuparinen.org> Hi, I'm resending this as inline patch (instead of an attachment)... This patch fixes these two warnings in R13B04 on my 64-bit Ubuntu 9.10 with GCC 4.4.1 esock_utils.c:38: warning: format ???%d??? expects type ???int???, but argument 3 has type ???size_t??? esock_utils.c:50: warning: format ???%d??? expects type ???int???, but argument 3 has type ???size_t??? --- a/lib/ssl/c_src/esock_utils.c +++ b/lib/ssl/c_src/esock_utils.c @@ -35,7 +35,7 @@ void *esock_malloc(size_t size) p = malloc(size); if (!p) { - fprintf(stderr, "esock_malloc: cannot alloc %d bytes\n", size); + fprintf(stderr, "esock_malloc: cannot alloc %zu bytes\n", size); exit(EXIT_FAILURE); } return p; @@ -47,7 +47,7 @@ void *esock_realloc(void *p, size_t size) np = realloc(p, size); if (!np) { - fprintf(stderr, "esock_realloc: cannot realloc %d bytes\n", size); + fprintf(stderr, "esock_realloc: cannot realloc %zu bytes\n", size); exit(EXIT_FAILURE); } return np; From bgustavsson@REDACTED Tue Mar 2 09:12:17 2010 From: bgustavsson@REDACTED (=?ISO-8859-1?Q?Bj=F6rn_Gustavsson?=) Date: Tue, 02 Mar 2010 09:12:17 +0100 Subject: What's cooking in erlang/otp (2010-03-02) Message-ID: <4B8CC861.1080302@gmail.com> We are back with the first What's cooking after R13B04 release. The next release will be R14A. There is a new wiki page about how to write good commit messages: http://wiki.github.com/erlang/otp/writing-good-commit-messages There is also new page with some guidelines about what sort of patches that are likely to be approved: http://wiki.github.com/erlang/otp/faq-what-kind-of-patches-will-be-approved ------------------------------------------------------------ [New topics] * am/kernel-stops (kernel) (2010-02-21) 1 commit - Change restart behavior of network apps from permanent to transient (397343b) * am/net_kernel_catchall (kernel) (2010-02-20) 1 commit - Add catch all handle_call to net_kernel (77ee109) * au/crypto (crypto) (2010-03-01) 2 commits - Add missing docs for crypto:md4/1 (b869aef) - Add des_ecb_encrypt/2 and des_ecb_decrypt/2 to crypto module (544ed56) * bg/efficiency-guide (otp) (2010-02-28) 3 commits - Efficiency Guide: Recommend external funs over tuple funs (5a662ce) - Efficiency Guide: The maximum number of atoms can be configured (cedee54) - Efficiency Guide: Fix typos (a0fc666) * dgud/emacs-bugfixes (tools) (2010-02-25) 2 commits - Added erlang-skels to release target (ddcad46) - Fixed electric semi-colon and tuples inside lists. (cfde62b) * jl/windows-file-share-delete (erts) (2010-02-22) 1 commit - Windows: Open files with FILE_SHARE_DELETE to get closer to UNIX semantics (e5e5597) * jv/update-rpccall-to-use-try (kernel) (2010-02-24) 1 commit - fix rpc handling of uncaught throws (99b7776) * sv/format_status_error_info (stdlib) (2010-02-28) 2 commits - Add support for the format_status callback to gen_event (fd9abcb) - Extend format_status for gen_server/gen_fsm termination error logging (3d06952) ------------------------------------------------------------ [Stalled] * am/spawn-rpc (erts, kernel) (2010-02-28) 3 commits . Update preloaded modules (457abb4) . Add filtering of remote spawn and rpc calls (17f1f44) . Move remote spawning from net_kernel to rpc (rex) (47fe61b) This topic branch introduce an mechanism to filter spawn requests and rpc calls from other nodes, as an incremental first step to have additional security besides the cookie. (It is still possible to send messages to any process on another node, as well as overflow the atom table on the other node, so it is still not safe.) We think the Erlang distribution protocol should only be used between trusted nodes. Adding security afterwards is a very difficult task and I don't think it should be done incrementally, because "almost secure" is worse than "definitely not secure". If you need to talk with untrusted nodes, use your own protocol over a socket. I have dropped this branch from 'pu' for now because it introduces a backwards incompatibility when there are nodes of diffent versions. (We don't recommend permanently running nodes of different version, but it is necessary when upgrading a live system.) If that compability issue is fixed, the OTP Technical Board will have to decide whether the topic branch can be accepted, since it touches sensitive code paths, and is likely to decrease performance even it the new filtering features are not used. * at/odbc_osx_fix (odbc) (2009-11-30) 1 commit - Workaround broken ODBC implementation on OSX 10.5 (88c71c9) The patch in itself is good. It solves the problem on Mac OS X in the only way that seems possible. Unfortunately, our test cases fail on Linux, and fixing it seems to require a backward-incompatible change to the API of the odbc module or ugly workarounds. The reviewer (Jakob Cederlund) will email the details and suggest and/or implement a solution. Action expected from: OTP/Jakob Cederlund * bg/safer-local_to_univ (erts) (2010-02-11) 1 commit - erl_time_sup.c: test for error return from mktime() (0f62f0b) We will not include this branch in R13B04 for two reasons: o We are not 100% sure that this change is harmless on all platforms in all timezones. o We have an idea how the underlying problem can be fixed in the calendar module (only) and I plan to try it out after the release. We will keep this branch in pu as a reminder. Action expected from: Bj??rn Gustavsson * db/tv_nthtail_fix (tv) (2009-12-01) 1 commit - Fix for tv which restarts while trying to open a table (abe0759) I should have put this into the stalled state earlier. Since our long-term goal is to migrate from gs towards wx, maintaining the old gs applications has a low priority for the Erlang/OTP team. Therefore, we will accept patches that seem sound, but we are unlikely to spend much of our own time fixing bugs. The author of this topic branch has found the real reason for the problem, but uncovered additional issues. Action expected from: The topic author - to decide whether to include the topic branch (which is a workaround, but does eliminate the crash) or to wait for a better fix from himself or someone else with an interest to advance the topic. * jp/dependencies_makefile (compiler, erts) (2010-02-14) 3 commits - squash! eliminate dialyzer warning (434e2ca) - squash! fix snprintf for Windows (bf2708d) - Add dependencies Makefile generation to erlc(1) and compile(3) (7cbc437) Approved in principle by the OTP Technical Board; now awaits a closer review of the implementation. Action expected from: Bj??rn Gustavsson (the reviewer) * kr/gs-browser (gs) (2010-02-10) 1 commit - Change lib/gs/src/tool_utils.erl to select multiple browsers other than Netscape (802d159) This topic branch introduces a new call to the deprecated regexp module. Action expected from: Topic author or anyone else with an interest to advance the topic ------------------------------------------------------------ [Cooking] * bd/mnesia-activity-subscription (mnesia) (2010-02-12) 1 commit - Add mnesia activity subscription message (a564dd3) * bg/compiler-bugs (otp) (2010-02-16) 1 commit - bug: inlining a module causes an internal compiler error (f77e8aa) Reminder for a (low priority) bug to fix after the R13B04 release. * bg/temp-hipe-fixes (compiler, hipe, kernel) (2010-01-31) 4 commits - Crudely fix return type for the lists:key{search,find,member}/3 (0e3ab3e) - seq_trace_SUITE: Don't native-compile (c9fc04b) - Disable native code if on_load is used (bd4fe28) - andor_SUITE: Don't native-compile (8aadc4c) This branch contains temporary workarounds to avoid failing test cases and is never intended to graduate. * gl/jinterface-pom (jinterface, otp) (2010-02-15) 2 commits - Exclude jinterface build artifact from git (5acf5fa) - Add pom.xml for jinterface build (aa68190) * ks/cleanups (cosNotification, debugger, docbuilder, gs, kernel, orber, stdlib) (2010-02-23) 9 commits - Add right parentheses to defines ending without them (3338f8c) - debugger: Clean up as suggested by tidier (a9d454b) - docbuilder: Clean up as suggested by tidier (20d6b5e) - gs: Clean up as suggested by tidier (b3453b5) - Take out type declarations from file.hrl. (1f81c55) - stdlib: Use fun object instead of {M,F} tuple (cafe3a0) - ets: Cleanup as suggested by tidier (932ec62) - kernel: Add types and specs + cleanup (098f321) - kernel: Clean up as suggested by tidier (f71b7f2) Was formerly called ks/cleanups-after-r13b04. * mh/ssh_channel-init-no-catch (ssh) (2010-01-25) 1 commit - Remove pointless catch from ssh_channel:init/1. (bb7eaa5) * ra/include-public_key-in-ssh (ssh) (2010-01-20) 1 commit - Added public_key among ssh applications. (3a0c2c5) ------------------------------------------------------------ [Dropped] * at/terminate-can-modify-state (stdlib) (2010-02-24) 1 commit . Add ability for gen_(server|fsm):terminate to modify state sent to error_logger (aedff05) Replaced by sv/format_status_error_info. From bgustavsson@REDACTED Tue Mar 2 09:24:54 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Tue, 2 Mar 2010 09:24:54 +0100 Subject: [erlang-questions] Re: [erlang-patches] spawn to rpc, filter, etc. In-Reply-To: <20100301221122.58d098ea@otis> References: <20100221051303.66bb8b72@landofbile.com> <6672d0161002250002x292abe4doe202fba914f412ce@mail.gmail.com> <20100228011626.347d0a85@otis> <6672d0161002280644m19387427ud50db6820fc036f1@mail.gmail.com> <20100228102118.033a597a@otis> <6672d0161003010620q1fa4c80awc08dc2ce3e0e6824@mail.gmail.com> <20100301221122.58d098ea@otis> Message-ID: <6672d0161003020024m5a03a073wbee1f0449fc632fa@mail.gmail.com> On Tue, Mar 2, 2010 at 4:11 AM, wrote: > 4) Leave rex and spawn separate, place filters in both independent of > one another. Issues: duplicated logic, separate filters. I recommend alternative 4. But please note that there is no guarantee that we will approve the patch. We will have to discuss it in the OTP Technical Board. (Also see the latest What's cooking email.) -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Tue Mar 2 10:20:55 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Tue, 2 Mar 2010 10:20:55 +0100 Subject: [erlang-patches] Re: Two printf format fixes In-Reply-To: <20100302073210.05B538A7C1@kuparinen.org> References: <20100302073210.05B538A7C1@kuparinen.org> Message-ID: <6672d0161003020120m21158a9eja391bfcda382bd40@mail.gmail.com> On Tue, Mar 2, 2010 at 8:32 AM, Martti Kuparinen wrote: > I'm resending this as inline patch (instead of an attachment)... Thanks! We do accept inlined patches if they are generated using "git format-patch" (or formatted in the same way). Basically that means that the subject and body (up to a "---" delimiter) will be the commit message and From address of the email will be taken as the author. Such patches are easily committed to the git repository using "git am -3". The reason we are being particular about the format of patches is that we now are doing a serious effort to keep up with the flow of incoming patches, and either accept or reject them with a good reason (in the past, most patches with issues were simply ignored). We may eventually take care of patches that don't follows our guidelines (especially if they correct serious bugs), but you will definitely have to wait longer for a response. Over to the patch itself: > - ? ? ? fprintf(stderr, "esock_malloc: cannot alloc %d bytes\n", size); > + ? ? ? fprintf(stderr, "esock_malloc: cannot alloc %zu bytes\n", size); As far as I know, the "z" specifier is not portable. For instance, I did not find it described in Microsoft's manual page for printf(). -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From martti.kuparinen@REDACTED Tue Mar 2 11:33:21 2010 From: martti.kuparinen@REDACTED (Martti Kuparinen) Date: Tue, 02 Mar 2010 12:33:21 +0200 Subject: [erlang-patches] Re: Two printf format fixes In-Reply-To: <6672d0161003020120m21158a9eja391bfcda382bd40@mail.gmail.com> References: <20100302073210.05B538A7C1@kuparinen.org> <6672d0161003020120m21158a9eja391bfcda382bd40@mail.gmail.com> Message-ID: <4B8CE971.7090903@iki.fi> Bj?rn Gustavsson wrote: >> - fprintf(stderr, "esock_malloc: cannot alloc %d bytes\n", size); >> + fprintf(stderr, "esock_malloc: cannot alloc %zu bytes\n", size); > > As far as I know, the "z" specifier is not portable. For Could you then consider type-casting size to (unsigned long long) and use the correct format for that? Martti From mikpe@REDACTED Tue Mar 2 14:31:34 2010 From: mikpe@REDACTED (Mikael Pettersson) Date: Tue, 2 Mar 2010 14:31:34 +0100 Subject: [erlang-patches] Re: Two printf format fixes In-Reply-To: <4B8CE971.7090903@iki.fi> References: <20100302073210.05B538A7C1@kuparinen.org> <6672d0161003020120m21158a9eja391bfcda382bd40@mail.gmail.com> <4B8CE971.7090903@iki.fi> Message-ID: <19341.4918.17853.236079@pilspetsen.it.uu.se> Martti Kuparinen writes: > Bj??rn Gustavsson wrote: > > >> - fprintf(stderr, "esock_malloc: cannot alloc %d bytes\n", size); > >> + fprintf(stderr, "esock_malloc: cannot alloc %zu bytes\n", size); > > > > As far as I know, the "z" specifier is not portable. For > > Could you then consider type-casting size to (unsigned long long) and use the > correct format for that? You're underestimating the brokenness of MS' so-called C compiler and its lame libc. They support neither %z nor %ll, so replacing %z with something else just creates another porting issue. (At least they didn't last time I checked, which probably was with VS2005 or VS2008.) I've found it necessary to provide my own PRIuSZ macro and define it as "I64u" on (MS && x86_64) and as "zu" elsewhere. I don't recall what MS && i386 needed, possibly just "u" or "lu". From jan@REDACTED Wed Mar 3 00:33:44 2010 From: jan@REDACTED (Jan Lehnardt) Date: Tue, 2 Mar 2010 15:33:44 -0800 Subject: [erlang-patches] Enable FILE_SHARE_DELETE flag on Windows In-Reply-To: <6672d0161002280627k46010181la036e686028d8df0@mail.gmail.com> References: <120BD7A9-6A5C-4E1B-A3D0-9007B2A2D56B@apache.org> <6672d0161002280627k46010181la036e686028d8df0@mail.gmail.com> Message-ID: <0706740E-A75F-440A-8502-7ACF34E0258F@apache.org> Hi Bj?rn, On 28 Feb 2010, at 06:27, Bj?rn Gustavsson wrote: > I have combined and slightly shortened the first two lines in > the commit messages (to make it easier to see what the > commit is about when browsing in tools such as gitk). > If you plan to submit more patches, please have a look at: > > http://wiki.github.com/erlang/otp/writing-good-commit-messages Thanks for handling this so quickly. I'll make sure to follow the guidelines more closely next time. > How close will semantics be to Unix? For instance, > if open a file for reading, and another Windows process deletes > the file, will I be able to continue reading the file? To avoid errors on my end, I'd like to refer to the Windows CreateFile() documentation: http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx and http://msdn.microsoft.com/en-us/library/aa363874(VS.85).aspx Cheers Jan -- From kenji.rikitake@REDACTED Fri Mar 5 11:26:50 2010 From: kenji.rikitake@REDACTED (Kenji Rikitake) Date: Fri, 5 Mar 2010 19:26:50 +0900 Subject: [erlang-questions] Re: [erlang-patches] spawn to rpc, filter, etc. In-Reply-To: <4B8BFCEC.20108@erlang-solutions.com> References: <20100221051303.66bb8b72@landofbile.com> <6672d0161002250002x292abe4doe202fba914f412ce@mail.gmail.com> <20100228011626.347d0a85@otis> <6672d0161002280644m19387427ud50db6820fc036f1@mail.gmail.com> <20100228102118.033a597a@otis> <6672d0161003010620q1fa4c80awc08dc2ce3e0e6824@mail.gmail.com> <4B8BFCEC.20108@erlang-solutions.com> Message-ID: <20100305102650.GA23214@k2r.org> I only can suggest that single "security" function will not cover all the cases. I think integrating restriction into the existing open environment is the hardest part. Implementing communication/execution restriction inside the rpc module should be carefully done, because many modules and applications depend on it. Kenji Rikitake From jonas.falkevik@REDACTED Sat Mar 6 14:58:20 2010 From: jonas.falkevik@REDACTED (Jonas Falkevik) Date: Sat, 6 Mar 2010 14:58:20 +0100 Subject: Disable flow control for beam started via run_erl Message-ID: Hi, We had some problem with accidentally hitting ctrl-s (too close to ctrl-d) when detaching from the erlang shell attached with to_erl. This if not noticed and neutralized by ctrl-q could make the beam block which is not desired behaviour for a live system. This patch makes it possible to disable the feature of blocking the beam with ctrl-s. A new environment variable is introduced RUN_ERL_DISABLE_FLOWCNTRL which should be set before you run run_erl. git fetch git://github.com/falkevik/otp.gitopt_disable_of_flowctrl_for_run_erl_shell Regards, Jonas Falkevik From waelsamaha@REDACTED Sat Mar 6 23:29:33 2010 From: waelsamaha@REDACTED (Eng. Wael Samaha) Date: Sat, 6 Mar 2010 14:29:33 -0800 (PST) Subject: [erlang-patches] Disable flow control for beam started via run_erl In-Reply-To: Message-ID: <349332.56578.qm@web62204.mail.re1.yahoo.com> Hi, Is this patch will also handle the same behavior caused by pressing ctrl+c will accessing the node from the?pipe using to_erl that display?a prompt to press 'c' or 'a'?or ... As this also block all calls to the beam and make all RPC calls to that node to fail with the node down error. ? Best Regards, ?? ? --- On Sat, 3/6/10, Jonas Falkevik wrote: From: Jonas Falkevik Subject: [erlang-patches] Disable flow control for beam started via run_erl To: erlang-patches@REDACTED Date: Saturday, March 6, 2010, 3:58 PM Hi, We had some problem with accidentally hitting ctrl-s (too close to ctrl-d) when detaching from the erlang shell attached with to_erl. This if not noticed and neutralized by ctrl-q could make the beam block which is not desired behaviour for a live system. This patch makes it possible to disable the feature of blocking the beam with ctrl-s. A new environment variable is introduced RUN_ERL_DISABLE_FLOWCNTRL which should be set before you run run_erl. git fetch git://github.com/falkevik/otp.gitopt_disable_of_flowctrl_for_run_erl_shell Regards, Jonas Falkevik From bile@REDACTED Sat Mar 6 19:42:34 2010 From: bile@REDACTED (bile@REDACTED) Date: Sat, 6 Mar 2010 13:42:34 -0500 Subject: Connected process exclusivity Message-ID: <20100306134234.221547d7@otis> git fetch git://github.com/bile/otp.git port_owner_exclusivity This creates a new port option, 'restricted', that may be applied when opening ports which will not allow any process but the connected one from sending messages using Port ! Msg, erlang:send or erlang:port_*. I've added some tests to port_SUITE to make sure it works as expected. From bgustavsson@REDACTED Sun Mar 7 11:47:11 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Sun, 7 Mar 2010 11:47:11 +0100 Subject: [erlang-patches] Disable flow control for beam started via run_erl In-Reply-To: References: Message-ID: <6672d0161003070247g4a1c23ceq4e0cb903bd946f02@mail.gmail.com> On Sat, Mar 6, 2010 at 2:58 PM, Jonas Falkevik wrote: > git fetch git://github.com/falkevik/otp.gitopt_disable_of_flowctrl_for_run_erl_shell Thanks! I will include in 'pu'. In the future, please refer to: http://wiki.github.com/erlang/otp/writing-good-commit-messages I have edited the commit message to make it clearer and easier to read in gitk. Also I think you meant stdout when you wrote stdin. The revised commit message looks like this: "Teach run_erl RUN_ERL_DISABLE_FLOWCNTRL for disabling flow control Flow control can cause several problems. On Linux, if you accidentally hit Ctrl-S (instead of Ctrl-D to detach) and then some other key, the entire beam process will hang when attempting to write to stdout. On Solaris, the beam process will hang on writing if ScrollLock is on. Fix this problem by making it possible to turn off flow control by setting the environment variable RUN_ERL_DISABLE_FLOWCNTRL." Is that OK? -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Sun Mar 7 11:50:38 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Sun, 7 Mar 2010 11:50:38 +0100 Subject: [erlang-patches] Connected process exclusivity In-Reply-To: <20100306134234.221547d7@otis> References: <20100306134234.221547d7@otis> Message-ID: <6672d0161003070250m65bed3fej5d6ef78ae2bad41c@mail.gmail.com> On Sat, Mar 6, 2010 at 7:42 PM, wrote: > git fetch git://github.com/bile/otp.git port_owner_exclusivity Thanks! Will include in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From dave@REDACTED Sun Mar 7 19:15:07 2010 From: dave@REDACTED (Dave Peticolas) Date: Sun, 07 Mar 2010 10:15:07 -0800 Subject: shell line buffer behavior Message-ID: <4B93ED2B.3080107@krondo.com> Here's some work to make the Erlang shell history more like readline: git fetch git://github.com/jdavisp3/otp.git shell Specifically: 1. Blank lines are not added to the line buffer. 2. Pressing the down arrow on the last line causes no change. The previous behavior erased the line. 3. The new line is temporarily added to the line buffer so the user can move to previous lines with up arrows and then back to the new line with down arrows. The previous behavior discarded the partially written new line. 4. Changes made to previous lines while exploring the line buffer history are preserved. The previous behavior discarded changes made to older lines. Any interest in this? thanks, dave From bile@REDACTED Mon Mar 8 03:50:04 2010 From: bile@REDACTED (bile@REDACTED) Date: Sun, 7 Mar 2010 21:50:04 -0500 Subject: [erlang-patches] Re: [erlang-questions] Re: [erlang-patches] spawn to rpc, filter, etc. In-Reply-To: <6672d0161003020024m5a03a073wbee1f0449fc632fa@mail.gmail.com> References: <20100221051303.66bb8b72@landofbile.com> <6672d0161002250002x292abe4doe202fba914f412ce@mail.gmail.com> <20100228011626.347d0a85@otis> <6672d0161002280644m19387427ud50db6820fc036f1@mail.gmail.com> <20100228102118.033a597a@otis> <6672d0161003010620q1fa4c80awc08dc2ce3e0e6824@mail.gmail.com> <20100301221122.58d098ea@otis> <6672d0161003020024m5a03a073wbee1f0449fc632fa@mail.gmail.com> Message-ID: <20100307215004.6138c28f@otis> I've modified the spawn_rpc branch as described below. Added some unit tests. git fetch git://github.com/bile/otp.git spawn_rpc On Tue, 2 Mar 2010 09:24:54 +0100 Bj?rn Gustavsson wrote: > On Tue, Mar 2, 2010 at 4:11 AM, wrote: > > > 4) Leave rex and spawn separate, place filters in both independent > > of one another. Issues: duplicated logic, separate filters. > > I recommend alternative 4. But please note that there is no guarantee > that we will approve the patch. We will have to discuss it in the OTP > Technical Board. (Also see the latest What's cooking email.) > From brendan.doyle@REDACTED Mon Mar 8 15:34:29 2010 From: brendan.doyle@REDACTED (Brendan Doyle) Date: Mon, 8 Mar 2010 08:34:29 -0600 Subject: [erlang-patches] shell line buffer behavior In-Reply-To: <4B93ED2B.3080107@krondo.com> References: <4B93ED2B.3080107@krondo.com> Message-ID: <57B194F7-A0E4-4523-89BF-C7BF4680E194@epicadvertising.com> Absolutely, yes On 2010-03-07, at 1:15 PM, Dave Peticolas wrote: > Here's some work to make the Erlang shell history > more like readline: > > git fetch git://github.com/jdavisp3/otp.git shell > > Specifically: > > 1. Blank lines are not added to the line buffer. > > 2. Pressing the down arrow on the last line causes no change. > > The previous behavior erased the line. > > 3. The new line is temporarily added to the line buffer > so the user can move to previous lines with up arrows > and then back to the new line with down arrows. > > The previous behavior discarded the partially written > new line. > > 4. Changes made to previous lines while exploring the line > buffer history are preserved. > > The previous behavior discarded changes made to older lines. > > Any interest in this? > > thanks, > dave > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > Brendan Doyle Manager, Application Development Epic Advertising - New York, Toronto, San Francisco, London www.EpicAdvertising.com 60 Columbia Way, Suite 310 Markham, ON L3R 0C9 (905) 946-0300 x.2358 work (647) 885-7159 mobile (888) 666-3120 fax brendan.doyle@REDACTED From smith.winston.101@REDACTED Mon Mar 8 16:25:19 2010 From: smith.winston.101@REDACTED (Winston Smith) Date: Mon, 8 Mar 2010 10:25:19 -0500 Subject: [erlang-patches] shell line buffer behavior In-Reply-To: <4B93ED2B.3080107@krondo.com> References: <4B93ED2B.3080107@krondo.com> Message-ID: On Sun, Mar 7, 2010 at 1:15 PM, Dave Peticolas wrote: > Here's some work to make the Erlang shell history > more like readline: The killer feature here is if you can make it record the shell history between invocations (maybe in ~/.erl_history). Thanks! From norton@REDACTED Sun Mar 7 13:39:50 2010 From: norton@REDACTED (Joseph Wayne Norton) Date: Sun, 07 Mar 2010 21:39:50 +0900 Subject: patch - permit building and installing documentation without Java Message-ID: Hi. Here is a patch that adds permits building and installing documentation without Java git fetch git://github.com/norton/otp.git docs_without_java Thanks, -- norton@REDACTED From tuncer.ayaz@REDACTED Mon Mar 8 21:31:45 2010 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Mon, 8 Mar 2010 21:31:45 +0100 Subject: [erlang-patches] patch - permit building and installing documentation without Java In-Reply-To: References: Message-ID: <4ac8254d1003081231s4354d8ddlfafc824b7de98ccc@mail.gmail.com> On Sun, Mar 7, 2010 at 1:39 PM, Joseph Wayne Norton wrote: > > Hi. > > Here is a patch that adds permits building and installing > documentation without Java > > git fetch git://github.com/norton/otp.git docs_without_java This reminds me that man pages only require xsltproc to build. So having a 'docman' target or 'make docs' building manpages only if FOP is missing would be a nice change and also faster :). Does this sound useful to anyone else? From bernie@REDACTED Mon Mar 8 22:19:49 2010 From: bernie@REDACTED (Bernard Duggan) Date: Tue, 09 Mar 2010 08:19:49 +1100 Subject: [erlang-patches] shell line buffer behavior In-Reply-To: References: <4B93ED2B.3080107@krondo.com> Message-ID: <4B9569F5.4090508@m5net.com> Winston Smith wrote: > On Sun, Mar 7, 2010 at 1:15 PM, Dave Peticolas wrote: > >> Here's some work to make the Erlang shell history >> more like readline: >> > > The killer feature here is if you can make it record the shell history > between invocations (maybe in ~/.erl_history). > For anyone who hasn't found it, there's a great little utility (on Linux, at least) called 'rlwrap' which gives you the full readline feature set on any command line system (like, say, the erlang shell). I simply have 'erl' aliased to 'rlwrap -a erl'. It gives you everything provided by this patch as well as as a searchable history (just like you get in bash with Ctrl-r). (This isn't meant to suggest that the patch isn't worthwhile, just to note an alternative). Cheers, Bernard From dave@REDACTED Tue Mar 9 04:19:12 2010 From: dave@REDACTED (Dave Peticolas) Date: Mon, 08 Mar 2010 19:19:12 -0800 Subject: [erlang-patches] shell line buffer behavior In-Reply-To: References: <4B93ED2B.3080107@krondo.com> Message-ID: <4B95BE30.7070103@krondo.com> Winston Smith wrote: > On Sun, Mar 7, 2010 at 1:15 PM, Dave Peticolas wrote: >> Here's some work to make the Erlang shell history >> more like readline: > > The killer feature here is if you can make it record the shell history > between invocations (maybe in ~/.erl_history). That's what I plan on working on next, assuming there's general interest in this work, which there seems to be. > Thanks! > From dave@REDACTED Tue Mar 9 04:20:03 2010 From: dave@REDACTED (Dave Peticolas) Date: Mon, 08 Mar 2010 19:20:03 -0800 Subject: [erlang-patches] shell line buffer behavior In-Reply-To: <4B9569F5.4090508@m5net.com> References: <4B93ED2B.3080107@krondo.com> <4B9569F5.4090508@m5net.com> Message-ID: <4B95BE63.7090108@krondo.com> Bernard Duggan wrote: > Winston Smith wrote: >> On Sun, Mar 7, 2010 at 1:15 PM, Dave Peticolas wrote: >> >>> Here's some work to make the Erlang shell history >>> more like readline: >>> >> The killer feature here is if you can make it record the shell history >> between invocations (maybe in ~/.erl_history). >> > For anyone who hasn't found it, there's a great little utility (on > Linux, at least) called 'rlwrap' which gives you the full readline > feature set on any command line system (like, say, the erlang shell). I > simply have 'erl' aliased to 'rlwrap -a erl'. It gives you everything > provided by this patch as well as as a searchable history (just like you > get in bash with Ctrl-r). That's a cool utility, thanks. > (This isn't meant to suggest that the patch isn't worthwhile, just to > note an alternative). Yep, I think it might still be useful for systems you can't install extra stuff to. > Cheers, > > Bernard > From bgustavsson@REDACTED Tue Mar 9 07:31:32 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Tue, 9 Mar 2010 07:31:32 +0100 Subject: [erlang-patches] patch - permit building and installing documentation without Java In-Reply-To: References: Message-ID: <6672d0161003082231y51489a55l898b8e39751f60ea@mail.gmail.com> On Sun, Mar 7, 2010 at 1:39 PM, Joseph Wayne Norton wrote: > > Hi. > > Here is a patch that adds permits building and installing documentation > without Java > > git fetch git://github.com/norton/otp.git docs_without_java Thanks! Will include in 'pu'. As far as I understand it, there are two mistakes in the commit message (wrong case for $(JAVA) and it should not be equal to ""). I have changed it to: Permit building and installing documentation without Java Modify lib/ic/doc/src/Makefile to build and to install documentation built via javadoc only when $(JAVA) is not equal to "". Is that change OK? -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Tue Mar 9 07:42:22 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Tue, 9 Mar 2010 07:42:22 +0100 Subject: [erlang-patches] Re: [erlang-questions] Re: [erlang-patches] spawn to rpc, filter, etc. In-Reply-To: <20100307215004.6138c28f@otis> References: <20100221051303.66bb8b72@landofbile.com> <6672d0161002250002x292abe4doe202fba914f412ce@mail.gmail.com> <20100228011626.347d0a85@otis> <6672d0161002280644m19387427ud50db6820fc036f1@mail.gmail.com> <20100228102118.033a597a@otis> <6672d0161003010620q1fa4c80awc08dc2ce3e0e6824@mail.gmail.com> <20100301221122.58d098ea@otis> <6672d0161003020024m5a03a073wbee1f0449fc632fa@mail.gmail.com> <20100307215004.6138c28f@otis> Message-ID: <6672d0161003082242t4ac6ba24p7d6cb58ef4de099c@mail.gmail.com> On Mon, Mar 8, 2010 at 3:50 AM, wrote: > I've modified the spawn_rpc branch as described below. Added some unit > tests. > > git fetch git://github.com/bile/otp.git spawn_rpc I would have to resolve a merge conflict to include it in 'pu'. Therefore, I will wait until the OTP Technical Board has decided whether this kind of change should be included in Erlang/OTP. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From yangzd2006@REDACTED Tue Mar 9 07:48:34 2010 From: yangzd2006@REDACTED (=?GB2312?B?yMu85MrA?=) Date: Tue, 9 Mar 2010 14:48:34 +0800 Subject: Unsubscribing Message-ID: <55f414201003082248j776d847ak85d032974596352d@mail.gmail.com> Unsubscribing From erik@REDACTED Wed Mar 10 16:57:43 2010 From: erik@REDACTED (Erik Rigtorp) Date: Wed, 10 Mar 2010 16:57:43 +0100 Subject: Function to decode distribution header Message-ID: git fetch git://github.com/rigtorp/otp.git ei_decode_msg commit 01821ee1945370504d37edc72de8de84d2d40cd8 Author: Erik Rigtorp Date: Wed Mar 10 16:39:22 2010 +0100 Add function to decode distribution header There is currently no way to use erl_interface with non-blocking sockets. This patch adds a function ei_decode_header() that can decode the distribution header of a message sent to a C-node. This will allow a C-node to receive messages using an asynchronous event loop. Next step is to add a ei_send() function that would write to a supplied buffer. From bgustavsson@REDACTED Wed Mar 10 17:31:14 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Wed, 10 Mar 2010 17:31:14 +0100 Subject: [erlang-patches] Function to decode distribution header In-Reply-To: References: Message-ID: <6672d0161003100831v5554fd63x8bfd5834b6563e58@mail.gmail.com> On Wed, Mar 10, 2010 at 4:57 PM, Erik Rigtorp wrote: > git fetch git://github.com/rigtorp/otp.git ei_decode_msg Thanks! Included in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Thu Mar 11 10:15:27 2010 From: bgustavsson@REDACTED (=?ISO-8859-1?Q?Bj=F6rn_Gustavsson?=) Date: Thu, 11 Mar 2010 10:15:27 +0100 Subject: What's cooking in erlang/otp (2010-03-11) Message-ID: <4B98B4AF.8050404@gmail.com> ------------------------------------------------------------ [Graduated] * ks/types (kernel, stdlib) (2010-02-14) 2 commits + file.hrl: Move out type declarations (8fef4ff) + kernel: Add types and specs (da70b2b) ------------------------------------------------------------ [New topics] * am/restricted-port (erts) (2010-03-06) 5 commits - Add unit test for 'restricted' flag to port_SUITE (837fdb1) - Add enforcement of 'restricted' flag when using erlang:send (970aa8c) - Add checks to port functions to enforce 'restricted' flag (6f3ec5b) - Add 'restricted' option to opening ports (6a25251) - Add 'restricted' as atom (d54ba70) Will be discussed by the OTP Technical Board. * bg/asn1-tests (asn1) (2010-03-10) 6 commits - asn1 tests: No longer tolerate compilation warnings (54ba270) - asn1 tests: Eliminate use of deprecated concat_binary/1 (66dee97) - asn1 tests: Eliminate warning for an unused variable (4c3e9d4) - asn1 tests: Modernize guard tests (eb66ccf) - asn1 tests: Clean up comments (561706d) - asn1 tests: Don't refer to $ERL_TOP in compiler options (c2fa06c) * dgud/wx-new-doxygen (wx) (2010-03-10) 4 commits - Added a non existing macro on windows. (d5b08b9) - Commit of the generated code with previous commit. (8cd7999) - Fixed code generation from newer doxygen versions. (f5eeb0f) - Whitespace fixes (b89ee2b) * dp/shell-line-editing (kernel, stdlib) (2010-03-05) 1 commit - Readline-style line edit history (91e912b) * er/ei-decode_msg (erl_interface) (2010-03-10) 1 commit - Add function to decode distribution header (01821ee) * hawk/escript-add-create-and-extract (erts, reltool, stdlib) (2010-03-05) 4 commits - Remove the undocumented function escript:foldl/3 (643f1bf) - Make reltool independent of the function escript:foldl/3 (af90428) - Add functions to create and extract escripts (1b12c59) - Add function zip:foldl/3 to iterate over zip archives (14eef37) * jf/run_erl-disable-flow-control (erts) (2010-03-05) 1 commit - Teach run_erl RUN_ERL_DISABLE_FLOWCNTRL for disabling flow control (d0775cd) * jn/ic-docs-without-java (ic) (2010-03-07) 1 commit - Permit building and installing documentation without Java (2016a08) * ks/export_type (dialyzer, hipe) (2010-03-08) 1 commit - Support -export_type() in dialyzer and erl_types (0e39287) ------------------------------------------------------------ [Stalled] * am/spawn_rpc (kernel) (2010-03-07) 2 commits . Add filter to remote spawn (d84c5bb) . Add filter to rpc (4a621c0) Awaits a decision by the OTP Technical Board. * at/odbc_osx_fix (odbc) (2009-11-30) 1 commit - Workaround broken ODBC implementation on OSX 10.5 (88c71c9) The patch in itself is good. It solves the problem on Mac OS X in the only way that seems possible. Unfortunately, our test cases fail on Linux, and fixing it seems to require a backward-incompatible change to the API of the odbc module or ugly workarounds. The reviewer (Jakob Cederlund) will email the details and suggest and/or implement a solution. Action expected from: OTP/Jakob Cederlund * bg/safer-local_to_univ (erts) (2010-02-11) 1 commit - erl_time_sup.c: test for error return from mktime() (0f62f0b) We will not include this branch in R13B04 for two reasons: o We are not 100% sure that this change is harmless on all platforms in all timezones. o We have an idea how the underlying problem can be fixed in the calendar module (only) and I plan to try it out after the release. We will keep this branch in pu as a reminder. Action expected from: Bj??rn Gustavsson * db/tv_nthtail_fix (tv) (2009-12-01) 1 commit - Fix for tv which restarts while trying to open a table (abe0759) Since our long-term goal is to migrate from gs towards wx, maintaining the old gs applications has a low priority for the Erlang/OTP team. Therefore, we will accept patches that seem sound, but we are unlikely to spend much of our own time fixing bugs. The author of this topic branch has found the real reason for the problem, but uncovered additional issues. Action expected from: The topic author - to decide whether to include the topic branch (which is a workaround, but does eliminate the crash) or to wait for a better fix from himself or someone else with an interest to advance the topic. * jp/dependencies_makefile (compiler, erts) (2010-02-14) 3 commits - squash! eliminate dialyzer warning (434e2ca) - squash! fix snprintf for Windows (bf2708d) - Add dependencies Makefile generation to erlc(1) and compile(3) (7cbc437) Approved in principle by the OTP Technical Board; now awaits a closer review of the implementation. Action expected from: Bj??rn Gustavsson (the reviewer) * jv/update-rpccall-to-use-try (kernel) (2010-02-24) 1 commit . fix rpc handling of uncaught throws (3f21ed7) The follow test cases fall when this topic branch is included: compiler: inline_SUITE:barnes2/1 kernel: global_SUITE:simple_resolve/1 global_SUITE:simple_resolve2/1 rpc_SUITE:called_throws/1 Action expected from: Topic author or anyone else with an interest to advance the topic * kr/gs-browser (gs) (2010-02-10) 1 commit - Change lib/gs/src/tool_utils.erl to select multiple browsers other than Netscape (802d159) This topic branch introduces a new call to the deprecated regexp module. Action expected from: Topic author or anyone else with an interest to advance the topic ------------------------------------------------------------ [Cooking] * am/kernel-stops (kernel) (2010-02-21) 1 commit - Change restart behavior of network apps from permanent to transient (397343b) * am/net_kernel_catchall (kernel) (2010-02-20) 1 commit - Add catch all handle_call to net_kernel (77ee109) * au/crypto (crypto) (2010-03-01) 2 commits - Add missing docs for crypto:md4/1 (b869aef) - Add des_ecb_encrypt/2 and des_ecb_decrypt/2 to crypto module (544ed56) * bd/mnesia-activity-subscription (mnesia) (2010-02-12) 1 commit - Add mnesia activity subscription message (a564dd3) * bg/compiler-bugs (otp) (2010-02-16) 1 commit - bug: inlining a module causes an internal compiler error (f77e8aa) Reminder for a (low priority) bug to fix after the R13B04 release. * bg/efficiency-guide (otp) (2010-02-28) 3 commits - Efficiency Guide: Recommend external funs over tuple funs (5a662ce) - Efficiency Guide: The maximum number of atoms can be configured (cedee54) - Efficiency Guide: Fix typos (a0fc666) * bg/temp-hipe-fixes (compiler, hipe, kernel) (2010-01-31) 4 commits - Crudely fix return type for the lists:key{search,find,member}/3 (0e3ab3e) - seq_trace_SUITE: Don't native-compile (c9fc04b) - Disable native code if on_load is used (bd4fe28) - andor_SUITE: Don't native-compile (8aadc4c) This branch contains temporary workarounds to avoid failing test cases and is never intended to graduate. * dgud/emacs-bugfixes (tools) (2010-02-25) 2 commits - Added erlang-skels to release target (ddcad46) - Fixed electric semi-colon and tuples inside lists. (cfde62b) * gl/jinterface-pom (jinterface, otp) (2010-02-15) 2 commits - Exclude jinterface build artifact from git (5acf5fa) - Add pom.xml for jinterface build (aa68190) * jl/windows-file-share-delete (erts) (2010-02-22) 1 commit - Windows: Open files with FILE_SHARE_DELETE to get closer to UNIX semantics (e5e5597) * ks/cleanups (debugger, docbuilder, gs, kernel, stdlib) (2010-03-07) 6 commits - kernel: Clean up as suggested by tidier (4b7962b) - debugger: Clean up as suggested by tidier (8dc0d23) - docbuilder: Clean up as suggested by tidier (9c46be1) - gs: Clean up as suggested by tidier (068dbc4) - stdlib: Use fun object instead of {M,F} tuple (d52f2bc) - ets: Cleanup as suggested by tidier (7b6ffc8) Was formerly called ks/cleanups-after-r13b04. * mh/ssh_channel-init-no-catch (ssh) (2010-01-25) 1 commit - Remove pointless catch from ssh_channel:init/1. (bb7eaa5) * ra/include-public_key-in-ssh (ssh) (2010-01-20) 1 commit - Added public_key among ssh applications. (3a0c2c5) * sv/format_status_error_info (stdlib) (2010-02-28) 2 commits - Add support for the format_status callback to gen_event (fd9abcb) - Extend format_status for gen_server/gen_fsm termination error logging (3d06952) From erik@REDACTED Thu Mar 11 13:24:33 2010 From: erik@REDACTED (Erik Rigtorp) Date: Thu, 11 Mar 2010 13:24:33 +0100 Subject: [erlang-patches] Function to decode distribution header In-Reply-To: <6672d0161003100831v5554fd63x8bfd5834b6563e58@mail.gmail.com> References: <6672d0161003100831v5554fd63x8bfd5834b6563e58@mail.gmail.com> Message-ID: Please pull updated commit 864091a37030eac122b4029377c05985338586fb that handles trace tokens properly. 2010/3/10 Bj?rn Gustavsson : > On Wed, Mar 10, 2010 at 4:57 PM, Erik Rigtorp wrote: >> git fetch git://github.com/rigtorp/otp.git ei_decode_msg > > Thanks! Included in 'pu'. > > -- > Bj?rn Gustavsson, Erlang/OTP, Ericsson AB > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > > From bgustavsson@REDACTED Fri Mar 12 06:43:54 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Fri, 12 Mar 2010 06:43:54 +0100 Subject: [erlang-patches] Function to decode distribution header In-Reply-To: References: <6672d0161003100831v5554fd63x8bfd5834b6563e58@mail.gmail.com> Message-ID: <6672d0161003112143h635a583bn7785f78cea0f93e3@mail.gmail.com> 2010/3/11 Erik Rigtorp : > Please pull updated commit 864091a37030eac122b4029377c05985338586fb > that handles trace tokens properly. Included in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From erik@REDACTED Fri Mar 12 21:37:48 2010 From: erik@REDACTED (Erik Rigtorp) Date: Fri, 12 Mar 2010 21:37:48 +0100 Subject: [erlang-patches] Function to decode distribution header In-Reply-To: <6672d0161003112143h635a583bn7785f78cea0f93e3@mail.gmail.com> References: <6672d0161003100831v5554fd63x8bfd5834b6563e58@mail.gmail.com> <6672d0161003112143h635a583bn7785f78cea0f93e3@mail.gmail.com> Message-ID: I take it from the lack of discussion that this is a good solution and I will proceed and write documentation so this can be included in a future release. 2010/3/12 Bj?rn Gustavsson : > 2010/3/11 Erik Rigtorp : >> Please pull updated commit 864091a37030eac122b4029377c05985338586fb >> that handles trace tokens properly. > > Included in 'pu'. > -- > Bj?rn Gustavsson, Erlang/OTP, Ericsson AB > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > > From nc@REDACTED Sun Mar 14 22:05:48 2010 From: nc@REDACTED (Nicolas Charpentier) Date: Sun, 14 Mar 2010 17:05:48 -0400 Subject: Fix emacs mode installation Message-ID: <425bdeb00fba5cb8c4b0432268a63494.squirrel@www.geekisp.com> Hi, In OTP R13B-4 compiled from scratch, some elisp files are not installed by the 'make install'. Without those files, the erlang mode can't be loaded. The patch change the list of emacs files in a Makefile. Here is thegit repository: git fetch git://github.com/charpi/otp.git emacs_install Regards, Nicolas Charpentier From magnus@REDACTED Mon Mar 15 16:39:18 2010 From: magnus@REDACTED (Magnus Henoch) Date: Mon, 15 Mar 2010 15:39:18 +0000 Subject: Include stack traces in ssh_connection_manager:handle_call error messages Message-ID: <84hbohr3vd.fsf@linux-b2a3.site> The error messages reported by ssh_connection_manager:handle_call({ssh_msg,_,_},_,_) don't include stack traces. Here's a patch to include the stack traces in the error messages: git fetch git@REDACTED:legoscia/otp.git ssh-error-stacktrace -- Magnus Henoch, magnus@REDACTED Erlang Solutions http://www.erlang-solutions.com/ --------------------------------------------------- --------------------------------------------------- WE'VE CHANGED NAMES! Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD. www.erlang-solutions.com From bgustavsson@REDACTED Mon Mar 15 17:45:07 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Mon, 15 Mar 2010 17:45:07 +0100 Subject: [erlang-patches] Fix emacs mode installation In-Reply-To: <425bdeb00fba5cb8c4b0432268a63494.squirrel@www.geekisp.com> References: <425bdeb00fba5cb8c4b0432268a63494.squirrel@www.geekisp.com> Message-ID: <6672d0161003150945r1b454b1byb59b72af0007a3b8@mail.gmail.com> On Sun, Mar 14, 2010 at 10:05 PM, Nicolas Charpentier wrote: > In OTP R13B-4 compiled from scratch, some elisp files are not installed by > the 'make install'. > Without those files, the erlang mode can't be loaded. > > The patch change the list of emacs files in a Makefile. > > Here is thegit repository: > > git fetch git://github.com/charpi/otp.git emacs_install > Thanks! The same changes are already included in the branch dgud/emacs-bugfixes (which is included in the pu branch). -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From matthias@REDACTED Mon Mar 15 19:02:32 2010 From: matthias@REDACTED (Matthias Lang) Date: Mon, 15 Mar 2010 19:02:32 +0100 Subject: fixed documentation problems related to "its" and "it's" Message-ID: <20100315180232.GA26375@corelatus.se> Hi, I went through all the .xml files in the git repository and fixed every wrong use of "its" versus "it's" I could find. And vice versa. git://github.com/matthiasl/otp.git documentation_apostrophe_fix (about 40 changes in about 25 files) Matt From bgustavsson@REDACTED Tue Mar 16 09:15:35 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Tue, 16 Mar 2010 09:15:35 +0100 Subject: [erlang-patches] fixed documentation problems related to "its" and "it's" In-Reply-To: <20100315180232.GA26375@corelatus.se> References: <20100315180232.GA26375@corelatus.se> Message-ID: <6672d0161003160115v814ad09if69abf916039b0ca@mail.gmail.com> On Mon, Mar 15, 2010 at 7:02 PM, Matthias Lang wrote: > Hi, > > I went through all the .xml files in the git repository and fixed every > wrong use of "its" versus "it's" I could find. And vice versa. > > git://github.com/matthiasl/otp.git documentation_apostrophe_fix > > (about 40 changes in about 25 files) > Thanks! Will include in 'pu'. Should graduate soon. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Tue Mar 16 09:18:47 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Tue, 16 Mar 2010 09:18:47 +0100 Subject: [erlang-patches] Include stack traces in ssh_connection_manager:handle_call error messages In-Reply-To: <84hbohr3vd.fsf@linux-b2a3.site> References: <84hbohr3vd.fsf@linux-b2a3.site> Message-ID: <6672d0161003160118x650b63e3m204694bcfa272a19@mail.gmail.com> On Mon, Mar 15, 2010 at 4:39 PM, Magnus Henoch wrote: > The error messages reported by > ssh_connection_manager:handle_call({ssh_msg,_,_},_,_) don't include > stack traces. Here's a patch to include the stack traces in the error > messages: > > git fetch git@REDACTED:legoscia/otp.git ssh-error-stacktrace Thanks! Will include in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Tue Mar 16 10:35:36 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Tue, 16 Mar 2010 10:35:36 +0100 Subject: [erlang-patches] Include stack traces in ssh_connection_manager:handle_call error messages In-Reply-To: <6672d0161003160118x650b63e3m204694bcfa272a19@mail.gmail.com> References: <84hbohr3vd.fsf@linux-b2a3.site> <6672d0161003160118x650b63e3m204694bcfa272a19@mail.gmail.com> Message-ID: <6672d0161003160235o6759f80di374849b680e5c458@mail.gmail.com> 2010/3/16 Bj?rn Gustavsson : >> git fetch git@REDACTED:legoscia/otp.git ssh-error-stacktrace > > Thanks! Will include in 'pu'. Update: The maintainer for the ssh application has now included the patch directly in the dev branch. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From rory@REDACTED Tue Mar 16 21:00:50 2010 From: rory@REDACTED (Rory Byrne) Date: Tue, 16 Mar 2010 21:00:50 +0100 Subject: Fix ssl to decode http packets in the same way as gen_tcp Message-ID: <20100316200050.GA19859@almeida.jinsky.com> Hi, git fetch git://github.com/jinsky/otp.git ssl_decode_http_packet_fix This updates ssl to behave in the same way as gen_tcp when it's given the {packet,http} option. It will now automatically switch to expect HTTP headers after it receives a HTTP Request or HTTP Response line. Cheers, Rory From bgustavsson@REDACTED Wed Mar 17 08:55:33 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Wed, 17 Mar 2010 08:55:33 +0100 Subject: [erlang-patches] Fix ssl to decode http packets in the same way as gen_tcp In-Reply-To: <20100316200050.GA19859@almeida.jinsky.com> References: <20100316200050.GA19859@almeida.jinsky.com> Message-ID: <6672d0161003170055xdf08ebfh531839a96697e2c4@mail.gmail.com> On Tue, Mar 16, 2010 at 9:00 PM, Rory Byrne wrote: > ? git fetch git://github.com/jinsky/otp.git ssl_decode_http_packet_fix Thanks! Included in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From magnus@REDACTED Fri Mar 19 00:13:50 2010 From: magnus@REDACTED (Magnus Henoch) Date: Thu, 18 Mar 2010 23:13:50 +0000 Subject: erl_call -a doc fix Message-ID: <84hbodmde9.fsf@linux-b2a3.site> I have an eerie feeling that someone already submitted this, but I can't find it at http://erlang.github.com/otp/ or in the mailing list archive, so here it is: erl_call: fix documentation of -a option The default value for Fun is start, not [] as the documentation used to suggest. Also, format [] with instead of since it is a code fragment, not an emphasised word. git fetch git://github.com/legoscia/otp.git erl_call-doc-fix See the diff at: http://github.com/legoscia/otp/commit/12a149c671d19f847422104f9948901045715698 -- Magnus Henoch, magnus@REDACTED Erlang Solutions http://www.erlang-solutions.com/ --------------------------------------------------- --------------------------------------------------- WE'VE CHANGED NAMES! Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD. www.erlang-solutions.com From michael.santos@REDACTED Fri Mar 19 02:02:24 2010 From: michael.santos@REDACTED (Michael Santos) Date: Thu, 18 Mar 2010 21:02:24 -0400 Subject: pcre compile workspace overflow Message-ID: <20100319010223.GA19511@ecn.lan> A large pattern can overflow the buffer used to hold the compiled regexp, as reported here: http://www.erlang.org/cgi-bin/ezmlm-cgi/2/1289 So, running the following will crash the emulator on some platforms: N = 819, re:compile([lists:duplicate(N, $(), lists:duplicate(N, $))]). Here is a patch: git fetch git://github.com/msantos/otp.git pcre-compile-workspace-overrun The patch is from: http://vcs.pcre.org/viewvc/code/trunk/pcre_compile.c?r1=504&r2=505&view=patch From bgustavsson@REDACTED Fri Mar 19 14:56:02 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Fri, 19 Mar 2010 14:56:02 +0100 Subject: [erlang-patches] erl_call -a doc fix In-Reply-To: <84hbodmde9.fsf@linux-b2a3.site> References: <84hbodmde9.fsf@linux-b2a3.site> Message-ID: <6672d0161003190656m14317b42wdbaf316f0ff35663@mail.gmail.com> On Fri, Mar 19, 2010 at 12:13 AM, Magnus Henoch wrote: > I have an eerie feeling that someone already submitted this, but I can't > find it at http://erlang.github.com/otp/ or in the mailing list archive, > so here it is: > > erl_call: fix documentation of -a option > > The default value for Fun is start, not [] as the documentation used > to suggest. > > Also, format [] with instead of since it is a code fragment, > not an emphasised word. > > git fetch git://github.com/legoscia/otp.git erl_call-doc-fix > Thanks! I will include the fix directly in the dev branch. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Fri Mar 19 14:59:01 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Fri, 19 Mar 2010 14:59:01 +0100 Subject: [erlang-patches] pcre compile workspace overflow In-Reply-To: <20100319010223.GA19511@ecn.lan> References: <20100319010223.GA19511@ecn.lan> Message-ID: <6672d0161003190659o313069cat428bc62dde53e7c5@mail.gmail.com> On Fri, Mar 19, 2010 at 2:02 AM, Michael Santos wrote: > > A large pattern can overflow the buffer used to hold the compiled > regexp, as reported here: > > http://www.erlang.org/cgi-bin/ezmlm-cgi/2/1289 > > So, running the following will crash the emulator on some platforms: > > N = 819, re:compile([lists:duplicate(N, $(), lists:duplicate(N, $))]). > > Here is a patch: > > git fetch git://github.com/msantos/otp.git pcre-compile-workspace-overrun > Thanks! I will include it in the 'pu' branch. The next time it would be better if you based the patched on the 'dev' branch and not on R13B03 which is not even the latest release. No problem this time, since I could rebase onto 'dev' without any conflicts. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From michael.santos@REDACTED Sun Mar 21 02:30:04 2010 From: michael.santos@REDACTED (Michael Santos) Date: Sat, 20 Mar 2010 21:30:04 -0400 Subject: [PATCH] Exit if an error occurs with the listening socket Message-ID: <20100321013004.GA24786@ecn.lan> On erlang-questions, there was a thread about epmd consuming 100% CPU under some conditions: http://www.erlang.org/cgi-bin/ezmlm-cgi?4:mss:50068:ikpcjohfehcpniapmcfm Looking through the code for epmd_srv.c, when either select() or accept() returns an error, errno is not checked. In the case of an error with the socket, this will cause select/accept to return immediately and loop. The easiest way of reproducing this situation is by using too many file descriptors: http://gist.github.com/338996 In one shell: $ ulimit -n 16 $ epmd -d -port 1234 In another shell: $ erl $ emfile:start(1234,32). epmd will log many errors and consume CPU: epmd: Sat Mar 20 20:09:45 2010: error in accept: Too many open files Since my github fork is "temporarily unavailable", the patch will be sent separately in git patch format. If the patch needs to be re-worked, please let me know, and I will do so when my fork is back up. From michael.santos@REDACTED Sun Mar 21 02:30:32 2010 From: michael.santos@REDACTED (Michael Santos) Date: Sat, 20 Mar 2010 21:30:32 -0400 Subject: [PATCH] Exit if an error occurs with the listening socket Message-ID: <20100321013032.GA24824@ecn.lan> Check errno if either select() or accept() returns an error and exit. This prevents epmd from looping and taking up 100% CPU. --- erts/epmd/src/epmd_srv.c | 19 +++++++++++++++++-- 1 files changed, 17 insertions(+), 2 deletions(-) diff --git a/erts/epmd/src/epmd_srv.c b/erts/epmd/src/epmd_srv.c index a033fab..7e4a661 100644 --- a/erts/epmd/src/epmd_srv.c +++ b/erts/epmd/src/epmd_srv.c @@ -227,8 +227,16 @@ void run(EpmdVars *g) timeout.tv_sec = (g->packet_timeout < IDLE_TIMEOUT) ? 1 : IDLE_TIMEOUT; timeout.tv_usec = 0; - if ((ret = select(g->max_conn,&read_mask,(fd_set *)0,(fd_set *)0,&timeout)) < 0) + if ((ret = select(g->max_conn,&read_mask,(fd_set *)0,(fd_set *)0,&timeout)) < 0) { dbg_perror(g,"error in select "); + switch (errno) { + case EAGAIN: + case EINTR: + break; + default: + epmd_cleanup_exit(g,1); + } + } else { time_t now; if (ret == 0) { @@ -401,7 +409,14 @@ static int do_accept(EpmdVars *g,int listensock) if (msgsock < 0) { dbg_perror(g,"error in accept"); - return EPMD_FALSE; + switch (errno) { + case EAGAIN: + case ECONNABORTED: + case EINTR: + return EPMD_FALSE; + default: + epmd_cleanup_exit(g,1); + } } return conn_open(g,msgsock); -- 1.5.4.3 From kenji.rikitake@REDACTED Sun Mar 21 06:35:16 2010 From: kenji.rikitake@REDACTED (Kenji Rikitake) Date: Sun, 21 Mar 2010 14:35:16 +0900 Subject: ssh_connection:send/4 on R13B04 with the last argument as "infinity" fails Message-ID: <20100321053516.GA18793@k2r.org> On R13B04, when using ssh_connection:send(ConnectionManager, ChannelId, Data, Timeout) with Timeout as 'infinity' (atom), the function crashes with the error on erlang:size([infinity]). The following small patch will fix this, by explicitly treating the 'infinity' atom in the pattern matching of lib/src/ssh_connection.erl. Kenji Rikitake --- ssh_connection.erl.old 2010-03-21 14:28:43.000000000 +0900 +++ ssh_connection.erl 2010-03-21 14:29:59.000000000 +0900 @@ -123,6 +123,8 @@ send(ConnectionManager, ChannelId, 0, Data, infinity). send(ConnectionManager, ChannelId, Data, TimeOut) when is_integer(TimeOut) -> send(ConnectionManager, ChannelId, 0, Data, TimeOut); +send(ConnectionManager, ChannelId, Data, infinity) -> + send(ConnectionManager, ChannelId, 0, Data, infinity); send(ConnectionManager, ChannelId, Type, Data) -> send(ConnectionManager, ChannelId, Type, Data, infinity). send(ConnectionManager, ChannelId, Type, Data, TimeOut) -> From nick@REDACTED Mon Mar 22 10:05:44 2010 From: nick@REDACTED (Niclas Eklund) Date: Mon, 22 Mar 2010 10:05:44 +0100 (CET) Subject: [erlang-patches] ssh_connection:send/4 on R13B04 with the last argument as "infinity" fails In-Reply-To: <20100321053516.GA18793@k2r.org> References: <20100321053516.GA18793@k2r.org> Message-ID: Hello! Thank you for pointing this out. I've applied the change you suggested. Best regards, Niclas @ Erlang/OTP On Sun, 21 Mar 2010, Kenji Rikitake wrote: > On R13B04, when using > ssh_connection:send(ConnectionManager, ChannelId, Data, Timeout) > with Timeout as 'infinity' (atom), the function crashes > with the error on erlang:size([infinity]). > > The following small patch will fix this, by explicitly treating > the 'infinity' atom in the pattern matching of > lib/src/ssh_connection.erl. > > Kenji Rikitake > > --- ssh_connection.erl.old 2010-03-21 14:28:43.000000000 +0900 > +++ ssh_connection.erl 2010-03-21 14:29:59.000000000 +0900 > @@ -123,6 +123,8 @@ > send(ConnectionManager, ChannelId, 0, Data, infinity). > send(ConnectionManager, ChannelId, Data, TimeOut) when is_integer(TimeOut) -> > send(ConnectionManager, ChannelId, 0, Data, TimeOut); > +send(ConnectionManager, ChannelId, Data, infinity) -> > + send(ConnectionManager, ChannelId, 0, Data, infinity); > send(ConnectionManager, ChannelId, Type, Data) -> > send(ConnectionManager, ChannelId, Type, Data, infinity). > send(ConnectionManager, ChannelId, Type, Data, TimeOut) -> > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > From rdoering@REDACTED Mon Mar 22 14:00:19 2010 From: rdoering@REDACTED (Ralf Doering) Date: Mon, 22 Mar 2010 14:00:19 +0100 Subject: [PATCH] erlang-eunit.el: Require cl, as it is used. Message-ID: <1269262819-10986-1-git-send-email-rdoering@netsys-it.de> erlang-eunit.el (part of erlang-mode) uses "flet", which is only available if emacs package cl was loaded. The docs of the CL package suggest that '...packages installed in Emacs must not load "CL" at run time.' We honour this by using eval-when-compile. This fixes warnings when byte-compiling erlang-eunit.el with: emacs -batch -f batch-byte-compile erlang-eunit.el The warning fixed is: In erlang-eunit-compile-and-run-tests: erlang-eunit.el:146:4:Warning: `(save-some-buffers (&optional any) nil)' is a malformed function This bug was reported initially against Ubuntu packages, see https://bugs.launchpad.net/bugs/541893 for reference Signed-off-by: Ralf Doering --- lib/tools/emacs/erlang-eunit.el | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/lib/tools/emacs/erlang-eunit.el b/lib/tools/emacs/erlang-eunit.el index 05528ae..1046143 100644 --- a/lib/tools/emacs/erlang-eunit.el +++ b/lib/tools/emacs/erlang-eunit.el @@ -20,6 +20,9 @@ ;;; ;;; Author: Klas Johansson +(eval-when-compile + (require 'cl)) + (defvar erlang-eunit-separate-src-and-test-directories t "*Whether or not to keep source and EUnit test files in separate directories") -- 1.7.0.1.61.gdc05d From bgustavsson@REDACTED Mon Mar 22 18:59:51 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Mon, 22 Mar 2010 18:59:51 +0100 Subject: [erlang-patches] [PATCH] erlang-eunit.el: Require cl, as it is used. In-Reply-To: <1269262819-10986-1-git-send-email-rdoering@netsys-it.de> References: <1269262819-10986-1-git-send-email-rdoering@netsys-it.de> Message-ID: <6672d0161003221059v7846866an5935c350215b4701@mail.gmail.com> On Mon, Mar 22, 2010 at 2:00 PM, Ralf Doering wrote: > erlang-eunit.el (part of erlang-mode) uses "flet", which is only available > if emacs package cl was loaded. The docs of the CL package suggest that > '...packages installed in Emacs must not load "CL" at run time.' We > honour this by using eval-when-compile. [...] Thanks! Will include in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Mon Mar 22 19:04:01 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Mon, 22 Mar 2010 19:04:01 +0100 Subject: [erlang-patches] [PATCH] Exit if an error occurs with the listening socket In-Reply-To: <20100321013032.GA24824@ecn.lan> References: <20100321013032.GA24824@ecn.lan> Message-ID: <6672d0161003221104g7ac0d96ahb5f3db19090e1fd1@mail.gmail.com> On Sun, Mar 21, 2010 at 2:30 AM, Michael Santos wrote: > Check errno if either select() or accept() returns an error and exit. > This prevents epmd from looping and taking up 100% CPU. Thanks! Will include in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Mon Mar 22 19:31:00 2010 From: bgustavsson@REDACTED (=?ISO-8859-1?Q?Bj=F6rn_Gustavsson?=) Date: Mon, 22 Mar 2010 19:31:00 +0100 Subject: What's cooking in erlang/otp (2010-03-22) Message-ID: <4BA7B764.50200@gmail.com> After a meeting of the OTP Technical Board, we have added one more entry to "FAQ: What kind of patches will be approved?": http://wiki.github.com/erlang/otp/faq-what-kind-of-patches-will-be-approved ------------------------------------------------------------ [Graduated] * bg/asn1-tests (asn1) (2010-03-11) 7 commits + asn1 tests: Let ts:run() build the tests (878f36c) + asn1 tests: No longer tolerate compilation warnings (c642415) + asn1 tests: Eliminate use of deprecated concat_binary/1 (165f723) + asn1 tests: Eliminate warning for an unused variable (e42725a) + asn1 tests: Modernize guard tests (44cc5df) + asn1 tests: Clean up comments (c5dff50) + asn1 tests: Don't refer to $ERL_TOP in compiler options (dc1e683) * bg/efficiency-guide (otp) (2010-02-28) 3 commits + Efficiency Guide: Recommend external funs over tuple funs (5a662ce) + Efficiency Guide: The maximum number of atoms can be configured (cedee54) + Efficiency Guide: Fix typos (a0fc666) * dgud/emacs-bugfixes (tools) (2010-03-15) 3 commits + Fix another -spec() problem (228e1f0) + Add missing elisp files to the the release target (bffb3a3) + Fix electric semi-colon and tuples inside lists (824ba96) * hawk/escript-add-create-and-extract (erts, reltool, stdlib) (2010-03-05) 5 commits + Add type info for record fields (d09c73a) + Remove the undocumented function escript:foldl/3 (e774e56) + Make reltool independent of the function escript:foldl/3 (26d609d) + Add functions to create and extract escripts (31b790b) + Add function zip:foldl/3 to iterate over zip archives (a20eb61) * ml/documentation_apostrophe_fix (appmon, erl_interface, erts, inets, kernel, megaco, otp, runtime_tools, snmp, stdlib, test_server, xmerl) (2010-03-15) 2 commits + Correct grammatical problems in conjunction with 'its' (fa6853c) + Change all incorrect occurrences of it's to its (bfd9a4f) ------------------------------------------------------------ [New topics] * bg/compiler (compiler, stdlib) (2010-03-12) 5 commits - beam_peep: Remove optimization already done by beam_dead (fc83f83) - beam_dead: Combine is_eq_exact instructions into select_val instructions (e2a19cf) - Evaluate is_record/3 at compile-time using type information (c8777da) - Evaluate element/2 at compile-time using type information (253e455) - erl_expand_records: Replace is_record() with matching (f479d82) * bg/compiler-inliner (compiler, otp) (2010-03-19) 8 commits - pmod_SUITE: Again test to inline parameterized modules (f4dc072) - compiler tests: Cope with missing args in function_clause for native code (e7c4f54) - compiler tests: Compile a few more modules with 'inline' (e3dac78) - Consistently rewrite an inlined function_clause exception to case_clause (bc0a526) - compiler tests: Test the 'inline' option better (9668443) - compiler: Suppress bs_context_to_binary/1 for a literal operand (0772d1e) - compiler: Fix binary matching bug in the inliner (1069279) - sys_core_inline: Don't generated multiple compiler_generated annos (df7a975) * bg/compiler-remove-r11-support (compiler, erts, otp, test_server) (2010-03-16) 7 commits - compiler: Don't support the no_binaries option (d179c15) - erts: Don't support the put_string/3 instruction (bba6073) - compiler: Don't support the no_constant_pool option (2dc5a17) - compiler: Don't support the r11 option (eeff53b) - test_server: Don't support communication with R11 nodes (2090739) - binary_SUITE: Don't test bit-level binary roundtrips with R11 nodes (4767bed) - erts: Test compatibility of funs with R12 instead of R11 (e188505) * hawk/wx-add-app-file (wx) (2010-03-15) 1 commit - Add app and appup files to the wx application (00832cc) * ms/epmd-error-checking (erts) (2010-03-20) 1 commit - Exit if an error occurs with the listening socket (a4882b4) * ms/pcre-compile-workspace-overrun (erts, stdlib) (2010-03-19) 2 commits - re_SUITE: Add pcre_compile_workspace_overflow/1 (3efa1b8) - Fix check for compile workspace overflow (272e106) * rb/ssl-fix-http-packet-decoding (ssl) (2010-03-16) 1 commit - Fix ssl to decode http packets in the same way as gen_tcp (9e7178f) * rd/erlang-eunit (tools) (2010-03-22) 1 commit - erlang-eunit.el: Require cl, as it is used (43ae537) ------------------------------------------------------------ [Stalled] * bg/safer-local_to_univ (erts) (2010-02-11) 1 commit - erl_time_sup.c: test for error return from mktime() (0f62f0b) We will not include this branch in R13B04 for two reasons: o We are not 100% sure that this change is harmless on all platforms in all timezones. o We have an idea how the underlying problem can be fixed in the calendar module (only) and I plan to try it out after the release. We will keep this branch in pu as a reminder. Action expected from: Bj??rn Gustavsson * db/tv_nthtail_fix (tv) (2009-12-01) 1 commit - Fix for tv which restarts while trying to open a table (abe0759) Since our long-term goal is to migrate from gs towards wx, maintaining the old gs applications has a low priority for the Erlang/OTP team. Therefore, we will accept patches that seem sound, but we are unlikely to spend much of our own time fixing bugs. The author of this topic branch has found the real reason for the problem, but uncovered additional issues. Action expected from: The topic author - to decide whether to include the topic branch (which is a workaround, but does eliminate the crash) or to wait for a better fix from himself or someone else with an interest to advance the topic. * jp/dependencies_makefile (compiler, erts) (2010-02-14) 3 commits - squash! eliminate dialyzer warning (434e2ca) - squash! fix snprintf for Windows (bf2708d) - Add dependencies Makefile generation to erlc(1) and compile(3) (7cbc437) Approved in principle by the OTP Technical Board; now awaits a closer review of the implementation. Action expected from: Bj??rn Gustavsson (the reviewer) * jv/update-rpccall-to-use-try (kernel) (2010-02-24) 1 commit . fix rpc handling of uncaught throws (3f21ed7) The follow test cases fall when this topic branch is included: compiler: inline_SUITE:barnes2/1 kernel: global_SUITE:simple_resolve/1 global_SUITE:simple_resolve2/1 rpc_SUITE:called_throws/1 Action expected from: Topic author or anyone else with an interest to advance the topic * kr/gs-browser (gs) (2010-02-10) 1 commit - Change lib/gs/src/tool_utils.erl to select multiple browsers other than Netscape (802d159) This topic branch introduces a new call to the deprecated regexp module. Action expected from: Topic author or anyone else with an interest to advance the topic ------------------------------------------------------------ [Cooking] * am/kernel-stops (kernel) (2010-02-21) 1 commit - Change restart behavior of network apps from permanent to transient (397343b) * am/net_kernel_catchall (kernel) (2010-02-20) 1 commit - Add catch all handle_call to net_kernel (77ee109) * au/crypto (crypto) (2010-03-01) 2 commits - Add missing docs for crypto:md4/1 (b869aef) - Add des_ecb_encrypt/2 and des_ecb_decrypt/2 to crypto module (544ed56) * bd/mnesia-activity-subscription (mnesia) (2010-02-12) 1 commit - Add mnesia activity subscription message (a564dd3) * bg/temp-hipe-fixes (compiler, hipe, kernel) (2010-03-15) 6 commits - Avoid crash by skipping compilation_SUITE:on_load/1 (234e13e) - Inline less aggressively for native-code compilation (9fcb48b) - Crudely fix return type for the lists:key{search,find,member}/3 (ef71597) - seq_trace_SUITE: Don't native-compile (2a81b1a) - Disable native code if on_load is used (3befa76) - andor_SUITE: Don't native-compile (97aa2da) This branch contains temporary workarounds to avoid failing test cases and is never intended to graduate. * dgud/wx-new-doxygen (wx) (2010-03-10) 4 commits - Added a non existing macro on windows. (3a4edf4) - Commit of the generated code with previous commit. (dec7bba) - Fixed code generation from newer doxygen versions. (556b7f0) - Whitespace fixes (e68047c) * dp/shell-line-editing (kernel, stdlib) (2010-03-05) 1 commit - Readline-style line edit history (91e912b) * er/ei-decode_msg (erl_interface) (2010-03-11) 1 commit - Add function to decode distribution header (864091a) * gl/jinterface-pom (jinterface, otp) (2010-02-15) 2 commits - Exclude jinterface build artifact from git (5acf5fa) - Add pom.xml for jinterface build (aa68190) * jf/run_erl-disable-flow-control (erts) (2010-03-05) 1 commit - Teach run_erl RUN_ERL_DISABLE_FLOWCNTRL for disabling flow control (d0775cd) * jl/windows-file-share-delete (erts) (2010-02-22) 1 commit - Windows: Open files with FILE_SHARE_DELETE to get closer to UNIX semantics (e5e5597) * jn/ic-docs-without-java (ic) (2010-03-07) 1 commit - Permit building and installing documentation without Java (2016a08) * ks/cleanups (debugger, docbuilder, gs, kernel, stdlib) (2010-03-21) 8 commits - stdlib: Add types and specs (6a60c05) - escript: Add more types to records (17655d0) - kernel: Clean up as suggested by tidier (23063a5) - debugger: Clean up as suggested by tidier (93e92a1) - docbuilder: Clean up as suggested by tidier (59d0c74) - gs: Clean up as suggested by tidier (02c9fa1) - stdlib: Use fun object instead of {M,F} tuple (12bc861) - ets: Cleanup as suggested by tidier (9a8bd8d) Was formerly called ks/cleanups-after-r13b04. * ks/export_type (compiler, dialyzer, hipe, kernel, stdlib, syntax_tools) (2010-03-22) 12 commits - Minor fix in a print message (67699af) - Add handling of unknown types (0a0e0f6) - Add declaration for exported types (6d06913) - Add types and specs; performed some cleanups also (7a01be9) - erl_scan: Add declarations for exported types (35ad335) - stdlib: Add declarations for exported types (85e206a) - hipe: Add declarations for exported types (79c10da) - compiler: Add declarations for exported types (2794783) - syntax_tools: Add declarations for exported types (faab830) - kernel: Add declaration for exported types (73b1b30) - Support -export_type() in dialyzer and erl_types (f173fee) - Add infrastructure for the -export_type() attribute (42c12b9) * mh/ssh_channel-init-no-catch (ssh) (2010-01-25) 1 commit - Remove pointless catch from ssh_channel:init/1. (bb7eaa5) * ra/include-public_key-in-ssh (ssh) (2010-01-20) 1 commit - Added public_key among ssh applications. (3a0c2c5) * sv/format_status_error_info (stdlib) (2010-02-28) 2 commits - Add support for the format_status callback to gen_event (fd9abcb) - Extend format_status for gen_server/gen_fsm termination error logging (3d06952) ------------------------------------------------------------ [Dropped] * am/restricted-port (erts) (2010-03-06) 5 commits . Add unit test for 'restricted' flag to port_SUITE (837fdb1) . Add enforcement of 'restricted' flag when using erlang:send (970aa8c) . Add checks to port functions to enforce 'restricted' flag (6f3ec5b) . Add 'restricted' option to opening ports (6a25251) . Add 'restricted' as atom (d54ba70) Dropped after decision from the OTP Technical Board. * am/spawn_rpc (kernel) (2010-03-07) 2 commits . Add filter to remote spawn (d84c5bb) . Add filter to rpc (4a621c0) Dropped after decision from the OTP Technical Board. * at/odbc_osx_fix (odbc) (2009-11-30) 1 commit . Workaround broken ODBC implementation on OSX 10.5 (88c71c9) The patch in itself is good. It solves the problem on Mac OS X (Leopard) in the only way that seems possible. Unfortunately, our test cases fail on Linux, and fixing it seems to require a backward-incompatible change to the API of the odbc module or ugly workarounds. Since the bug in the ODCB driver has been fixed in Mac OS X Snow Leopard and the topic author no longer have a use for the correction, the topic branch has been dropped. From Antonio.Musumeci@REDACTED Mon Mar 22 19:43:28 2010 From: Antonio.Musumeci@REDACTED (Musumeci, Antonio S) Date: Mon, 22 Mar 2010 14:43:28 -0400 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <4BA7B764.50200@gmail.com> References: <4BA7B764.50200@gmail.com> Message-ID: <01489E237C2C8F45AF7898E135F48E800220276107@NYWEXMBX2129.msad.ms.com> Is there anything in addition to "Dropped after decision from the OTP Technical Board." for the restricted ports and rpc filtering? -----Original Message----- From: erlang-patches@REDACTED [mailto:erlang-patches@REDACTED] On Behalf Of Bj?rn Gustavsson Sent: Monday, March 22, 2010 2:31 PM To: erlang patches Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) After a meeting of the OTP Technical Board, we have added one more entry to "FAQ: What kind of patches will be approved?": http://wiki.github.com/erlang/otp/faq-what-kind-of-patches-will-be-approved ------------------------------------------------------------ [Graduated] * bg/asn1-tests (asn1) (2010-03-11) 7 commits + asn1 tests: Let ts:run() build the tests (878f36c) + asn1 tests: No longer tolerate compilation warnings (c642415) + asn1 tests: Eliminate use of deprecated concat_binary/1 (165f723) + asn1 tests: Eliminate warning for an unused variable (e42725a) + asn1 tests: Modernize guard tests (44cc5df) + asn1 tests: Clean up comments (c5dff50) + asn1 tests: Don't refer to $ERL_TOP in compiler options (dc1e683) * bg/efficiency-guide (otp) (2010-02-28) 3 commits + Efficiency Guide: Recommend external funs over tuple funs (5a662ce) + Efficiency Guide: The maximum number of atoms can be configured (cedee54) + Efficiency Guide: Fix typos (a0fc666) * dgud/emacs-bugfixes (tools) (2010-03-15) 3 commits + Fix another -spec() problem (228e1f0) + Add missing elisp files to the the release target (bffb3a3) + Fix electric semi-colon and tuples inside lists (824ba96) * hawk/escript-add-create-and-extract (erts, reltool, stdlib) (2010-03-05) 5 commits + Add type info for record fields (d09c73a) + Remove the undocumented function escript:foldl/3 (e774e56) + Make reltool independent of the function escript:foldl/3 (26d609d) + Add functions to create and extract escripts (31b790b) + Add function zip:foldl/3 to iterate over zip archives (a20eb61) * ml/documentation_apostrophe_fix (appmon, erl_interface, erts, inets, kernel, megaco, otp, runtime_tools, snmp, stdlib, test_server, xmerl) (2010-03-15) 2 commits + Correct grammatical problems in conjunction with 'its' (fa6853c) + Change all incorrect occurrences of it's to its (bfd9a4f) ------------------------------------------------------------ [New topics] * bg/compiler (compiler, stdlib) (2010-03-12) 5 commits - beam_peep: Remove optimization already done by beam_dead (fc83f83) - beam_dead: Combine is_eq_exact instructions into select_val instructions (e2a19cf) - Evaluate is_record/3 at compile-time using type information (c8777da) - Evaluate element/2 at compile-time using type information (253e455) - erl_expand_records: Replace is_record() with matching (f479d82) * bg/compiler-inliner (compiler, otp) (2010-03-19) 8 commits - pmod_SUITE: Again test to inline parameterized modules (f4dc072) - compiler tests: Cope with missing args in function_clause for native code (e7c4f54) - compiler tests: Compile a few more modules with 'inline' (e3dac78) - Consistently rewrite an inlined function_clause exception to case_clause (bc0a526) - compiler tests: Test the 'inline' option better (9668443) - compiler: Suppress bs_context_to_binary/1 for a literal operand (0772d1e) - compiler: Fix binary matching bug in the inliner (1069279) - sys_core_inline: Don't generated multiple compiler_generated annos (df7a975) * bg/compiler-remove-r11-support (compiler, erts, otp, test_server) (2010-03-16) 7 commits - compiler: Don't support the no_binaries option (d179c15) - erts: Don't support the put_string/3 instruction (bba6073) - compiler: Don't support the no_constant_pool option (2dc5a17) - compiler: Don't support the r11 option (eeff53b) - test_server: Don't support communication with R11 nodes (2090739) - binary_SUITE: Don't test bit-level binary roundtrips with R11 nodes (4767bed) - erts: Test compatibility of funs with R12 instead of R11 (e188505) * hawk/wx-add-app-file (wx) (2010-03-15) 1 commit - Add app and appup files to the wx application (00832cc) * ms/epmd-error-checking (erts) (2010-03-20) 1 commit - Exit if an error occurs with the listening socket (a4882b4) * ms/pcre-compile-workspace-overrun (erts, stdlib) (2010-03-19) 2 commits - re_SUITE: Add pcre_compile_workspace_overflow/1 (3efa1b8) - Fix check for compile workspace overflow (272e106) * rb/ssl-fix-http-packet-decoding (ssl) (2010-03-16) 1 commit - Fix ssl to decode http packets in the same way as gen_tcp (9e7178f) * rd/erlang-eunit (tools) (2010-03-22) 1 commit - erlang-eunit.el: Require cl, as it is used (43ae537) ------------------------------------------------------------ [Stalled] * bg/safer-local_to_univ (erts) (2010-02-11) 1 commit - erl_time_sup.c: test for error return from mktime() (0f62f0b) We will not include this branch in R13B04 for two reasons: o We are not 100% sure that this change is harmless on all platforms in all timezones. o We have an idea how the underlying problem can be fixed in the calendar module (only) and I plan to try it out after the release. We will keep this branch in pu as a reminder. Action expected from: Bj??rn Gustavsson * db/tv_nthtail_fix (tv) (2009-12-01) 1 commit - Fix for tv which restarts while trying to open a table (abe0759) Since our long-term goal is to migrate from gs towards wx, maintaining the old gs applications has a low priority for the Erlang/OTP team. Therefore, we will accept patches that seem sound, but we are unlikely to spend much of our own time fixing bugs. The author of this topic branch has found the real reason for the problem, but uncovered additional issues. Action expected from: The topic author - to decide whether to include the topic branch (which is a workaround, but does eliminate the crash) or to wait for a better fix from himself or someone else with an interest to advance the topic. * jp/dependencies_makefile (compiler, erts) (2010-02-14) 3 commits - squash! eliminate dialyzer warning (434e2ca) - squash! fix snprintf for Windows (bf2708d) - Add dependencies Makefile generation to erlc(1) and compile(3) (7cbc437) Approved in principle by the OTP Technical Board; now awaits a closer review of the implementation. Action expected from: Bj??rn Gustavsson (the reviewer) * jv/update-rpccall-to-use-try (kernel) (2010-02-24) 1 commit . fix rpc handling of uncaught throws (3f21ed7) The follow test cases fall when this topic branch is included: compiler: inline_SUITE:barnes2/1 kernel: global_SUITE:simple_resolve/1 global_SUITE:simple_resolve2/1 rpc_SUITE:called_throws/1 Action expected from: Topic author or anyone else with an interest to advance the topic * kr/gs-browser (gs) (2010-02-10) 1 commit - Change lib/gs/src/tool_utils.erl to select multiple browsers other than Netscape (802d159) This topic branch introduces a new call to the deprecated regexp module. Action expected from: Topic author or anyone else with an interest to advance the topic ------------------------------------------------------------ [Cooking] * am/kernel-stops (kernel) (2010-02-21) 1 commit - Change restart behavior of network apps from permanent to transient (397343b) * am/net_kernel_catchall (kernel) (2010-02-20) 1 commit - Add catch all handle_call to net_kernel (77ee109) * au/crypto (crypto) (2010-03-01) 2 commits - Add missing docs for crypto:md4/1 (b869aef) - Add des_ecb_encrypt/2 and des_ecb_decrypt/2 to crypto module (544ed56) * bd/mnesia-activity-subscription (mnesia) (2010-02-12) 1 commit - Add mnesia activity subscription message (a564dd3) * bg/temp-hipe-fixes (compiler, hipe, kernel) (2010-03-15) 6 commits - Avoid crash by skipping compilation_SUITE:on_load/1 (234e13e) - Inline less aggressively for native-code compilation (9fcb48b) - Crudely fix return type for the lists:key{search,find,member}/3 (ef71597) - seq_trace_SUITE: Don't native-compile (2a81b1a) - Disable native code if on_load is used (3befa76) - andor_SUITE: Don't native-compile (97aa2da) This branch contains temporary workarounds to avoid failing test cases and is never intended to graduate. * dgud/wx-new-doxygen (wx) (2010-03-10) 4 commits - Added a non existing macro on windows. (3a4edf4) - Commit of the generated code with previous commit. (dec7bba) - Fixed code generation from newer doxygen versions. (556b7f0) - Whitespace fixes (e68047c) * dp/shell-line-editing (kernel, stdlib) (2010-03-05) 1 commit - Readline-style line edit history (91e912b) * er/ei-decode_msg (erl_interface) (2010-03-11) 1 commit - Add function to decode distribution header (864091a) * gl/jinterface-pom (jinterface, otp) (2010-02-15) 2 commits - Exclude jinterface build artifact from git (5acf5fa) - Add pom.xml for jinterface build (aa68190) * jf/run_erl-disable-flow-control (erts) (2010-03-05) 1 commit - Teach run_erl RUN_ERL_DISABLE_FLOWCNTRL for disabling flow control (d0775cd) * jl/windows-file-share-delete (erts) (2010-02-22) 1 commit - Windows: Open files with FILE_SHARE_DELETE to get closer to UNIX semantics (e5e5597) * jn/ic-docs-without-java (ic) (2010-03-07) 1 commit - Permit building and installing documentation without Java (2016a08) * ks/cleanups (debugger, docbuilder, gs, kernel, stdlib) (2010-03-21) 8 commits - stdlib: Add types and specs (6a60c05) - escript: Add more types to records (17655d0) - kernel: Clean up as suggested by tidier (23063a5) - debugger: Clean up as suggested by tidier (93e92a1) - docbuilder: Clean up as suggested by tidier (59d0c74) - gs: Clean up as suggested by tidier (02c9fa1) - stdlib: Use fun object instead of {M,F} tuple (12bc861) - ets: Cleanup as suggested by tidier (9a8bd8d) Was formerly called ks/cleanups-after-r13b04. * ks/export_type (compiler, dialyzer, hipe, kernel, stdlib, syntax_tools) (2010-03-22) 12 commits - Minor fix in a print message (67699af) - Add handling of unknown types (0a0e0f6) - Add declaration for exported types (6d06913) - Add types and specs; performed some cleanups also (7a01be9) - erl_scan: Add declarations for exported types (35ad335) - stdlib: Add declarations for exported types (85e206a) - hipe: Add declarations for exported types (79c10da) - compiler: Add declarations for exported types (2794783) - syntax_tools: Add declarations for exported types (faab830) - kernel: Add declaration for exported types (73b1b30) - Support -export_type() in dialyzer and erl_types (f173fee) - Add infrastructure for the -export_type() attribute (42c12b9) * mh/ssh_channel-init-no-catch (ssh) (2010-01-25) 1 commit - Remove pointless catch from ssh_channel:init/1. (bb7eaa5) * ra/include-public_key-in-ssh (ssh) (2010-01-20) 1 commit - Added public_key among ssh applications. (3a0c2c5) * sv/format_status_error_info (stdlib) (2010-02-28) 2 commits - Add support for the format_status callback to gen_event (fd9abcb) - Extend format_status for gen_server/gen_fsm termination error logging (3d06952) ------------------------------------------------------------ [Dropped] * am/restricted-port (erts) (2010-03-06) 5 commits . Add unit test for 'restricted' flag to port_SUITE (837fdb1) . Add enforcement of 'restricted' flag when using erlang:send (970aa8c) . Add checks to port functions to enforce 'restricted' flag (6f3ec5b) . Add 'restricted' option to opening ports (6a25251) . Add 'restricted' as atom (d54ba70) Dropped after decision from the OTP Technical Board. * am/spawn_rpc (kernel) (2010-03-07) 2 commits . Add filter to remote spawn (d84c5bb) . Add filter to rpc (4a621c0) Dropped after decision from the OTP Technical Board. * at/odbc_osx_fix (odbc) (2009-11-30) 1 commit . Workaround broken ODBC implementation on OSX 10.5 (88c71c9) The patch in itself is good. It solves the problem on Mac OS X (Leopard) in the only way that seems possible. Unfortunately, our test cases fail on Linux, and fixing it seems to require a backward-incompatible change to the API of the odbc module or ugly workarounds. Since the bug in the ODCB driver has been fixed in Mac OS X Snow Leopard and the topic author no longer have a use for the correction, the topic branch has been dropped. ________________________________________________________________ erlang-patches (at) erlang.org mailing list. See http://www.erlang.org/faq.html To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED -------------------------------------------------------------------------- NOTICE: If received in error, please destroy, and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. We may monitor and store emails to the extent permitted by applicable law. From Antonio.Musumeci@REDACTED Mon Mar 22 21:07:01 2010 From: Antonio.Musumeci@REDACTED (Musumeci, Antonio S) Date: Mon, 22 Mar 2010 16:07:01 -0400 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <4BA7B764.50200@gmail.com> References: <4BA7B764.50200@gmail.com> Message-ID: <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> > "Almost secure" is not any better than "definitely not secure". You > still cannot allow untrusted nodes to connect. (To reach the level > of complete security is very hard for a protocol that was not > designed for that in the beginning.) If this is true why support cookies at all? Why complicate the code with basic authentication when if you don't want two nodes possibly connecting to one another an individual just shouldn't start them in networking mode. Why have the allowed list? Or protections for ETS tables? Or keep around the "connected" process port info. -------------------------------------------------------------------------- NOTICE: If received in error, please destroy, and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. We may monitor and store emails to the extent permitted by applicable law. -------------------------------------------------------------------------- NOTICE: If received in error, please destroy, and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. We may monitor and store emails to the extent permitted by applicable law. From ulf.wiger@REDACTED Mon Mar 22 23:28:59 2010 From: ulf.wiger@REDACTED (Ulf Wiger) Date: Mon, 22 Mar 2010 23:28:59 +0100 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> References: <4BA7B764.50200@gmail.com> <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> Message-ID: <4BA7EF2B.2010707@erlang-solutions.com> Musumeci, Antonio S wrote: > >> "Almost secure" is not any better than "definitely not secure". You >> > still cannot allow untrusted nodes to connect. (To reach the >> level > of complete security is very hard for a protocol that was >> not designed for that in the beginning.) > > If this is true why support cookies at all? Why complicate the code > with basic authentication when if you don't want two nodes possibly > connecting to one another an individual just shouldn't start them in > networking mode. Why have the allowed list? Or protections for ETS > tables? Or keep around the "connected" process port info. One reason is that you can protect against different systems /accidentally/ connecting to each other. One example where that can be very handy is when doing "redundancy upgrades" of a system; while the two halves of a system are running mutually incompatible versions of the software, or e.g. different versions of the database schema, you really don't want them to connect. In that case, you can ensure that they don't by changing the cookie on one side. For this scenario, cookie-based authentication is perfectly adequate, since the nodes involved are known to be benign. There are many good reasons to maintain a basic level of security, even if it doesn't protect against malicious attacks. BR, Ulf W -- Ulf Wiger CTO, Erlang Solutions Ltd, formerly Erlang Training & Consulting Ltd http://www.erlang-solutions.com --------------------------------------------------- --------------------------------------------------- WE'VE CHANGED NAMES! Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD. www.erlang-solutions.com From bile@REDACTED Mon Mar 22 23:46:27 2010 From: bile@REDACTED (bile@REDACTED) Date: Mon, 22 Mar 2010 18:46:27 -0400 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <4BA7EF2B.2010707@erlang-solutions.com> References: <4BA7B764.50200@gmail.com> <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> <4BA7EF2B.2010707@erlang-solutions.com> Message-ID: <20100322184627.39f37bc7@otis> I understand that completely. It's just that the FAQ, which is likely in response to my patches, takes a rather simple view of things. There are several things that are security related in Erlang and aren't very well developed so this claim that security should be all or nothing seems rather artificial and unfortunate. There are several simple, noninvasive changes which would provide some amount of sandboxing without affecting existing behavior and there has been nothing but resistance. Security is always measured in degrees and relative to other aspects of the system. If Erlang is to gain ground as a distributed platform it would seem to me that security should be addressed. Otherwise its distributedness should take a backseat to it's other features as most firms I've ever dealt with simply couldn't allow the level of openness it creates. On Mon, 22 Mar 2010 23:28:59 +0100 Ulf Wiger wrote: > Musumeci, Antonio S wrote: > > > >> "Almost secure" is not any better than "definitely not secure". You > >> > still cannot allow untrusted nodes to connect. (To reach the > >> level > of complete security is very hard for a protocol that was > >> not designed for that in the beginning.) > > > > If this is true why support cookies at all? Why complicate the code > > with basic authentication when if you don't want two nodes possibly > > connecting to one another an individual just shouldn't start them in > > networking mode. Why have the allowed list? Or protections for ETS > > tables? Or keep around the "connected" process port info. > > One reason is that you can protect against different systems > /accidentally/ connecting to each other. One example where that can > be very handy is when doing "redundancy upgrades" of a system; > while the two halves of a system are running mutually incompatible > versions of the software, or e.g. different versions of the database > schema, you really don't want them to connect. In that case, you > can ensure that they don't by changing the cookie on one side. > For this scenario, cookie-based authentication is perfectly adequate, > since the nodes involved are known to be benign. > > There are many good reasons to maintain a basic level of security, > even if it doesn't protect against malicious attacks. > > BR, > Ulf W From ulf.wiger@REDACTED Tue Mar 23 01:18:29 2010 From: ulf.wiger@REDACTED (Ulf Wiger) Date: Tue, 23 Mar 2010 01:18:29 +0100 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <20100322184627.39f37bc7@otis> References: <4BA7B764.50200@gmail.com> <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> <4BA7EF2B.2010707@erlang-solutions.com> <20100322184627.39f37bc7@otis> Message-ID: <4BA808D5.1060008@erlang-solutions.com> bile@REDACTED wrote: > There are several simple, > noninvasive changes which would provide some amount of sandboxing > without affecting existing behavior and there has been nothing but > resistance. I don't know about that, but some of the suggestions have actually affected compatibility, so they haven't actually been non-invasive. There was actually a pretty ambitious research project on providing proper sandboxing in Erlang: "Safe Erlang" (http://www.unsw.adfa.edu.au/~lpb/research/sserl/). The project had some good ideas, but eventually didn't result in anything practically useful. My EUC06 presentation title "Safe Erlang Reloaded", about Erlhive, jokingly referred to that research. Erlhive was an attempt to provide a kind of Erlang sandbox for multiuser Web applications. Some of the ideas in Erlhive inspired Tony Rogvall to experiment with quotas in the runtime system. So there have been attempts to address the security aspects of Erlang, but one should realise that the acceptance threshold for changes to core parts of Erlang is pretty high. > If Erlang is to gain ground as a > distributed platform it would seem to me that security should be > addressed. Otherwise its distributedness should take a backseat to it's > other features as most firms I've ever dealt with simply couldn't allow > the level of openness it creates. But Erlang also makes socket communication easier, so building a distributed system based on user-level TCP-like channes is pretty straightforward, if you are not willing to suffer the openness that Distributed Erlang creates. Distributed Erlang was designed for embedded clusters, where each member of the cluster is implicitly trusted, and the interconnects are reliable (often redundant) unencrypted high-speed links. One of my old projects, CCviewer (http://forum.trapexit.org/viewtopic.php?p=30161#30161), a web-based source code browser, sported a loosely coupled cross-reference database, where different CCviewer web servers could query each other for call sites to a given function. The queries were done using custom Erlang-RPC MIME types, where an MFA was simply serialized and UUencoded, and unpacked and executed on the other side. It was trivial to write, and security was in part achieved by relying on the normal HTTP authentication, and in part by supporting only the queries understood by CCviewer. So writing secure distributed apps in Erlang is not that hard. Retrofitting a sandbox concept onto Erlang is not trivial, and while it might be possible to achieve slightly better security with some minor changes, I think it's reasonable to resist that kind of change until those changes can be shown to be part of a credible security roadmap, or truly non-invasive and useful in their own right. Once accepted, features tend to be very hard to get rid of, even if not formally supported (c.f. the recent discussions about parameterized modules in Erlang.) A possible analogy is the record syntax in Erlang, which was added as a non-invasive change, and which did offer a significant improvement (although even that has sometimes been questioned) over the previous situation. The Erlang record syntax has been heavily criticized through the years, and several alternatives have been proposed. The OTP team hasn't yet implemented any of the alternatives, not because they are themselves deeply in love with the current syntax, or too proud to change, but rather because they would like to get it right next time. BR, Ulf W -- Ulf Wiger CTO, Erlang Solutions Ltd, formerly Erlang Training & Consulting Ltd http://www.erlang-solutions.com --------------------------------------------------- --------------------------------------------------- WE'VE CHANGED NAMES! Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD. www.erlang-solutions.com From erlangy@REDACTED Tue Mar 23 02:35:04 2010 From: erlangy@REDACTED (Michael McDaniel) Date: Mon, 22 Mar 2010 18:35:04 -0700 Subject: [patch] httpd_sup.erl Message-ID: <20100323013504.GB18104@delora.autosys.us> Problem: Starting inets httpd service using proplist_file results in error as follows. Eshell V5.7.4 (abort with ^G) 1> inets:start(). ok 2> inets:start(httpd, [{proplist_file, "priv/conf/httpd.conf"}]). ** exception error: no try clause matching {ok,[{port,8888}, {server_name,"httpd_test"}, ... in function httpd_sup:httpd_config/1 in call from httpd_sup:start_child/1 in call from inets:call_service/3 ------------- Patch to httpd_sup.erl : [block]$ cat httpd_sup.erl.mcdaniel.patch --- /usr/local/lib/erlang/lib/inets-5.2/src/httpd_sup.erl.orig 2010-03-22 16:32:38.000000000 -0700 +++ /usr/local/lib/erlang/lib/inets-5.2/src/httpd_sup.erl 2010-03-22 16:32:55.000000000 -0700 @@ -148,7 +148,7 @@ httpd_conf:validate_properties(Config); File -> try file:consult(File) of - {ok, [PropList]} -> + {ok, PropList} -> httpd_conf:validate_properties(PropList) catch exit:_ -> ------------- The above patch corrects the error. Patch was created with diff -u httpd_sup.erl.orig httpd_sup.erl > httpd_sup.erl.mcdaniel.patch ~Michael -- Michael McDaniel Portland, Oregon, USA http://trip.autosys.us From bile@REDACTED Tue Mar 23 01:53:05 2010 From: bile@REDACTED (bile@REDACTED) Date: Mon, 22 Mar 2010 20:53:05 -0400 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <4BA808D5.1060008@erlang-solutions.com> References: <4BA7B764.50200@gmail.com> <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> <4BA7EF2B.2010707@erlang-solutions.com> <20100322184627.39f37bc7@otis> <4BA808D5.1060008@erlang-solutions.com> Message-ID: <20100322205305.637639c8@otis> On Tue, 23 Mar 2010 01:18:29 +0100 Ulf Wiger wrote: > bile@REDACTED wrote: > > There are several simple, > > noninvasive changes which would provide some amount of sandboxing > > without affecting existing behavior and there has been nothing but > > resistance. > > I don't know about that, but some of the suggestions have actually > affected compatibility, so they haven't actually been non-invasive. The restricted ports did not affect compatibility and the second version of the rpc and spawn filters did not either. By default everything worked exactly as now. > > But Erlang also makes socket communication easier, so building a > distributed system based on user-level TCP-like channes is pretty > straightforward, if you are not willing to suffer the openness > that Distributed Erlang creates. Distributed Erlang was designed > for embedded clusters, where each member of the cluster is > implicitly trusted, and the interconnects are reliable (often > redundant) unencrypted high-speed links. Easier in what way? The core platform isn't extensible. Why can't the platform be engineered so that the linking of nodes is abstracted such that builtin features are still usable? There is some abstraction in net_kernel but it's not advertised AFAICT. As a new user you can open appmon, pman or tv and see across nodes... but if you do any serious work that all goes away because most places simply can't afford a completely open platform. Even allowing arbitrary erlang processes access to a port is questionable in my environment. Hence the restricted patch. Completely trusted clusters are just not something that exists in many environments and it just forces individuals to have to recreate the wheel over and over. If I could hook into the message passing and linking code standard libraries could be developed to provide for cookie like authentication, kerberos, etc. and all the native distributed features would still function. From ulf.wiger@REDACTED Tue Mar 23 05:10:53 2010 From: ulf.wiger@REDACTED (Ulf Wiger) Date: Tue, 23 Mar 2010 05:10:53 +0100 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <20100322205305.637639c8@otis> References: <4BA7B764.50200@gmail.com> <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> <4BA7EF2B.2010707@erlang-solutions.com> <20100322184627.39f37bc7@otis> <4BA808D5.1060008@erlang-solutions.com> <20100322205305.637639c8@otis> Message-ID: <4BA83F4D.2090205@erlang-solutions.com> bile@REDACTED wrote: > On Tue, 23 Mar 2010 01:18:29 +0100 > Ulf Wiger wrote: > >> But Erlang also makes socket communication easier, so building a >> distributed system based on user-level TCP-like channes is pretty >> straightforward, [...] > > Easier in what way? I meant easier than in most other languages. > The core platform isn't extensible. Why can't the > platform be engineered so that the linking of nodes is abstracted such > that builtin features are still usable? There is some abstraction in > net_kernel but it's not advertised AFAICT. As a new user you can open > appmon, pman or tv and see across nodes... but if you do any serious > work that all goes away because most places simply can't afford a > completely open platform. Even allowing arbitrary erlang processes > access to a port is questionable in my environment. Hence the > restricted patch. Completely trusted clusters are just not something > that exists in many environments and it just forces individuals to have > to recreate the wheel over and over. If I could hook into the message > passing and linking code standard libraries could be developed to > provide for cookie like authentication, kerberos, etc. and all the > native distributed features would still function. This prompted me to check whether the phrase "kicking in an open door" is viable in English as well as in Swedish. It seems to be. No one argues that better security wouldn't be very useful. The question is how to get there, and exactly what gradual changes would be the right place to start. To repeat, the bar for changing the semantics of Distributed Erlang and the rpc libraries is pretty high, even if it is for a good cause. BR, Ulf W -- Ulf Wiger CTO, Erlang Solutions Ltd, formerly Erlang Training & Consulting Ltd http://www.erlang-solutions.com --------------------------------------------------- --------------------------------------------------- WE'VE CHANGED NAMES! Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD. www.erlang-solutions.com From nc@REDACTED Tue Mar 23 09:54:44 2010 From: nc@REDACTED (Nicolas Charpentier) Date: Tue, 23 Mar 2010 04:54:44 -0400 Subject: [erlang-patches] [patch] httpd_sup.erl In-Reply-To: <20100323013504.GB18104@delora.autosys.us> References: <20100323013504.GB18104@delora.autosys.us> Message-ID: <1bac14c7cc938d5e3423c76666adfafd.squirrel@www.geekisp.com> Hi I'm not sure that there was any problem in OTP. According to the documentation (http://www.erlang.org/doc/man/httpd.html) the configuration file must be an erlang list containing tuples {Option, Value}. Here is a correct configuration file: $ cat test_ok.conf [{port,8080},{server_name,"httpd_test"}]. $ erl Erlang (BEAM) emulator version 5.5.5 [source] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.5.5 (abort with ^G) 1> file:consult("test_ok.conf"). {ok,[[{port,8080},{server_name,"httpd_test"}]]} Reading your patch, I think that your configuration file looks like: $ cat test_bad.conf {port,8080}. {server_name, "httpd_test"}. $ erl Erlang (BEAM) emulator version 5.5.5 [source] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.5.5 (abort with ^G) 1>file:consult("test_bad.conf"). {ok,[{port,8080},{server_name,"httpd_test"}]} Regards, Nicolas Charpentier > > Problem: Starting inets httpd service using proplist_file results in > error as follows. > > Eshell V5.7.4 (abort with ^G) > 1> inets:start(). > ok > 2> inets:start(httpd, [{proplist_file, "priv/conf/httpd.conf"}]). > ** exception error: no try clause matching > {ok,[{port,8888}, > {server_name,"httpd_test"}, > > ... > > in function httpd_sup:httpd_config/1 > in call from httpd_sup:start_child/1 > in call from inets:call_service/3 > > ------------- > > Patch to httpd_sup.erl : > > [block]$ cat httpd_sup.erl.mcdaniel.patch > --- /usr/local/lib/erlang/lib/inets-5.2/src/httpd_sup.erl.orig 2010-03-22 > 16:32:38.000000000 -0700 > +++ /usr/local/lib/erlang/lib/inets-5.2/src/httpd_sup.erl 2010-03-22 > 16:32:55.000000000 -0700 > @@ -148,7 +148,7 @@ > httpd_conf:validate_properties(Config); > File -> > try file:consult(File) of > - {ok, [PropList]} -> > + {ok, PropList} -> > httpd_conf:validate_properties(PropList) > catch > exit:_ -> > > ------------- > > The above patch corrects the error. Patch was created with > > diff -u httpd_sup.erl.orig httpd_sup.erl > > httpd_sup.erl.mcdaniel.patch > > > ~Michael > > -- > Michael McDaniel > Portland, Oregon, USA > http://trip.autosys.us > > ________________________________________________________________ > erlang-patches (at) erlang.org mailing list. > See http://www.erlang.org/faq.html > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > > From Antonio.Musumeci@REDACTED Tue Mar 23 12:47:46 2010 From: Antonio.Musumeci@REDACTED (Musumeci, Antonio S) Date: Tue, 23 Mar 2010 07:47:46 -0400 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <4BA83F4D.2090205@erlang-solutions.com> References: <4BA7B764.50200@gmail.com><01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com><4BA7EF2B.2010707@erlang-solutions.com> <20100322184627.39f37bc7@otis><4BA808D5.1060008@erlang-solutions.com> <20100322205305.637639c8@otis> <4BA83F4D.2090205@erlang-solutions.com> Message-ID: <01489E237C2C8F45AF7898E135F48E8002202761CD@NYWEXMBX2129.msad.ms.com> > This prompted me to check whether the phrase "kicking in an open > door" is viable in English as well as in Swedish. It seems to be. > No one argues that better security wouldn't be very useful. The > question is how to get there, and exactly what gradual changes > would be the right place to start. To repeat, the bar for changing > the semantics of Distributed Erlang and the rpc libraries is pretty > high, even if it is for a good cause. >From my perspective as a new user to Erlang there just seems to be no real care for security. Going back over 10 years there are 3 or 4 papers written on improving security in different sections of the platform and not only were none of the features added as far as I can tell but the implementations unfortunately aren't even available. I scan through a decade of emails on the mailing lists and you see the same questions asked regarding sandboxing the VM and providing security measures to the distributed parts but the they always get the "do it outside of erlang" answer which as I mentioned raises the bar to entry, duplicates effort and limits the native feature set. Lots of modern platforms provide pluggable security models and sandboxing abilities... I don't see why Erlang shouldn't. Perhaps there isn't as much resistance to change as I'm encountering but up to this point I've not seen any real discussion of the proposals I or others have made. Rather than a why restricted ports was rejected... I get simply its rejected. -------------------------------------------------------------------------- NOTICE: If received in error, please destroy, and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. We may monitor and store emails to the extent permitted by applicable law. From max.lapshin@REDACTED Tue Mar 23 12:56:49 2010 From: max.lapshin@REDACTED (Max Lapshin) Date: Tue, 23 Mar 2010 14:56:49 +0300 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <01489E237C2C8F45AF7898E135F48E8002202761CD@NYWEXMBX2129.msad.ms.com> References: <4BA7B764.50200@gmail.com> <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> <4BA7EF2B.2010707@erlang-solutions.com> <20100322184627.39f37bc7@otis> <4BA808D5.1060008@erlang-solutions.com> <20100322205305.637639c8@otis> <4BA83F4D.2090205@erlang-solutions.com> <01489E237C2C8F45AF7898E135F48E8002202761CD@NYWEXMBX2129.msad.ms.com> Message-ID: I really don't understand what is the problem to export on some TCP port custom server, that read {packet, 4} messages, decode them via binary_to_term and takes all logic of authentication and executing commands. The only problem is lack of function binary_to_term_with_existing_atom From dennis.novikov@REDACTED Tue Mar 23 13:03:59 2010 From: dennis.novikov@REDACTED (Dennis Novikov) Date: Tue, 23 Mar 2010 14:03:59 +0200 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: References: <4BA7B764.50200@gmail.com> <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> <4BA7EF2B.2010707@erlang-solutions.com> <20100322184627.39f37bc7@otis> <4BA808D5.1060008@erlang-solutions.com> <20100322205305.637639c8@otis> <4BA83F4D.2090205@erlang-solutions.com> <01489E237C2C8F45AF7898E135F48E8002202761CD@NYWEXMBX2129.msad.ms.com> Message-ID: <8c412f0c1003230503q16fb07bft79fadac8a0c39ac8@mail.gmail.com> On Tue, Mar 23, 2010 at 1:56 PM, Max Lapshin wrote: > I really don't understand what is the problem to export on some TCP > port custom server, that read {packet, 4} messages, > decode them via binary_to_term and takes all logic of authentication > and executing commands. > > The only problem is lack of function binary_to_term_with_existing_atom Only if you have to stick with R12. R13 has erlang:binary_to_term(Binary, [safe]) exactly for that purpose. -- WBR, DN From max.lapshin@REDACTED Tue Mar 23 13:06:15 2010 From: max.lapshin@REDACTED (Max Lapshin) Date: Tue, 23 Mar 2010 15:06:15 +0300 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <8c412f0c1003230503q16fb07bft79fadac8a0c39ac8@mail.gmail.com> References: <4BA7B764.50200@gmail.com> <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> <4BA7EF2B.2010707@erlang-solutions.com> <20100322184627.39f37bc7@otis> <4BA808D5.1060008@erlang-solutions.com> <20100322205305.637639c8@otis> <4BA83F4D.2090205@erlang-solutions.com> <01489E237C2C8F45AF7898E135F48E8002202761CD@NYWEXMBX2129.msad.ms.com> <8c412f0c1003230503q16fb07bft79fadac8a0c39ac8@mail.gmail.com> Message-ID: On Tue, Mar 23, 2010 at 3:03 PM, Dennis Novikov wrote: > > Only if you have to stick with R12. R13 has > erlang:binary_to_term(Binary, [safe]) exactly for that purpose. > So, there are no problems. I don't understand how is it possible for OTP team to design All Possible Cases of Security =) They've gave us all instruments for it. From Antonio.Musumeci@REDACTED Tue Mar 23 13:18:52 2010 From: Antonio.Musumeci@REDACTED (Musumeci, Antonio S) Date: Tue, 23 Mar 2010 08:18:52 -0400 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: References: <4BA7B764.50200@gmail.com> <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> <4BA7EF2B.2010707@erlang-solutions.com> <20100322184627.39f37bc7@otis> <4BA808D5.1060008@erlang-solutions.com> <20100322205305.637639c8@otis> <4BA83F4D.2090205@erlang-solutions.com> <01489E237C2C8F45AF7898E135F48E8002202761CD@NYWEXMBX2129.msad.ms.com> <8c412f0c1003230503q16fb07bft79fadac8a0c39ac8@mail.gmail.com> Message-ID: <01489E237C2C8F45AF7898E135F48E8002202761DB@NYWEXMBX2129.msad.ms.com> No they haven't. Not if you want to actually utilize the advertised features of the platform. Providing a means to communicate outside the VM and then serialize terms is hardly "all the instruments" needed to secure a platform. The former is standard fair in languages and the latter can be done independently. 1) Having to recreate the transport every time for every developer is wasteful. Why shouldn't there be a pluggable security model for the transport layer between nodes that would allow standard libraries to be shared? Knowing that the node you are talking with is actually who you believe it is surely useful and would need to be a first step in any further security developments around message passing. 2) It becomes impossible to utilize the distributed functionality built into the platform. From visualization tools to all the node based libraries. It turns the platform into a husk of what it was IMO. The language is nice as is the concurrency but it also advertises itself as a distributed platform. Well most distributed platforms I've worked with provide more than secret keys to a completely open platform. 3) I'm simply not talking about RPC in some specific case but general sandboxing of the platform. Not leaving holes open that aren't desired. Not allowing any ol' process to communicate with a port. Not allowing anyone to just rpc or spawn os:cmd("rm -rf /"). Some features and additions perfectly fit the NIF, Port, Cnode models. Others don't. -----Original Message----- From: Max Lapshin [mailto:max.lapshin@REDACTED] Sent: Tuesday, March 23, 2010 8:06 AM To: Dennis Novikov Cc: Musumeci, Antonio S (IT); Ulf Wiger; erlang patches Subject: Re: [erlang-patches] What's cooking in erlang/otp (2010-03-22) On Tue, Mar 23, 2010 at 3:03 PM, Dennis Novikov wrote: > > Only if you have to stick with R12. R13 has > erlang:binary_to_term(Binary, [safe]) exactly for that purpose. > So, there are no problems. I don't understand how is it possible for OTP team to design All Possible Cases of Security =) They've gave us all instruments for it. -------------------------------------------------------------------------- NOTICE: If received in error, please destroy, and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. We may monitor and store emails to the extent permitted by applicable law. From john-mark.bell@REDACTED Tue Mar 23 13:39:59 2010 From: john-mark.bell@REDACTED (John-Mark Bell) Date: Tue, 23 Mar 2010 12:39:59 +0000 Subject: Distribution over TCP/IPv6 Message-ID: <1269347999.2322.12.camel@ukdev-lin-jmb> git fetch git://github.com/jmb202/otp.git inet6_dist These changes make distribution of Erlang nodes over IPv6 work correctly. Previously, EPMD would not compile with IPv6 support enabled (aside: I can see no way to enable this support from the OTP build system -- locally, I've just defined EPMD6 in epmd_int.h) The inet6_tcp_dist module seemed to be an incomplete modification of the inet_tcp_dist module, resulting in sockets being closed immediately by the kernel. It now uses inet6 functionality throughout. Finally, I've added support for IPv6 addresses in long host names, as IPv4 addresses work correctly in this scenario (perhaps as an unexpected side-effect of the FQDN-detection logic?) I have tested these changes locally, and they work as I expect them to. Thanks, John-Mark. -- TANDBERG Telecom UK Ltd Registered in England and Wales No: 3390345. Registered address: Unit 2 Pine Trees, Chertsey Lane, Staines, Middlesex, TW18 3HR. From michael.santos@REDACTED Tue Mar 23 13:45:32 2010 From: michael.santos@REDACTED (Michael Santos) Date: Tue, 23 Mar 2010 08:45:32 -0400 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <4BA7B764.50200@gmail.com> References: <4BA7B764.50200@gmail.com> Message-ID: <20100323124532.GA30923@ecn.lan> On Mon, Mar 22, 2010 at 07:31:00PM +0100, Bj?rn Gustavsson wrote: > * ms/pcre-compile-workspace-overrun (erts, stdlib) (2010-03-19) 2 commits > - re_SUITE: Add pcre_compile_workspace_overflow/1 (3efa1b8) Just a warning, this test may fail due to what appears to be an unrelated bug. At least on Mac OS X, an SMP enabled beam will crash if N=612. pcre_compile:compile_branch() is being called with arguments set to NULL. The test is ok with a non-SMP beam and an SMP beam on Solaris. From erlangy@REDACTED Tue Mar 23 17:18:48 2010 From: erlangy@REDACTED (Michael McDaniel) Date: Tue, 23 Mar 2010 09:18:48 -0700 Subject: [erlang-patches] [patch] httpd_sup.erl In-Reply-To: <1bac14c7cc938d5e3423c76666adfafd.squirrel@www.geekisp.com> References: <20100323013504.GB18104@delora.autosys.us> <1bac14c7cc938d5e3423c76666adfafd.squirrel@www.geekisp.com> Message-ID: <20100323161848.GF18104@delora.autosys.us> Thank you, Nicolas. I agree (slapping forehead). My error and no OTP code problem here. Apologies for the noise and distraction. ~Michael On Tue, Mar 23, 2010 at 04:54:44AM -0400, Nicolas Charpentier wrote: > Hi > > I'm not sure that there was any problem in OTP. > According to the documentation (http://www.erlang.org/doc/man/httpd.html) > the configuration file must be an erlang list containing tuples {Option, > Value}. > > Here is a correct configuration file: > > $ cat test_ok.conf > [{port,8080},{server_name,"httpd_test"}]. > $ erl > Erlang (BEAM) emulator version 5.5.5 [source] [async-threads:0] [hipe] > [kernel-poll:false] > > Eshell V5.5.5 (abort with ^G) > 1> file:consult("test_ok.conf"). > {ok,[[{port,8080},{server_name,"httpd_test"}]]} > > > Reading your patch, I think that your configuration file looks like: > $ cat test_bad.conf > {port,8080}. > {server_name, "httpd_test"}. > $ erl > Erlang (BEAM) emulator version 5.5.5 [source] [async-threads:0] [hipe] > [kernel-poll:false] > > Eshell V5.5.5 (abort with ^G) > 1>file:consult("test_bad.conf"). > {ok,[{port,8080},{server_name,"httpd_test"}]} > > > > Regards, > Nicolas Charpentier > > > > > Problem: Starting inets httpd service using proplist_file results in > > error as follows. > > > > Eshell V5.7.4 (abort with ^G) > > 1> inets:start(). > > ok > > 2> inets:start(httpd, [{proplist_file, "priv/conf/httpd.conf"}]). > > ** exception error: no try clause matching > > {ok,[{port,8888}, > > {server_name,"httpd_test"}, > > > > ... > > > > in function httpd_sup:httpd_config/1 > > in call from httpd_sup:start_child/1 > > in call from inets:call_service/3 > > > > ------------- > > > > Patch to httpd_sup.erl : > > > > [block]$ cat httpd_sup.erl.mcdaniel.patch > > --- /usr/local/lib/erlang/lib/inets-5.2/src/httpd_sup.erl.orig 2010-03-22 > > 16:32:38.000000000 -0700 > > +++ /usr/local/lib/erlang/lib/inets-5.2/src/httpd_sup.erl 2010-03-22 > > 16:32:55.000000000 -0700 > > @@ -148,7 +148,7 @@ > > httpd_conf:validate_properties(Config); > > File -> > > try file:consult(File) of > > - {ok, [PropList]} -> > > + {ok, PropList} -> > > httpd_conf:validate_properties(PropList) > > catch > > exit:_ -> > > > > ------------- > > > > The above patch corrects the error. Patch was created with > > > > diff -u httpd_sup.erl.orig httpd_sup.erl > > > httpd_sup.erl.mcdaniel.patch > > > > > > ~Michael > > > > -- > > Michael McDaniel > > Portland, Oregon, USA > > http://trip.autosys.us > > > > ________________________________________________________________ > > erlang-patches (at) erlang.org mailing list. > > See http://www.erlang.org/faq.html > > To unsubscribe; mailto:erlang-patches-unsubscribe@REDACTED > > > > From bgustavsson@REDACTED Tue Mar 23 18:03:33 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Tue, 23 Mar 2010 18:03:33 +0100 Subject: [erlang-patches] Distribution over TCP/IPv6 In-Reply-To: <1269347999.2322.12.camel@ukdev-lin-jmb> References: <1269347999.2322.12.camel@ukdev-lin-jmb> Message-ID: <6672d0161003231003w78bbc8f9he61f5b3e7e909c96@mail.gmail.com> On Tue, Mar 23, 2010 at 1:39 PM, John-Mark Bell wrote: > git fetch git://github.com/jmb202/otp.git inet6_dist Thanks! Included in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From kagato@REDACTED Tue Mar 23 21:29:25 2010 From: kagato@REDACTED (Jayson Vantuyl) Date: Tue, 23 Mar 2010 13:29:25 -0700 Subject: [erlang-patches] What's cooking in erlang/otp (2010-03-22) In-Reply-To: <01489E237C2C8F45AF7898E135F48E8002202761DB@NYWEXMBX2129.msad.ms.com> References: <4BA7B764.50200@gmail.com> <01489E237C2C8F45AF7898E135F48E80022027614F@NYWEXMBX2129.msad.ms.com> <4BA7EF2B.2010707@erlang-solutions.com> <20100322184627.39f37bc7@otis> <4BA808D5.1060008@erlang-solutions.com> <20100322205305.637639c8@otis> <4BA83F4D.2090205@erlang-solutions.com> <01489E237C2C8F45AF7898E135F48E8002202761CD@NYWEXMBX2129.msad.ms.com> <8c412f0c1003230503q16fb07bft79fadac8a0c39ac8@mail.gmail.com> <01489E237C2C8F45AF7898E135F48E8002202761DB@NYWEXMBX2129.msad.ms.com> Message-ID: > No they haven't. Not if you want to actually utilize the advertised > features If you'd like to spearhead the effort, feel free. The current Distributed Erlang implementation uses binary_to_term internally, so you can probably start by setting the safe flag there. Your first problem is that node names and many atoms are embedded in some unique structures (pids, refs, funs), so you'll have to create an infrastructure to allocate them when nodes are trusted, or the safety won't be too useful. Then you can start securing things like Rex and RPC. As for "advertised features", I question that entire line of reasoning. Of course Erlang doesn't give you the tools to utilize all of the advertised features PLUS your additional feature. The guarantees of advertising end when you add requirements. > of the platform. Providing a means to communicate outside the VM and > then serialize terms is hardly "all the instruments" needed to > secure a platform. That's all that the current distribution is based on. Of course, a new distribution module is not trivial, but it's that way for a reason. > The former is standard fair in languages and the latter can be done > independently. That's a bold claim. Name these languages, so I may ignite your strawman. > 1) Having to recreate the transport every time for every developer > is wasteful. Why shouldn't there be a pluggable security model for > the transport layer between nodes that would allow standard > libraries to be shared? There should be such a thing. We'd all love it. Your disagreement is that it should integrate with the significant toolset that already exists. That would be awesome, but it's probably US$250k of programmer time to implement and integrate it. That means it will take a while. > Knowing that the node you are talking with is actually who you > believe it is surely useful and would need to be a first step in any > further security developments around message passing. And what of the endpoints inside (pids)? Host-based security doesn't have the strongest track record. > 2) It becomes impossible to utilize the distributed functionality > built into the platform. From visualization tools to all the node > based libraries. It turns the platform into a husk of what it was > IMO. The language is nice as is the concurrency but it also > advertises itself as a distributed platform. Well most distributed > platforms I've worked with provide more than secret keys to a > completely open platform. Names please. Not that I don't believe you, but we can't code on generalities. > 3) I'm simply not talking about RPC in some specific case but > general sandboxing of the platform. Not leaving holes open that > aren't desired. Not allowing any ol' process to communicate with a > port. Not allowing anyone to just rpc or spawn os:cmd("rm -rf /"). > Some features and additions perfectly fit the NIF, Port, Cnode > models. Others don't. I recently added the safe binary_to_term patch. One flag check turned 10 microseconds into 16. Messaging in Erlang is a fast path for a reason. Understand, then, that what seems like reasonable changes could very well cut messaging speed in half. In addition, provisioning a cluster right now is one of the few, lightweight deploy tasks that Erlang has. Generating certs is a whole new level of trouble. I'm not saying that security doesn't have value, but the costs of your model are: * slowing down a critical path * a large time investment * significant deployment complexity * significant maintainence load * a new class of security errors to bite all legacy code * backwards-incompatible changes to distribution The port + {packet,4} + binary_to_term method takes approximately 20 lines of actual code, supervises very well, and funnels quite well into a pattern match. Additionally, almost all security is application-specific. I often prefer explicit security (i.e. flowing through a pattern match + validation code) than implicity security (in-image messaging isolation) precisely because it eases managing the security profile. -- Jayson From tuncer.ayaz@REDACTED Fri Mar 26 00:05:16 2010 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Fri, 26 Mar 2010 00:05:16 +0100 Subject: Support nested record field access without parentheses Message-ID: <4ac8254d1003251605g71326a67j1b508c4778d96286@mail.gmail.com> There was no public reply to the original patch by YAMASHINO Hio and therefore no public objection. http://www.erlang.org/pipermail/erlang-patches/2007-June/000182.html http://fleur.hio.jp/pub/erlang/record2.patch I have ported the patch to the current tree and extended record_SUITE.erl to test the change. This is an RFC PATCH seeking a review from the OTP Technical Board. Is this something that can be accepted upstream or would it break compatibility in ways I am not aware of? Or is it an undesirable change of too little benefit? git fetch git://github.com/tuncer/otp.git nested_records From bgustavsson@REDACTED Fri Mar 26 08:33:45 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Fri, 26 Mar 2010 08:33:45 +0100 Subject: [erlang-patches] Support nested record field access without parentheses In-Reply-To: <4ac8254d1003251605g71326a67j1b508c4778d96286@mail.gmail.com> References: <4ac8254d1003251605g71326a67j1b508c4778d96286@mail.gmail.com> Message-ID: <6672d0161003260033s21e84603yfd10eeeb3b61ba10@mail.gmail.com> On Fri, Mar 26, 2010 at 12:05 AM, Tuncer Ayaz wrote: > There was no public reply to the original patch by YAMASHINO Hio and > therefore no public objection. > > http://www.erlang.org/pipermail/erlang-patches/2007-June/000182.html > http://fleur.hio.jp/pub/erlang/record2.patch > > I have ported the patch to the current tree and extended > record_SUITE.erl to test the change. > > This is an RFC PATCH seeking a review from the OTP Technical Board. Thanks! Will include in 'pu'. It will be reviewed by the OTP Technical Board. (If it passes the review, we also expect updated documentation before we will graduate the branch.) To help the review, we would grateful for any input on this proposal (either for or against). > Is this something that can be accepted upstream or would it break > compatibility in ways I am not aware of? > > Or is it an undesirable change of too little benefit? > -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From thomasl_erlang@REDACTED Fri Mar 26 10:35:36 2010 From: thomasl_erlang@REDACTED (Thomas Lindgren) Date: Fri, 26 Mar 2010 02:35:36 -0700 (PDT) Subject: [erlang-patches] Support nested record field access without parentheses In-Reply-To: <6672d0161003260033s21e84603yfd10eeeb3b61ba10@mail.gmail.com> References: <4ac8254d1003251605g71326a67j1b508c4778d96286@mail.gmail.com> <6672d0161003260033s21e84603yfd10eeeb3b61ba10@mail.gmail.com> Message-ID: <23624.74190.qm@web111412.mail.gq1.yahoo.com> ----- Original Message ---- > From: Bj?rn Gustavsson > > http://www.erlang.org/pipermail/erlang-patches/2007-June/000182.html > > To help the review, we would grateful for any input on this proposal (either for or against). It seems backwards compatible, can be transformed into existing syntax but looks much cleaner. So I like it. Best, Thomas From magnus@REDACTED Fri Mar 26 13:36:11 2010 From: magnus@REDACTED (Magnus Henoch) Date: Fri, 26 Mar 2010 12:36:11 +0000 Subject: Spelling fix: s/loose/lose/ Message-ID: <847hoz1cqs.fsf@linux-b2a3.site> One of my pet peeves is when people spell "lose" as "loose". ("Lose" means "not win", but "loose" means "not tight".) Hence this patch: git fetch git://github.com/legoscia/otp.git doc-loose-lose See the coloured diff at: http://github.com/legoscia/otp/commit/e147300e1514d8cfd134be7b0346bbb228957c68 -- Magnus Henoch, magnus@REDACTED Erlang Solutions http://www.erlang-solutions.com/ --------------------------------------------------- --------------------------------------------------- WE'VE CHANGED NAMES! Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD. www.erlang-solutions.com From magnus@REDACTED Fri Mar 26 13:59:06 2010 From: magnus@REDACTED (Magnus Henoch) Date: Fri, 26 Mar 2010 12:59:06 +0000 Subject: Doc fix: inet:getopts/2 returns {ok, OptionValues}, not just OptionValues Message-ID: <8439zn1bol.fsf@linux-b2a3.site> This confused me for a while: according to the type specification in the documentation, inet:getopts/2 returns a list of options when successful (see http://www.erlang.org/doc/man/inet.html#getopts-2 ), but the -spec in the code and the example in the documentation say that the return type is {ok, list()}. Thus this doc patch: git fetch git://github.com/legoscia/otp.git doc-inet-getopts http://github.com/legoscia/otp/commit/61d766d29e0eb1bc555cbbfa0603a8250011d7cc -- Magnus Henoch, magnus@REDACTED Erlang Solutions http://www.erlang-solutions.com/ --------------------------------------------------- --------------------------------------------------- WE'VE CHANGED NAMES! Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD. www.erlang-solutions.com From bgustavsson@REDACTED Fri Mar 26 14:21:19 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Fri, 26 Mar 2010 14:21:19 +0100 Subject: [erlang-patches] Spelling fix: s/loose/lose/ In-Reply-To: <847hoz1cqs.fsf@linux-b2a3.site> References: <847hoz1cqs.fsf@linux-b2a3.site> Message-ID: <6672d0161003260621t47641f12rd420af78b14bcb73@mail.gmail.com> On Fri, Mar 26, 2010 at 1:36 PM, Magnus Henoch wrote: > One of my pet peeves is when people spell "lose" as "loose". ?("Lose" > means "not win", but "loose" means "not tight".) ?Hence this patch: Thanks! Will include in 'pu'. I added your definition of "lose" and "loose" to the commit message to make it clearer why the change was made. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Fri Mar 26 14:28:23 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Fri, 26 Mar 2010 14:28:23 +0100 Subject: [erlang-patches] Doc fix: inet:getopts/2 returns {ok, OptionValues}, not just OptionValues In-Reply-To: <8439zn1bol.fsf@linux-b2a3.site> References: <8439zn1bol.fsf@linux-b2a3.site> Message-ID: <6672d0161003260628g6d1e35ffle988c372524062ea@mail.gmail.com> On Fri, Mar 26, 2010 at 1:59 PM, Magnus Henoch wrote: > This confused me for a while: according to the type specification in the > documentation, inet:getopts/2 returns a list of options when successful > (see http://www.erlang.org/doc/man/inet.html#getopts-2 ), but the -spec > in the code and the example in the documentation say that the return > type is {ok, list()}. > > Thus this doc patch: > > git fetch git://github.com/legoscia/otp.git doc-inet-getopts Thanks! Will include in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From vinoski@REDACTED Fri Mar 26 22:37:41 2010 From: vinoski@REDACTED (Steve Vinoski) Date: Fri, 26 Mar 2010 16:37:41 -0500 Subject: fix for sasl and sys:get_status Message-ID: <65b2728e1003261437x115f1259jf8c00510512a67d9@mail.gmail.com> I've implemented a fix for the problem Paul Guyot reported recently about the broken use in sasl of the term returned from calling sys:get_status on a supervisor: git fetch git://github.com/vinoski/otp.git sasl_fix_get_status There are no doc changes required, and I couldn't run the sasl tests since they're not publicly available, but the change is very straightforward. --steve From rory@REDACTED Sun Mar 28 16:20:13 2010 From: rory@REDACTED (Rory Byrne) Date: Sun, 28 Mar 2010 16:20:13 +0200 Subject: Problem compiling since commit 995f4202 Message-ID: <20100328142013.GA9960@almeida.jinsky.com> Hi, It looks to me like commit 995f4202 (OTP-7046 Support for Diffie-Hellman keyexchange) has introduced a syntax error: ./ssl_connection.erl:683: syntax error before: ',' The relevant code from ssl_connection.erl is: 681. fun({Packet, Raw}, {next_state, SName, 682. AS=#state{tls_handshake_hashes=Hs0}}) -> 683. (_, StopState) -> StopState 684. end, Anyone else see the same? Rory From tuncer.ayaz@REDACTED Sun Mar 28 16:24:23 2010 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Sun, 28 Mar 2010 16:24:23 +0200 Subject: [erlang-patches] Problem compiling since commit 995f4202 In-Reply-To: <20100328142013.GA9960@almeida.jinsky.com> References: <20100328142013.GA9960@almeida.jinsky.com> Message-ID: <4ac8254d1003280724u1ad24594o579d08a6dd01463a@mail.gmail.com> On Sun, Mar 28, 2010 at 4:20 PM, Rory Byrne wrote: > Hi, > > It looks to me like commit 995f4202 (OTP-7046 Support for Diffie-Hellman > keyexchange) has introduced a syntax error: > > ./ssl_connection.erl:683: syntax error before: ',' > > The relevant code from ssl_connection.erl is: > > 681. fun({Packet, Raw}, {next_state, SName, > 682. AS=#state{tls_handshake_hashes=Hs0}}) -> > 683. (_, StopState) -> StopState > 684. end, > > Anyone else see the same? Dito. Just revert the commit locally. Bjorn has already done that in pu: http://github.com/erlang/otp/commit/92b096 From rory@REDACTED Sun Mar 28 16:30:29 2010 From: rory@REDACTED (Rory Byrne) Date: Sun, 28 Mar 2010 16:30:29 +0200 Subject: [erlang-patches] Problem compiling since commit 995f4202 In-Reply-To: <4ac8254d1003280724u1ad24594o579d08a6dd01463a@mail.gmail.com> References: <20100328142013.GA9960@almeida.jinsky.com> <4ac8254d1003280724u1ad24594o579d08a6dd01463a@mail.gmail.com> Message-ID: <20100328143029.GB9960@almeida.jinsky.com> On Sun, Mar 28, 2010 at 04:24:23PM +0200, Tuncer Ayaz wrote: > On Sun, Mar 28, 2010 at 4:20 PM, Rory Byrne wrote: > > Hi, > > > > It looks to me like commit 995f4202 (OTP-7046 Support for Diffie-Hellman > > keyexchange) has introduced a syntax error: > > > > ./ssl_connection.erl:683: syntax error before: ',' > > > > The relevant code from ssl_connection.erl is: > > > > 681. fun({Packet, Raw}, {next_state, SName, > > 682. AS=#state{tls_handshake_hashes=Hs0}}) -> > > 683. (_, StopState) -> StopState > > 684. end, > > > > Anyone else see the same? > > Dito. > Just revert the commit locally. > Bjorn has already done that in pu: > http://github.com/erlang/otp/commit/92b096 Will do - thanks! From tuncer.ayaz@REDACTED Sun Mar 28 23:08:47 2010 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Sun, 28 Mar 2010 23:08:47 +0200 Subject: Teach asn1ct verbose option Message-ID: <4ac8254d1003281408u5febcc46p8f6706e0fb84547b@mail.gmail.com> Change asn1ct to print verbose information only when asked to: * Teach asn1ct verbose option * Add test for verbose option to asn1_SUITE git fetch git://github.com/tuncer/otp.git asn1verbose From rory@REDACTED Mon Mar 29 00:33:22 2010 From: rory@REDACTED (Rory Byrne) Date: Mon, 29 Mar 2010 00:33:22 +0200 Subject: Fix ssl:transport_accept/2 to handle socket close Message-ID: <20100328223322.GA21674@almeida.jinsky.com> Hello, git fetch git://github.com/jinsky/otp.git ssl_transport_accept_fix A badmatch exception is thrown from ssl:transport_accept/2 when ssl:close/1 is called on the socket. This fixes it to return {error,closed}. Cheers, Rory From rvirding@REDACTED Mon Mar 29 01:00:20 2010 From: rvirding@REDACTED (Robert Virding) Date: Mon, 29 Mar 2010 01:00:20 +0200 Subject: [erlang-patches] Support nested record field access without parentheses In-Reply-To: <6672d0161003260033s21e84603yfd10eeeb3b61ba10@mail.gmail.com> References: <4ac8254d1003251605g71326a67j1b508c4778d96286@mail.gmail.com> <6672d0161003260033s21e84603yfd10eeeb3b61ba10@mail.gmail.com> Message-ID: <3dbc6d1c1003281600y74afcb73qe78af1f31b2cdf78@mail.gmail.com> 2010/3/26 Bj?rn Gustavsson : > > To help the review, we would grateful for any input on this proposal > (either for or against). I don't think it will break compatibility. I have nothing against the change. Robert From tuncer.ayaz@REDACTED Mon Mar 29 02:42:59 2010 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Mon, 29 Mar 2010 02:42:59 +0200 Subject: Support building minimal one-page PDF file without FOP Message-ID: <4ac8254d1003281742i3cc011j7847cb69cb6680c7@mail.gmail.com> If FOP is not found create PDF file with fakefop script. git fetch git://github.com/tuncer/otp.git fakefop From tuncer.ayaz@REDACTED Mon Mar 29 02:46:27 2010 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Mon, 29 Mar 2010 02:46:27 +0200 Subject: Support building minimal one-page PDF file without FOP In-Reply-To: <4ac8254d1003281742i3cc011j7847cb69cb6680c7@mail.gmail.com> References: <4ac8254d1003281742i3cc011j7847cb69cb6680c7@mail.gmail.com> Message-ID: <4ac8254d1003281746s6a8da3a4t4d98043f036ce75f@mail.gmail.com> On Mon, Mar 29, 2010 at 2:42 AM, Tuncer Ayaz wrote: > If FOP is not found create PDF file with fakefop script. > > git fetch git://github.com/tuncer/otp.git fakefop > With this change you can build and install docs without having FOP available. man pages and html docs are completely built and PDF files are placeholder files with relevant title-text on a single page. From bgustavsson@REDACTED Mon Mar 29 07:45:26 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Mon, 29 Mar 2010 07:45:26 +0200 Subject: [erlang-patches] fix for sasl and sys:get_status In-Reply-To: <65b2728e1003261437x115f1259jf8c00510512a67d9@mail.gmail.com> References: <65b2728e1003261437x115f1259jf8c00510512a67d9@mail.gmail.com> Message-ID: <6672d0161003282245mf89ffafv6ae29e8e5fcbb73d@mail.gmail.com> On Fri, Mar 26, 2010 at 11:37 PM, Steve Vinoski wrote: > I've implemented a fix for the problem Paul Guyot reported recently > about the broken use in sasl of the term returned from calling > sys:get_status on a supervisor: > > git fetch git://github.com/vinoski/otp.git sasl_fix_get_status > Thanks! Will include in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Mon Mar 29 07:47:31 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Mon, 29 Mar 2010 07:47:31 +0200 Subject: [erlang-patches] Teach asn1ct verbose option In-Reply-To: <4ac8254d1003281408u5febcc46p8f6706e0fb84547b@mail.gmail.com> References: <4ac8254d1003281408u5febcc46p8f6706e0fb84547b@mail.gmail.com> Message-ID: <6672d0161003282247kdb9b6adsfb467bffaba057a0@mail.gmail.com> On Sun, Mar 28, 2010 at 11:08 PM, Tuncer Ayaz wrote: > Change asn1ct to print verbose information only when asked to: > * Teach asn1ct verbose option > * Add test for verbose option to asn1_SUITE > > git fetch git://github.com/tuncer/otp.git asn1verbose Thanks! Will include in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Mon Mar 29 08:11:51 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Mon, 29 Mar 2010 08:11:51 +0200 Subject: [erlang-patches] Fix ssl:transport_accept/2 to handle socket close In-Reply-To: <20100328223322.GA21674@almeida.jinsky.com> References: <20100328223322.GA21674@almeida.jinsky.com> Message-ID: <6672d0161003282311o57039da4g77b3dab7073e1f25@mail.gmail.com> On Mon, Mar 29, 2010 at 12:33 AM, Rory Byrne wrote: > ?git fetch git://github.com/jinsky/otp.git ssl_transport_accept_fix > Thanks! I'll wait a few days with including this change because there is currently a build problem in the ssl application, and because I've had to revert a commit there is now a merge conflict with the revert commit. Since the revert commit in the 'pu' branch is a temporary thing, I will wait until it is gone before I'll resolve any merge conflicts. Another thing: Your branch contains multiple merges from the dev branch. I cannot merge such a branch to 'pu', but I can handle by cherry-picking the actual without much problems. Still, in the future you might want to use "git rebase" instead of "git merge" when you want to update your branch with the latest changes from the dev branch (in case you haven't used "git merge", note that "git pull" is the same as "git fetch" followed by "git merge"). -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Mon Mar 29 08:15:34 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Mon, 29 Mar 2010 08:15:34 +0200 Subject: [erlang-patches] Support building minimal one-page PDF file without FOP In-Reply-To: <4ac8254d1003281742i3cc011j7847cb69cb6680c7@mail.gmail.com> References: <4ac8254d1003281742i3cc011j7847cb69cb6680c7@mail.gmail.com> Message-ID: <6672d0161003282315nfc811b5vb8b33dd20eeee7b@mail.gmail.com> On Mon, Mar 29, 2010 at 2:42 AM, Tuncer Ayaz wrote: > If FOP is not found create PDF file with fakefop script. > > git fetch git://github.com/tuncer/otp.git fakefop Thanks! Will include in 'pu'. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From rory@REDACTED Mon Mar 29 13:51:45 2010 From: rory@REDACTED (Rory Byrne) Date: Mon, 29 Mar 2010 13:51:45 +0200 Subject: [erlang-patches] Fix ssl:transport_accept/2 to handle socket close In-Reply-To: <6672d0161003282311o57039da4g77b3dab7073e1f25@mail.gmail.com> References: <20100328223322.GA21674@almeida.jinsky.com> <6672d0161003282311o57039da4g77b3dab7073e1f25@mail.gmail.com> Message-ID: <20100329115145.GA19867@almeida.jinsky.com> On Mon, Mar 29, 2010 at 08:11:51AM +0200, Bj?rn Gustavsson wrote: > On Mon, Mar 29, 2010 at 12:33 AM, Rory Byrne wrote: > > ?git fetch git://github.com/jinsky/otp.git ssl_transport_accept_fix > > > > Thanks! > > I'll wait a few days with including this change because there is > currently a build problem in the ssl application, and because I've > had to revert a commit there is now a merge conflict with the > revert commit. Since the revert commit in the 'pu' branch is > a temporary thing, I will wait until it is gone before I'll resolve > any merge conflicts. > > Another thing: Your branch contains multiple merges from the dev > branch. I cannot merge such a branch to 'pu', but I can handle > by cherry-picking the actual without much problems. Still, in the > future you might want to use "git rebase" instead of "git merge" > when you want to update your branch with the latest changes > from the dev branch (in case you haven't used "git merge", > note that "git pull" is the same as "git fetch" followed by > "git merge"). Sorry about the merge commits - they started to occur when changing the development branch from 'ccase/r13b04_dev' to 'dev'. I've rebased my branches and I'll use "git rebase" in future to include upstream commits. If you're interested, I also pushed a new branch that should avoid the merge conflict that you experienced: git fetch git://github.com/jinsky/otp.git ssl_transport_accept_fix_1 It was due to an overlap in the test code which could have been avoided if I'd been more cautious. Cheers, Rory From jay@REDACTED Tue Mar 30 01:04:59 2010 From: jay@REDACTED (Jay Nelson) Date: Mon, 29 Mar 2010 16:04:59 -0700 Subject: Out of memory building docs Message-ID: On an iMac G5 OS X 10.5.8 with 1.25 GB RAM, I get an exception in thread "main" java.lang.OutOfMemoryError: Java heap space on ../pdf/ kernel-2.14.pdf when I do a 'make docs' from a vanilla clone of the 'dev' branch. jay From tuncer.ayaz@REDACTED Tue Mar 30 03:47:44 2010 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Tue, 30 Mar 2010 03:47:44 +0200 Subject: [erlang-patches] Out of memory building docs In-Reply-To: References: Message-ID: <4ac8254d1003291847p61b895a6ofa2c42e6f7362c46@mail.gmail.com> On Tue, Mar 30, 2010 at 1:04 AM, Jay Nelson wrote: > On an iMac G5 OS X 10.5.8 with 1.25 GB RAM, I get an exception in thread > "main" java.lang.OutOfMemoryError: Java heap space on ../pdf/kernel-2.14.pdf > when I do a 'make docs' from a vanilla clone of the 'dev' branch. Increase memory available to the JVM used by fop: export FOP_OPTS=-Xmx512m As documented in otp/INSTALL.md: ---8<--- We have sometimes experienced problems with Sun's `java` running out of memory when running `fop`. Increasing the amount of memory available as follows has in our case solved the problem. $ export FOP_OPTS="-Xmxm" More information can be found at --->8--- From bgustavsson@REDACTED Tue Mar 30 11:58:48 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Tue, 30 Mar 2010 11:58:48 +0200 Subject: [erlang-patches] [PATCH] Exit if an error occurs with the listening socket In-Reply-To: <6672d0161003221104g7ac0d96ahb5f3db19090e1fd1@mail.gmail.com> References: <20100321013032.GA24824@ecn.lan> <6672d0161003221104g7ac0d96ahb5f3db19090e1fd1@mail.gmail.com> Message-ID: <6672d0161003300258o6cf7d922y65ee377af59d339a@mail.gmail.com> 2010/3/22 Bj?rn Gustavsson : > On Sun, Mar 21, 2010 at 2:30 AM, Michael Santos > wrote: >> Check errno if either select() or accept() returns an error and exit. >> This prevents epmd from looping and taking up 100% CPU. > > Thanks! Will include in 'pu'. I did not build on Windows. I have added an additional commit that fixes that. I intend to squash that commit into your commit if/when the branch is graduated. Are there other platforms that don't have ECONNABORTED defined? diff --git a/erts/epmd/src/epmd_srv.c b/erts/epmd/src/epmd_srv.c index 7e4a661..83ebdaa 100644 --- a/erts/epmd/src/epmd_srv.c +++ b/erts/epmd/src/epmd_srv.c @@ -411,7 +411,9 @@ static int do_accept(EpmdVars *g,int listensock) dbg_perror(g,"error in accept"); switch (errno) { case EAGAIN: +#ifndef __WIN32__ case ECONNABORTED: +#endif case EINTR: return EPMD_FALSE; default: -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From michael.santos@REDACTED Tue Mar 30 15:28:13 2010 From: michael.santos@REDACTED (Michael Santos) Date: Tue, 30 Mar 2010 09:28:13 -0400 Subject: [erlang-patches] [PATCH] Exit if an error occurs with the listening socket In-Reply-To: <6672d0161003300258o6cf7d922y65ee377af59d339a@mail.gmail.com> References: <20100321013032.GA24824@ecn.lan> <6672d0161003221104g7ac0d96ahb5f3db19090e1fd1@mail.gmail.com> <6672d0161003300258o6cf7d922y65ee377af59d339a@mail.gmail.com> Message-ID: <20100330132813.GA15874@ecn.lan> On Tue, Mar 30, 2010 at 11:58:48AM +0200, Bj??rn Gustavsson wrote: > 2010/3/22 Bj??rn Gustavsson : > > On Sun, Mar 21, 2010 at 2:30 AM, Michael Santos > > wrote: > >> Check errno if either select() or accept() returns an error and exit. > >> This prevents epmd from looping and taking up 100% CPU. > > > > Thanks! Will include in 'pu'. > > I did not build on Windows. I have added an additional > commit that fixes that. I intend to squash that commit into > your commit if/when the branch is graduated. > > Are there other platforms that don't have ECONNABORTED > defined? Yay, I broke the Windows build! ;) Thanks for fixing the patch. Looking through erts/emulator/drivers/common/inet_drv.c, the only platform for which ECONNABORTED is explicitly handled is Windows: #ifdef __WIN32__ #define ECONNABORTED WSAECONNABORTED #endif /* __WIN32__ */ > diff --git a/erts/epmd/src/epmd_srv.c b/erts/epmd/src/epmd_srv.c > index 7e4a661..83ebdaa 100644 > --- a/erts/epmd/src/epmd_srv.c > +++ b/erts/epmd/src/epmd_srv.c > @@ -411,7 +411,9 @@ static int do_accept(EpmdVars *g,int listensock) > dbg_perror(g,"error in accept"); > switch (errno) { > case EAGAIN: > +#ifndef __WIN32__ > case ECONNABORTED: > +#endif > case EINTR: > return EPMD_FALSE; > default: From williamvdoorn@REDACTED Wed Mar 31 10:00:18 2010 From: williamvdoorn@REDACTED (William v Doorn) Date: Wed, 31 Mar 2010 10:00:18 +0200 Subject: lists:shuffle Message-ID: Hello, Since I've been using Erlang, I've needed a function shuffle lists alot. Now I was wondering if there could be a C implementation of this method in maybe the lists module. Using this in raw erlang is much slower, and so I was going to use the erl_nif interface along with some other lists functions to make this faster. I want to know what you guys would think about implementing this into the lists module. William van Doorn From bgustavsson@REDACTED Wed Mar 31 10:24:28 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Wed, 31 Mar 2010 10:24:28 +0200 Subject: [erlang-patches] lists:shuffle In-Reply-To: References: Message-ID: On Wed, Mar 31, 2010 at 10:00 AM, William v Doorn wrote: > Since I've been using Erlang, I've needed a function shuffle lists alot. Now > I was wondering if there could be a C implementation of this method in maybe > the lists module. Using this in raw erlang is much slower, and so I was > going to use the erl_nif interface along with some other lists functions to > make this faster. I want to know what you guys would think about > implementing this into the lists module. We are generally wary about including new functions into the lists modules. Only functions that would be useful for many users will be considered for inclusion. Another thing is that we don't want the lists module to start loading NIFs (we will probably never have any NIFs in the kernel and stdlib applications). If a function deserves to be in the lists module and if it should be implemented in C, we will implement it as an ordinary BIF. What exactly does your shuffle function do? -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bgustavsson@REDACTED Wed Mar 31 16:43:52 2010 From: bgustavsson@REDACTED (=?UTF-8?Q?Bj=C3=B6rn_Gustavsson?=) Date: Wed, 31 Mar 2010 16:43:52 +0200 Subject: [erlang-patches] lists:shuffle In-Reply-To: References: Message-ID: (Please keep the discussion on the mailing list. I have added back a CC to the list.) 2010/3/31 William v Doorn : > Hello, > > It's been implemented in the "standard" libaries of like every popular > langauge. It basically shuffles the list. Here are two examples of > implemenations: > > - Python: http://docs.python.org/library/random.html (Scroll down a bit) > - Java: > http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collections.html#shuffle(java.util.List) > I think that we might consider adding a shuffle() function to the 'random' module. Could you show us your Erlang implementation shuffle() function that you considered too slow. Perhaps it can be optimized to be fast enough. We will need a reference implementation anyway, because we will not add any new BIFs before benchmarking them to see whether the performance improvement is significant enough. -- Bj?rn Gustavsson, Erlang/OTP, Ericsson AB From bob@REDACTED Wed Mar 31 16:58:10 2010 From: bob@REDACTED (Bob Ippolito) Date: Wed, 31 Mar 2010 07:58:10 -0700 Subject: [erlang-patches] lists:shuffle In-Reply-To: References: Message-ID: 2010/3/31 Bj?rn Gustavsson : > (Please keep the discussion on the mailing list. I have > added back a CC to the list.) > > 2010/3/31 William v Doorn : >> Hello, >> >> It's been implemented in the "standard" libaries of like every popular >> langauge. It basically shuffles the list. Here are two examples of >> implemenations: >> >> - Python: http://docs.python.org/library/random.html (Scroll down a bit) >> - Java: >> http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collections.html#shuffle(java.util.List) >> > > I think that we might consider adding a shuffle() function to the > 'random' module. > > Could you show us your Erlang implementation shuffle() function that you > considered too slow. Perhaps it can be optimized to be fast enough. We > will need a reference implementation anyway, because we will not add > any new BIFs before benchmarking them to see whether the performance > improvement is significant enough. It would be nice if the shuffle function provided a function and state parameter for entropy so that you could decide whether to use something deterministic (e.g. the functional API to random) or a different source (e.g. the crypto module). A shuffle function is something we'd find useful, but we've gotten by without actually implementing a full and correct shuffle implementation. -bob From ruslan@REDACTED Wed Mar 31 22:28:49 2010 From: ruslan@REDACTED (Ruslan Babayev) Date: Wed, 31 Mar 2010 13:28:49 -0700 Subject: asn1ct verbose In-Reply-To: <4ac8254d1003291902u452bc16ficeef25581ad59b37@mail.gmail.com> References: <4ac8254d1003281413t2c7fe6b5w6b7f1bfdac437c33@mail.gmail.com> <315b1481003291837k1ee97239lc5c65131742c3b6@mail.gmail.com> <4ac8254d1003291902u452bc16ficeef25581ad59b37@mail.gmail.com> Message-ID: I didn't have a chance to have a look at how asn1ct handles warnings. For warnings verbose flag makes sense. But I think static output like below should be removed. Erlang ASN.1 version "1.6.13" compiling "/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.asn1" Compiler Options: [ber,report_errors, {cwd,"/Users/ruslan/tmp/cdrdump/asn1"}, {outdir,"/Users/ruslan/tmp/cdrdump/asn1"}, {i,"."}, {i,"/Users/ruslan/tmp/cdrdump/asn1"}] --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.asn1db"}-- --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.hrl"}-- --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.erl"}-- ok On Mar 29, 2010, at 7:02 PM, Tuncer Ayaz wrote: > On Tue, Mar 30, 2010 at 3:37 AM, Ruslan Babayev wrote: >> Merhaba Ayaz, >> >> I think the verbosity of asn1ct was out of place to begin with. After all, >> erlc and snmp compiler are not "verbose" and don't have a flag to turn it >> on/off. Just like gcc or any other compiler doesn't spew out it's version >> and the fact that it's compiling or generating something. > > erlc has a -v option and it's actually used but was not > in asn1ct. Default is verbose and that might explain why > you never saw verbose output. > See yecc for verbose logging: > either > $ erlc -v foobar.yrl > or >> yecc:file("foobar.yrl", [{verbose,true}]). > > So it's not ignored everywhere. > > Without -v yecc does not print warnings. > >> I would rather see all those io:format's removed. There should be output >> only when something goes wrong. > > Please reply to my mail on erlang-patches that you think removing > at least the static version string is a good idea. > Feel free to call for removal of all of the logging if you want. > I have no objection against that. > Either way we will solve it to not print unwanted messages :). > >> Regards, >> Ruslan >> >> On Sun, Mar 28, 2010 at 2:13 PM, Tuncer Ayaz wrote: >>> >>> See >>> >>> http://www.erlang.org/cgi-bin/ezmlm-cgi?3:mss:957:201003:gkeghjmcebaelnakiplc >> >> -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3919 bytes Desc: not available URL: From tuncer.ayaz@REDACTED Wed Mar 31 22:40:15 2010 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Wed, 31 Mar 2010 22:40:15 +0200 Subject: asn1ct verbose In-Reply-To: References: <4ac8254d1003281413t2c7fe6b5w6b7f1bfdac437c33@mail.gmail.com> <315b1481003291837k1ee97239lc5c65131742c3b6@mail.gmail.com> <4ac8254d1003291902u452bc16ficeef25581ad59b37@mail.gmail.com> Message-ID: On Wed, Mar 31, 2010 at 10:28 PM, Ruslan Babayev wrote: > I didn't have a chance to have a look at how asn1ct handles > warnings. For warnings verbose flag makes sense. But I think > static output like below should be removed. > > Erlang ASN.1 version "1.6.13" compiling > "/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.asn1" > Compiler Options: [ber,report_errors, > {cwd,"/Users/ruslan/tmp/cdrdump/asn1"}, > {outdir,"/Users/ruslan/tmp/cdrdump/asn1"}, > {i,"."}, > {i,"/Users/ruslan/tmp/cdrdump/asn1"}] > --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.asn1db"}-- > --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.hrl"}-- > --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.erl"}-- > ok > > > > On Mar 29, 2010, at 7:02 PM, Tuncer Ayaz wrote: > >> On Tue, Mar 30, 2010 at 3:37 AM, Ruslan Babayev wrote: >>> Merhaba Ayaz, >>> >>> I think the verbosity of asn1ct was out of place to begin with. After all, >>> erlc and snmp compiler are not "verbose" and don't have a flag to turn it >>> on/off. Just like gcc or any other compiler doesn't spew out it's version >>> and the fact that it's compiling or generating something. >> >> erlc has a -v option and it's actually used but was not >> in asn1ct. Default is verbose and that might explain why Correction: I meant to write: 'Default is verbose=false' >> you never saw verbose output. >> See yecc for verbose logging: >> either >> $ erlc -v foobar.yrl >> or >>> yecc:file("foobar.yrl", [{verbose,true}]). >> >> So it's not ignored everywhere. >> >> Without -v yecc does not print warnings. Correction: yecc does print warnings. From tuncer.ayaz@REDACTED Wed Mar 31 22:53:24 2010 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Wed, 31 Mar 2010 22:53:24 +0200 Subject: asn1ct verbose In-Reply-To: References: <4ac8254d1003281413t2c7fe6b5w6b7f1bfdac437c33@mail.gmail.com> <315b1481003291837k1ee97239lc5c65131742c3b6@mail.gmail.com> <4ac8254d1003291902u452bc16ficeef25581ad59b37@mail.gmail.com> Message-ID: On Wed, Mar 31, 2010 at 10:28 PM, Ruslan Babayev wrote: > I didn't have a chance to have a look at how asn1ct handles > warnings. For warnings verbose flag makes sense. But I think > static output like below should be removed. Warnings should be printed regardless of verbose flag. > Erlang ASN.1 version "1.6.13" compiling > "/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.asn1" > Compiler Options: [ber,report_errors, > {cwd,"/Users/ruslan/tmp/cdrdump/asn1"}, > {outdir,"/Users/ruslan/tmp/cdrdump/asn1"}, > {i,"."}, > {i,"/Users/ruslan/tmp/cdrdump/asn1"}] > --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.asn1db"}-- > --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.hrl"}-- > --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.erl"}-- > ok From ruslan@REDACTED Wed Mar 31 22:55:48 2010 From: ruslan@REDACTED (Ruslan Babayev) Date: Wed, 31 Mar 2010 13:55:48 -0700 Subject: asn1ct verbose In-Reply-To: References: <4ac8254d1003281413t2c7fe6b5w6b7f1bfdac437c33@mail.gmail.com> <315b1481003291837k1ee97239lc5c65131742c3b6@mail.gmail.com> <4ac8254d1003291902u452bc16ficeef25581ad59b37@mail.gmail.com> Message-ID: <6EA9A64B-8122-4B9F-8419-8380CE5CB0BB@babayev.com> What would verbose flag be used for, then? On Mar 31, 2010, at 1:53 PM, Tuncer Ayaz wrote: > On Wed, Mar 31, 2010 at 10:28 PM, Ruslan Babayev wrote: >> I didn't have a chance to have a look at how asn1ct handles >> warnings. For warnings verbose flag makes sense. But I think >> static output like below should be removed. > > Warnings should be printed regardless of verbose flag. > >> Erlang ASN.1 version "1.6.13" compiling >> "/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.asn1" >> Compiler Options: [ber,report_errors, >> {cwd,"/Users/ruslan/tmp/cdrdump/asn1"}, >> {outdir,"/Users/ruslan/tmp/cdrdump/asn1"}, >> {i,"."}, >> {i,"/Users/ruslan/tmp/cdrdump/asn1"}] >> --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.asn1db"}-- >> --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.hrl"}-- >> --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.erl"}-- >> ok -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3919 bytes Desc: not available URL: From tuncer.ayaz@REDACTED Wed Mar 31 23:04:39 2010 From: tuncer.ayaz@REDACTED (Tuncer Ayaz) Date: Wed, 31 Mar 2010 23:04:39 +0200 Subject: asn1ct verbose In-Reply-To: <6EA9A64B-8122-4B9F-8419-8380CE5CB0BB@babayev.com> References: <4ac8254d1003281413t2c7fe6b5w6b7f1bfdac437c33@mail.gmail.com> <315b1481003291837k1ee97239lc5c65131742c3b6@mail.gmail.com> <4ac8254d1003291902u452bc16ficeef25581ad59b37@mail.gmail.com> <6EA9A64B-8122-4B9F-8419-8380CE5CB0BB@babayev.com> Message-ID: On Wed, Mar 31, 2010 at 10:55 PM, Ruslan Babayev wrote: > What would verbose flag be used for, then? For example yecc will show warnings that are safe to ignore or declared to be ignored when invoked as 'erlc -v foobar.yrl'. > On Mar 31, 2010, at 1:53 PM, Tuncer Ayaz wrote: > >> On Wed, Mar 31, 2010 at 10:28 PM, Ruslan Babayev wrote: >>> I didn't have a chance to have a look at how asn1ct handles >>> warnings. For warnings verbose flag makes sense. But I think >>> static output like below should be removed. >> >> Warnings should be printed regardless of verbose flag. >> >>> Erlang ASN.1 version "1.6.13" compiling >>> "/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.asn1" >>> Compiler Options: [ber,report_errors, >>> ? ? ? ? ? ? ? ? ?{cwd,"/Users/ruslan/tmp/cdrdump/asn1"}, >>> ? ? ? ? ? ? ? ? ?{outdir,"/Users/ruslan/tmp/cdrdump/asn1"}, >>> ? ? ? ? ? ? ? ? ?{i,"."}, >>> ? ? ? ? ? ? ? ? ?{i,"/Users/ruslan/tmp/cdrdump/asn1"}] >>> --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.asn1db"}-- >>> --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.hrl"}-- >>> --{generated,"/Users/ruslan/tmp/cdrdump/asn1/Attribute-ASN1Module.erl"}-- >>> ok > > From rory@REDACTED Wed Mar 31 23:49:45 2010 From: rory@REDACTED (Rory Byrne) Date: Wed, 31 Mar 2010 23:49:45 +0200 Subject: Fix mishandling of valid ssl options Message-ID: <20100331214945.GB12190@almeida.jinsky.com> Hello, git fetch git://github.com/jinsky/otp.git ssl_opts_fix Using the new ssl implementation, some valid options are causing badarg exceptions. The most important of these is 'fail_if_no_peer_cert', but it also effects two undocumented options, 'verify_client_once' and 'cb_info'. Thanks, Rory