Details
-
Bug
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
-
None
-
Jenkins server 2.319.1
-
-
2.333
Description
After upgrade to 2.319.1 (from 2.277.2), the command "service jenkins start" on the Linux console hangs (we waited for ~30 mins). It doesnt return back to shell. This currently prevents the ansible playbook from progressing since it gets stuck at this task waiting for a return to shell.
previously, the 'service jenkins start' command should used to return to shell with 5 seconds.
Eg:
service jenkins start
[ABC@ip-ABC]# service jenkins start Starting Jenkins Session terminated, killing shell... ...killed. [ABC@ ~]#
Debugging the init.d script for jenkins, the daemon command which used to return back to the shell, doesnt do that anymore.
echo -n "Starting Jenkins " daemon --user "$JENKINS_USER" --pidfile "$JENKINS_PID_FILE" "$JAVA_CMD" $PARAMS > /dev/null RETVAL=$?
Values of the variables:
JENKINS_USER = jenkins
JENKINS_PID_FILE = /var/run/jenkins.pid
JAVA_CMD = /etc/alternatives/java
PARAMS = -Xmx3883m -Xms3883m -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8010 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; connect-src 'self' 'unsafe-inline' storybook.js.org; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; font-src 'self' 'unsafe-inline';" -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war and --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
We see that while the service start command is stuck, it is able to start Jenkins successfully.
We confirmed:
- Jenkins process (ps output) is up.
- /var/log/jenkins/jenkins.log has "Jenkins is fully up and running"
markewaite
i ve changed it no 0, but nothing happened, ive killed the process then started it via systemctl and it stuck again but jenkins is up and running so i made another change commented the RETVAL=0 total is the same
RETVAL=0
case "$1" in
start)
echo -n "Starting Jenkins "
daemon --user "$JENKINS_USER" --pidfile "$JENKINS_PID_FILE" $JAVA_CMD $PARAMS > /dev/null
RETVAL=0
echo -n "RETVAL"
if [ $RETVAL = 0 ]; then
success
echo > "$JENKINS_PID_FILE" # just in case we fail to find it
MY_SESSION_ID=`/bin/ps h -o sess -p $$`
echo -n "my sesion ID"
/bin/ps hww -u "$JENKINS_USER" -o sess,ppid,pid,cmd | \
while read sess ppid pid cmd; do
echo -n "while start"
[ "$ppid" = 1 ] || continue
echo "$cmd" | grep $JENKINS_WAR > /dev/null
[ $? = 0 ] || continue
echo -n "before found PID"
echo $pid > "$JENKINS_PID_FILE"
echo -n $pid
done