Alexey Serbin has posted comments on this change. ( http://gerrit.cloudera.org:8080/24681 )
Change subject: [dist-test] Fix chrpath ETXTBSY race in dist slaves ...................................................................... Patch Set 4: Code-Review+2 (3 comments) http://gerrit.cloudera.org:8080/#/c/24681/3//COMMIT_MSG Commit Message: PS3: > From testing outcome, I didn't notice any other issue in dist-test vis-à-vi Thanks for the info. I think that we can do chrpath updates for all 3rd-party ELF binaries as a custom post-install step while building them -- it's quite easy. At least as it is in PS4 of this changelist, it will reduce the number of chrpath invocations and possible churn while trying to amend same 3rd-party binaries by concurrent dist-test sessions. On a separate note, I think it's a good idea to switch to a relative RPATH in all 3rd-party binaries. Apart from 3rd-party binaries we use in dist-test runs, only 'curl' and 'protoc' has non-relative RPATH as of today. I already fixed that for postgres: it has an option to compile in a relative path, so no chrpath surgery was necessary. Probably, curl and protobuf has similar -- I'll take a look. If not, then invoking chrpath after the install should be good enough. http://gerrit.cloudera.org:8080/#/c/24681/3//COMMIT_MSG@30 PS3, Line 30: the race without : any coordination: : > But will it work if different dist-test sessions have different RPATH setti I guess this shouldn't be an issue with the relative paths for RPATH since we are talking about updating those only for thirdparty components. http://gerrit.cloudera.org:8080/#/c/24681/3/build-support/run_dist_test.py File build-support/run_dist_test.py: http://gerrit.cloudera.org:8080/#/c/24681/3/build-support/run_dist_test.py@110 PS3, Line 110: thin the tree), so it is stable across tasks. When concurrent : # tasks on a slave observe the same underlying inode for a thirdparty binary, : # the first task to rewrite it makes this a no-op for the rest and they read the : # already-fixed value here and return without opening the inode for writing, : # which is what avoids the ETXTBSY failure below in > Doing this unconditionally would not be wise as fix_rpath() is called for a Sure -- if space and extra I/O are of high concern here, we need to pay with a bit more convoluted code here. -- To view, visit http://gerrit.cloudera.org:8080/24681 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I80cdc5b903f5ed0865ec5a92f905a46719f7e316 Gerrit-Change-Number: 24681 Gerrit-PatchSet: 4 Gerrit-Owner: Ashwani Raina <[email protected]> Gerrit-Reviewer: Abhishek Chennaka <[email protected]> Gerrit-Reviewer: Alexey Serbin <[email protected]> Gerrit-Reviewer: Ashwani Raina <[email protected]> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Zoltan Martonka <[email protected]> Gerrit-Comment-Date: Tue, 18 Aug 2026 17:44:01 +0000 Gerrit-HasComments: Yes
