From 3958acdb82c8081e76cfe77389556dbccc278f2c Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 18 Feb 2019 16:56:08 +0000 Subject: [PATCH 1/2] encfs: missing dependency --- .../addons/addon-depends/system-tools-depends/encfs/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/addons/addon-depends/system-tools-depends/encfs/package.mk b/packages/addons/addon-depends/system-tools-depends/encfs/package.mk index 2914c69938..be5d5d7bc3 100644 --- a/packages/addons/addon-depends/system-tools-depends/encfs/package.mk +++ b/packages/addons/addon-depends/system-tools-depends/encfs/package.mk @@ -7,7 +7,7 @@ PKG_SHA256="4709f05395ccbad6c0a5b40a4619d60aafe3473b1a79bafb3aa700b1f756fd63" PKG_LICENSE="LGPL" PKG_SITE="https://vgough.github.io/encfs/" PKG_URL="https://github.com/vgough/encfs/releases/download/v$PKG_VERSION/encfs-$PKG_VERSION.tar.gz" -PKG_DEPENDS_TARGET="toolchain fuse" +PKG_DEPENDS_TARGET="toolchain fuse openssl" PKG_LONGDESC="A Encrypted Filesystem for FUSE." PKG_CMAKE_OPTS_TARGET="-DCMAKE_INSTALL_PREFIX=/usr \ From 35266cf9380834f103a4c9b1622ab4daf587e869 Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Mon, 18 Feb 2019 17:42:11 +0000 Subject: [PATCH 2/2] config/functions: discriminate lock ownership by job/seq not just job --- config/functions | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/config/functions b/config/functions index afd0a72f3b..4cf4c36d3a 100644 --- a/config/functions +++ b/config/functions @@ -1215,17 +1215,17 @@ pkg_lock() { local pkg="$1" task="$2" parent_pkg="$3" local this_job="${MTJOBID}" - local lock_job lock_task lock_pkg + local lock_job lock_seq lock_task lock_pkg local fail_seq exec 98>"${THREAD_CONTROL}/locks/${pkg}.${task}" if ! flock --nonblock --exclusive 98; then while [ : ]; do - read -r lock_job lock_task lock_pkg <<<$(cat "${THREAD_CONTROL}/locks/${pkg}.${task}.owner" 2>/dev/null) + read -r lock_job lock_seq lock_task lock_pkg <<<$(cat "${THREAD_CONTROL}/locks/${pkg}.${task}.owner" 2>/dev/null) [ -n "${lock_job}" ] && break || sleep 1 done - if [ ${lock_job} != ${this_job} ]; then + if [ "${lock_job}/${lock_seq}" != "${this_job}/${PARALLEL_SEQ}" ]; then pkg_lock_status "STALLED" "${parent_pkg}" "${task}" "$(printf "waiting on [%02d] %s %s" ${lock_job} "${lock_task}" "${lock_pkg}")" flock --exclusive 98 fi @@ -1247,8 +1247,6 @@ EOF return 1 fi - echo "${this_job} ${task} ${pkg}" >"${THREAD_CONTROL}/locks/${pkg}.${task}.owner" - pkg_lock_status "LOCKED" "${pkg}" "${task}" } @@ -1269,6 +1267,7 @@ pkg_lock_status() { if [ "${status}" = "LOCKED" ]; then echo "${PARALLEL_SEQ}" > "${THREAD_CONTROL}/locks/${pkg}.${task}.failed" + echo "${this_job} ${PARALLEL_SEQ} ${task} ${pkg}" >"${THREAD_CONTROL}/locks/${pkg}.${task}.owner" elif [ "${status}" = "UNLOCK" ]; then rm "${THREAD_CONTROL}/locks/${pkg}.${task}.failed" fi @@ -1332,23 +1331,24 @@ acquire_exclusive_lock() { local pkg="$1" task="$2" lockfile="${3:-global}" local this_job="${MTJOBID}" - local lock_job lock_task lock_pkg + local lock_job lock_seq lock_task lock_pkg exec 96>"${THREAD_CONTROL}/locks/.mutex.${lockfile}" if ! flock --nonblock --exclusive 96; then while [ : ]; do - read -r lock_job lock_task lock_pkg <<<$(cat "${THREAD_CONTROL}/locks/.mutex.${lockfile}.owner" 2>/dev/null) + read -r lock_job lock_seq lock_task lock_pkg <<<$(cat "${THREAD_CONTROL}/locks/.mutex.${lockfile}.owner" 2>/dev/null) [ -n "${lock_job}" ] && break || sleep 1 done - if [ ${lock_job} != ${this_job} ]; then + if [ "${lock_job}/${lock_seq}" != "${this_job}/${PARALLEL_SEQ}" ]; then pkg_lock_status "MUTEX/W" "${pkg}" "${task}" "$(printf "mutex: %s; waiting on [%02d] %s %s" "${lockfile}" ${lock_job} "${lock_task}" "${lock_pkg}")" flock --exclusive 96 fi fi - echo "${this_job} ${task} ${pkg}" >"${THREAD_CONTROL}/locks/.mutex.${lockfile}.owner" pkg_lock_status "MUTEX" "${pkg}" "${task}" "mutex: ${lockfile}" + + echo "${this_job} ${PARALLEL_SEQ} ${task} ${pkg}" >"${THREAD_CONTROL}/locks/.mutex.${lockfile}.owner" } release_exclusive_lock() { @@ -1356,9 +1356,9 @@ release_exclusive_lock() { local pkg="$1" task="$2" - flock --unlock 96 2>/dev/null - pkg_lock_status "ACTIVE" "${pkg}" "${task}" + + flock --unlock 96 2>/dev/null } # Execute single command using mutex