commit:     7c2a12d218faca7eec9e62f0b9491a5832b80d2b
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 18 22:09:21 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Thu Jun 18 22:09:21 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7c2a12d2

dev-lang/elixir: start erlang via 'empd -daemon'

Original bug exposes some kind of a race in erlang process.
It's not clear if 'epmd & exit' an unsafe construct or not.
I'm assuming it's not safe. Let's see if it helps.

Reported-by: Agostino Sarubbo
Bug: https://bugs.gentoo.org/727344
Package-Manager: Portage-2.3.101, Repoman-2.3.22
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 dev-lang/elixir/elixir-1.10.3.ebuild                  |  1 +
 dev-lang/elixir/files/elixir-1.10.3-epmd-daemon.patch | 13 +++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/dev-lang/elixir/elixir-1.10.3.ebuild 
b/dev-lang/elixir/elixir-1.10.3.ebuild
index 47f8a8ca078..5d77e804b6c 100644
--- a/dev-lang/elixir/elixir-1.10.3.ebuild
+++ b/dev-lang/elixir/elixir-1.10.3.ebuild
@@ -28,6 +28,7 @@ DEPEND+="
 PATCHES=(
        "${FILESDIR}"/${PN}-1.9.1-disable-network-tests.patch
        "${FILESDIR}"/${PN}-1.10.3-no-Q.patch
+       "${FILESDIR}"/${PN}-1.10.3-epmd-daemon.patch
 )
 
 src_install() {

diff --git a/dev-lang/elixir/files/elixir-1.10.3-epmd-daemon.patch 
b/dev-lang/elixir/files/elixir-1.10.3-epmd-daemon.patch
new file mode 100644
index 00000000000..48cfeb752b2
--- /dev/null
+++ b/dev-lang/elixir/files/elixir-1.10.3-epmd-daemon.patch
@@ -0,0 +1,13 @@
+Avoid exec/SIGCHLD race in daemon fork.
+Let's see if it fixes race seen in https://bugs.gentoo.org/727344
+--- a/Makefile
++++ b/Makefile
+@@ -280,7 +280,7 @@ test_elixir: test_stdlib test_ex_unit test_logger test_mix 
test_eex test_iex
+ 
+ test_stdlib: compile
+       @ echo "==> elixir (ex_unit)"
+-      $(Q) exec epmd & exit
++      $(Q) epmd -daemon
+       $(Q) if [ "$(OS)" = "Windows_NT" ]; then \
+               cd lib/elixir && cmd //C call ../../bin/elixir.bat -r 
"test/elixir/test_helper.exs" -pr "test/elixir/**/$(TEST_FILES)"; \
+       else \

Reply via email to