Hello,
While installing jenkins-2.46.1 I encountered the following error:
/var/log/install.log
Apr 1 13:12:44 AMCHOUKI-M-C091 installd[669]: ./postinstall: <dscl_cmd> DS
Error: -14009 (eDSUnknownNodeName)
Apr 1 13:12:44 AMCHOUKI-M-C091 installd[669]: ./postinstall: list: Invalid
Path
Apr 1 13:12:44 AMCHOUKI-M-C091 installd[669]: ./postinstall: No jenkins
user found, creating jenkins user and group
*Apr 1 13:12:44 AMCHOUKI-M-C091 installd[669]: ./postinstall: ERROR: All
system uids are in use!*
Looking at the postinstall script the current code does the following to
get a uid bellow 500 for jenkins:
uid=$(dscl . -list /Users uid | sort -nrk 2 | awk '$2 < 500 {print $2 + 1;
exit 0;}')
On my OS X system I have the following uids at the beginning of the list:
499
498
252
uid will be 500 after running this command and the postinstall script will
fail because of this condition:
if [ $uid -eq 500 ]; then
echo 'ERROR: All system uids are in use!'
exit 1
fi
>From the above uids it is clear that jenkins could use any uids between 252
and 498. A second concern is that the command does not check if $2 + 1 is
already in use.
I would like to propose the following change to find a uid for jenkins
bellow 500:
uids=$(dscl . -list /Users uid | sort -nrk 2 | awk '$2 < 500 {print
$2;}')
uid=0
prev_uid=500
found_uid=false
for i in $uids;
do
uid=$(($i + 1))
if [ "$uid" != "$prev" ]
then
echo "Found an available uid"
found_uid=true
break
fi
prev_uid=$i
done
if [ "$found_uid" = false ]; then
echo 'ERROR: All system uids are in use!'
exit 1
fi
Let me know if that makes sense. I tried to look for the postinstall in the
git repo of jenkins but could not find it. I also created the following
issue to track the resolution:
https://issues.jenkins-ci.org/browse/JENKINS-43284
Cheers
Amine
--
You received this message because you are subscribed to the Google Groups
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-dev/e64958e0-7c59-4256-a107-0b8ec6f503b3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.