-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
Any Debian / Ubuntu
Debian/Ubuntu Jenkins init.d script has unique function "check_tcp_port" absent from RPM and SUSE scripts to detect listener on host:port pair.
I have Ubuntu 20.04 LTS host with 13 IPv4 and 14 IPv6 addresses where DNS reverse lookups timeout for many addresses.
I find Jenkins init "check_tcp_port" causes startup failure because "netstat --listen --numeric-ports" takes 8 minutes to complete.
Aforesaid 8 minutes is longer than systemd 5 minute start timeout causing systemd to abandon the start and report Jenkins service failure.
Issue opened to
- alert Jenkins project supporters
- alert users who may have this issue
- propose timeout prevention edits
Proposed revisions:
- Drop "check_tcp_port" function; a start when port in use fails with similar message.
- Revise listener enumeration for numeric mode to avoid DNS timeouts; details later.
- Replace old "netstat" with new "ss"; drops "net-utils" package dependency.
The "check_tcp_port" function fails to detect used port on Ubuntu 20.04 LTS OpenJDK 1.8.0_292 since "netstat" output " [::]:8080 " doesn't match "grep" argument "0.0.0.0\:8080[[:space:]]" value; "systemd" still shows service as active.
- is related to
-
JENKINS-41218 Provide native systemd unit
-
- Closed
-
I confirmed with the switch from System V init to systemd that is being evaluated in pull request 266 that the winstone java.net.BindException that is reported when the port is already busy is sufficient to stop the service. The systemctl start jenkins command correctly reports that the service did not start and journalctl -u jenkins.service reports:
conrad_t_pino could you verify that the most recent PR-266 build resolves it for you as well? We'd like more validation of the switch from System V init to systemd and this issue is a good chance to check another aspect of that transition.