Bug 373285 - Service pidfile hudson.pid not updated with new pid value when restarting through UI
Summary: Service pidfile hudson.pid not updated with new pid value when restarting thr...
Status: NEW
Alias: None
Product: Hudson
Classification: Technology
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Winston Prakash CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-05 14:41 EST by Kevin Calman CLA
Modified: 2012-03-05 14:43 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kevin Calman CLA 2012-03-05 14:41:40 EST
Build Identifier: Hudson ver. 2.2.0

The pid file in /var/run is not updated when restarting hudson through the UI, e.g. after plugin updates and "restart when no jobs are running", or via URL or CLI interfaces.

This Eclipse community bug is a duplicate of HUDSON-8669 (http://issues.hudson-ci.org/browse/HUDSON-8669).

This was most recently observed on the following environment:
- CentOS 5.7 Final
- Hudson 2.2.0 installed via yum (http://wiki.hudson-ci.org/display/HUDSON/Installing+Hudson+using+RPM+repository)

Please note:
- When service is started from OS service interface (/etc/init.d/hudson script), pidfile is kept in sync
- When service is started via API call (GUI or CLI interface), pidfile is not kept in sync
- After API-generated start, service interface is ineffective

This issue needs to be corrected for reliable system management to be possible.

Reproducible: Always

Steps to Reproduce:
# service hudson status
hudson (pid  4375) is running...
# ps -ef | grep hudson.war | grep -v grep
hudson    4375     1  4 15:25 ?        00:00:34 /usr/java/latest/jre/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DHUDSON_HOME=/var/lib/hudson -jar /usr/lib/hudson/hudson.war --logfile=/var/log/hudson/hudson.log --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=combined --simpleAccessLogger.file=/var/log/hudson/access_log
# cat /var/run/hudson.pid
4375
# java -jar /usr/lib/hudson/hudson-cli.jar -s http://localhost:8080 restart
# service hudson status
hudson dead but pid file exists
# ps -ef | grep hudson.war | grep -v grep
hudson    5327     1 42 15:39 ?        00:00:17 /usr/java/latest/jre/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DHUDSON_HOME=/var/lib/hudson -jar /usr/lib/hudson/hudson.war --logfile=/var/log/hudson/hudson.log --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=combined --simpleAccessLogger.file=/var/log/hudson/access_log
# cat /var/run/hudson.pid
4375
# service hudson stop
Shutting down Hudson                                       [FAILED]
# ps -ef | grep hudson.war | grep -v grep
hudson    5327     1 23 15:39 ?        00:00:18 /usr/java/latest/jre/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DHUDSON_HOME=/var/lib/hudson -jar /usr/lib/hudson/hudson.war --logfile=/var/log/hudson/hudson.log --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=combined --simpleAccessLogger.file=/var/log/hudson/access_log
# cat /var/run/hudson.pid
cat: /var/run/hudson.pid: No such file or directory
#