From 7f9699e730de3b9a2bcb6c1ed7ec8bff809022c0 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 16 Oct 2024 22:57:16 -0700 Subject: xmlrpc-c: Fix race condition triggered during symlink creation This should fix race condition sometime seen in highly parallell builds | rm -f libxmlrpc_util.so.4 | rm -f libxmlrpc_util.so.4 | ln -s libxmlrpc_util.so.4.60 libxmlrpc_util.so.4 | ln -s libxmlrpc_util.so.4.60 libxmlrpc_util.so.4 | rm -f libxmlrpc_util.so | ln: failed to create symbolic link 'libxmlrpc_util.so.4': File exists | make[2]: *** [/home/kraj01/yoe/build/tmp/work/core2-64-yoe-linux/xmlrpc-c/1.60.03/git/stable/unix-common.mk:72: libxmlrpc_util.so.4] Error 1 Signed-off-by: Khem Raj Cc: Martin Jansa --- ....mk-Ensuring-Sequential-Execution-of-rm-a.patch | 46 ++++++++++++++++++++++ .../recipes-devtools/xmlrpc-c/xmlrpc-c_1.60.03.bb | 1 + 2 files changed, 47 insertions(+) create mode 100644 meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-unix-common.mk-Ensuring-Sequential-Execution-of-rm-a.patch (limited to 'meta-oe/recipes-devtools/xmlrpc-c') diff --git a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-unix-common.mk-Ensuring-Sequential-Execution-of-rm-a.patch b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-unix-common.mk-Ensuring-Sequential-Execution-of-rm-a.patch new file mode 100644 index 0000000000..02b5244f3a --- /dev/null +++ b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-unix-common.mk-Ensuring-Sequential-Execution-of-rm-a.patch @@ -0,0 +1,46 @@ +From c9bd05e8f0ad805b81625cfa717d06071cfd9b48 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 16 Oct 2024 22:52:38 -0700 +Subject: [PATCH] unix-common.mk: Ensuring Sequential Execution of rm and ln commands + +With high parallel execution, it results in race condition where +its trying to create symlink while the original symlink while rm is +not done deleting the existing file yet. + +force sequential execution by adding dependencies between the steps +or combining them into a single shell command + +Here, && ensures that the ln -s command only runs after rm -f target +successfully completes. + +Similar error reported here [1] + +[1] https://bugs.gentoo.org/932835 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + unix-common.mk | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/unix-common.mk b/unix-common.mk +index 6954faf5..983c48cd 100644 +--- a/unix-common.mk ++++ b/unix-common.mk +@@ -62,14 +62,12 @@ SHLIB_CMD = $(CCLD) $(LADD) $(LDFLAGS_SHLIB) -o $@ $^ + SHLIB_LE_TARGETS = $(call shliblefn, $(SHARED_LIBS_TO_BUILD)) + + $(SHLIB_LE_TARGETS):%:%.$(MAJ) +- rm -f $@ +- $(LN_S) $< $@ ++ rm -f $@ && $(LN_S) $< $@ + + SONAME_TARGETS = $(SHLIB_LE_TARGETS:%=%.$(MAJ)) + + $(SONAME_TARGETS):%:%.$(MIN) +- rm -f $@ +- $(LN_S) $< $@ ++ rm -f $@ && $(LN_S) $< $@ + + .PHONY: $(SHLIB_INSTALL_TARGETS) + .PHONY: install-shared-libraries diff --git a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.60.03.bb b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.60.03.bb index a34256c275..f5ee920cad 100644 --- a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.60.03.bb +++ b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.60.03.bb @@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://doc/COPYING;md5=aefbf81ba0750f02176b6f86752ea951" SRC_URI = "git://github.com/mirror/xmlrpc-c.git;branch=master;protocol=https \ file://0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch \ + file://0001-unix-common.mk-Ensuring-Sequential-Execution-of-rm-a.patch \ " # one more commit after Release 1.60.03 in the Stable series SRCREV = "a823b0bb5cf0a4dbd34f929cbfdfb0439c5d9b0e" -- cgit v1.2.3-54-g00ecf