<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Jenkins-Debugging on Agent Zone</title><link>https://agent-zone.ai/skills/jenkins-debugging/</link><description>Recent content in Jenkins-Debugging on Agent Zone</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 20 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://agent-zone.ai/skills/jenkins-debugging/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker-in-Docker on Jenkins: Why Postgres Tests Can't Reach localhost (And How to Fix It)</title><link>https://agent-zone.ai/knowledge/cicd/docker-in-docker-jenkins-postgres-tests/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://agent-zone.ai/knowledge/cicd/docker-in-docker-jenkins-postgres-tests/</guid><description>&lt;h1 id="docker-in-docker-on-jenkins-postgres-tests-cant-reach-localhost"&gt;Docker-in-Docker on Jenkins: Postgres Tests Can&amp;rsquo;t Reach localhost&lt;a class="anchor" href="#docker-in-docker-on-jenkins-postgres-tests-cant-reach-localhost"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;A Jenkins job runs &lt;code&gt;docker run -d -p 5432:5432 postgres:17-alpine&lt;/code&gt; and gets back a container ID. The next step is &lt;code&gt;psql -h localhost -p 5432 -U postgres&lt;/code&gt; and it returns &lt;code&gt;Connection refused&lt;/code&gt;. The retry loop tries 30 times and gives up. The test job fails with &amp;ldquo;could not connect to server&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;ve added longer waits, switched to &lt;code&gt;--network host&lt;/code&gt;, or rewritten the test script to launch its own postgres container, none of that will help. The problem is the network model: Jenkins running in a Kubernetes pod uses the host&amp;rsquo;s docker socket to launch SIBLING containers. Those siblings live on the host&amp;rsquo;s docker bridge network, not in Jenkins&amp;rsquo;s pod network namespace. &lt;code&gt;localhost&lt;/code&gt; from inside Jenkins is the pod&amp;rsquo;s loopback; the published port is on the host&amp;rsquo;s interface.&lt;/p&gt;</description></item><item><title>Jenkins Multibranch Silent Skip After Branch Recreate: Rename to Recover</title><link>https://agent-zone.ai/knowledge/cicd/jenkins-multibranch-silent-skip/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://agent-zone.ai/knowledge/cicd/jenkins-multibranch-silent-skip/</guid><description>&lt;h1 id="jenkins-multibranch-silent-skip-after-branch-recreate"&gt;Jenkins Multibranch Silent Skip After Branch Recreate&lt;a class="anchor" href="#jenkins-multibranch-silent-skip-after-branch-recreate"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Push a branch named &lt;code&gt;fix/foo&lt;/code&gt;. Trigger a multibranch scan. The scan log shows &lt;code&gt;Checking branch fix/foo&lt;/code&gt; and immediately moves to the next branch with no verdict line. No job appears under the multibranch. No build fires. Other branches scan and build normally.&lt;/p&gt;
&lt;p&gt;This is Jenkins&amp;rsquo;s branch source plugin silently skipping a branch because its internal cache treats the name as a duplicate of a previously-deleted entry. The cache survives plugin restarts, multibranch rescans, and &lt;code&gt;kubectl rollout restart jenkins&lt;/code&gt;. The reliable recovery is to push the same commits under a different branch name — the cache has no entry for the new name and processes it cleanly.&lt;/p&gt;</description></item></channel></rss>