3
votes

I need some advice/help.

Problem: Jenkins Side panel is missing after upgrade from 1.558 to 1.641.

OS=CentOS Linux version 2.6.32-279.14.1.el6.x86_64

Upgrade steps:

  1. Download latest Jenkins installation, 1.641
  2. Backup existing Jenkins installation (JENKINS_HOME=/data/jenkins and /usr/lib/jenkins/jenkins.war
  3. Stop Jenkins services
  4. Install new Jenkins war in /usr/lib/jenkins/jenkins.war
  5. Switch jdk from 1.6 to 1.8
  6. Remove all .pinned files in the plugins directory
  7. Restart Jenkins Linux server
  8. Update all Jenkins plugins to latest versions from Jenkins GUI
  9. Restart Jenkins
  10. Validate Jenkins Administration and GUI
  11. Validate Jenkins Builds

Result: All existing jobs and GUI are functioning properly, except the side panel is missing.

Why manual upgrade? Because our existing Jenkins 1.558 is 20 months old, I wanted to be sure no configuration be overwritten.

My questions: 1. What is missing in my upgrade procedure? 2. If not, is it due to something on my existing installation? or is it a bug?

Thank you very much for any help/feedback. HL

Page source after upgrade

    <!DOCTYPE html><html><head resURL="/static/c6c6c1ea">
    

    <title>DPM-Flyer-Context [Jenkins]</title><link rel="stylesheet" href="/static/c6c6c1ea/css/style.css" type="text/css" /><link rel="stylesheet" href="/static/c6c6c1ea/css/color.css" type="text/css" /><link rel="stylesheet" href="/static/c6c6c1ea/css/responsive-grid.css" type="text/css" /><link rel="shortcut icon" href="/static/c6c6c1ea/favicon.ico" type="image/vnd.microsoft.icon" /><link color="black" rel="mask-icon" href="/images/mask-icon.svg" /><script>var isRunAsTest=false; var rootURL=""; var resURL="/static/c6c6c1ea";</script><script src="/static/c6c6c1ea/scripts/prototype.js" type="text/javascript"></script><script src="/static/c6c6c1ea/scripts/behavior.js" type="text/javascript"></script><script src='/adjuncts/c6c6c1ea/org/kohsuke/stapler/bind.js' type='text/javascript'></script><script src="/static/c6c6c1ea/scripts/yui/yahoo/yahoo-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/dom/dom-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/event/event-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/animation/animation-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/dragdrop/dragdrop-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/container/container-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/connection/connection-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/datasource/datasource-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/autocomplete/autocomplete-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/menu/menu-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/element/element-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/button/button-min.js"></script><script src="/static/c6c6c1ea/scripts/yui/storage/storage-min.js"></script><script src="/static/c6c6c1ea/scripts/hudson-behavior.js" type="text/javascript"></script><script src="/static/c6c6c1ea/scripts/sortable.js" type="text/javascript"></script><script>crumb.init("", "");</script><link rel="stylesheet" href="/static/c6c6c1ea/scripts/yui/container/assets/container.css" type="text/css" /><link rel="stylesheet" href="/static/c6c6c1ea/scripts/yui/assets/skins/sam/skin.css" type="text/css" /><link rel="stylesheet" href="/static/c6c6c1ea/scripts/yui/container/assets/skins/sam/container.css" type="text/css" /><link rel="stylesheet" href="/static/c6c6c1ea/scripts/yui/button/assets/skins/sam/button.css" type="text/css" /><link rel="stylesheet" href="/static/c6c6c1ea/scripts/yui/menu/assets/skins/sam/menu.css" type="text/css" /><link rel="search" href="/opensearch.xml" type="application/opensearchdescription+xml" title="Jenkins" /><meta name="ROBOTS" content="INDEX,NOFOLLOW" /><link rel="alternate" href="rssAll" title="Jenkins:DPM-Flyer-Context (all builds)" type="application/rss+xml" /><link rel="alternate" href="rssAll?flavor=rss20" title="Jenkins:DPM-Flyer-Context (all builds) (RSS 2.0)" type="application/rss+xml" /><link rel="alternate" href="rssFailed" title="Jenkins:DPM-Flyer-Context (failed builds)" type="application/rss+xml" /><link rel="alternate" href="rssFailed?flavor=rss20" title="Jenkins:DPM-Flyer-Context (failed builds) (RSS 2.0)" type="application/rss+xml" /><link rel="alternate" href="rssChangelog" title="Jenkins:DPM-Flyer-Context (changelog)" type="application/rss+xml" /><link rel="alternate" href="rssChangelog?flavor=rss20" title="Jenkins:DPM-Flyer-Context (changelog) (RSS 2.0)" type="application/rss+xml" /><script src="/adjuncts/c6c6c1ea/org/kohsuke/stapler/jquery/jquery.full.js" type="text/javascript"></script><script>var Q=jQuery.noConflict()</script><link rel="stylesheet" href="/plugin/jquery-ui/css/jquery-ui-1.8.9.custom.css" type="text/css" /><script src="/plugin/jquery-ui/js/jquery-ui-1.8.9.custom.min.js"></script><script src="/static/c6c6c1ea/scripts/yui/cookie/cookie-min.js"></script><link rel="stylesheet" href="http://swcodevweb123.wco.int/custom/jenkins-dev.css" type="text/css" /><script src="" type="text/javascript"></script></head><body data-model-type="hudson.maven.MavenModuleSet" id="jenkins" class="yui-skin-sam jenkins-1.641" data-version="jenkins-1.641"><a href="#skip2content" class="skiplink">Skip to content</a><div id="page-head"><div id="header"><div class="logo"><a id="jenkins-home-link" href="/"><img src="/static/c6c6c1ea/images/headshot.png" alt="title" id="jenkins-head-icon" /><img src="/static/c6c6c1ea/images/title.png" alt="title" width="139" id="jenkins-name-icon" height="34" /></a></div><div class="login"> <span style="white-space:nowrap"><a href="/user/leh" class="model-link inside inverse"><b>Le, Hong Vu</b></a>
                    |
                    <a href="/logout"><b>log out</b></a></span></div><div class="searchbox hidden-xs"><form method="get" name="search" action="/view/FlyerV5/job/DPM-Flyer-Context/search/" style="position:relative;" class="no-json"><div id="search-box-minWidth"></div><div id="search-box-sizer"></div><div id="searchform"><input name="q" placeholder="search" id="search-box" class="has-default-text" /> <a href="http://wiki.jenkins-ci.org/display/JENKINS/Search+Box"><img src="/static/c6c6c1ea/images/16x16/help.png" style="width: 16px; height: 16px; " class="icon-help icon-sm" /></a><div id="search-box-completion"></div><script>createSearchBox("/view/FlyerV5/job/DPM-Flyer-Context/search/");</script></div></form></div></div><div id="breadcrumbBar"><tr id="top-nav"><td id="left-top-nav" colspan="2"><link rel='stylesheet' href='/adjuncts/c6c6c1ea/lib/layout/breadcrumbs.css' type='text/css' /><script src='/adjuncts/c6c6c1ea/lib/layout/breadcrumbs.js' type='text/javascript'></script><div class="top-sticker noedge"><div class="top-sticker-inner"><div id="right-top-nav"><div id="right-top-nav"><div class="smallfont"><a href="?auto_refresh=true">ENABLE AUTO REFRESH</a></div></div></div><ul id="breadcrumbs"><li class="item"><a href="/" class="model-link inside">Jenkins</a></li><li href="/" class="children"></li><li class="item"><a href="/view/FlyerV5/" class=" inside">FlyerV5</a></li><li href="/view/FlyerV5/" class="children"></li><li class="item"><a href="/view/FlyerV5/job/DPM-Flyer-Context/" class="model-link inside">DPM-Flyer-Context</a></li><li href="/view/FlyerV5/job/DPM-Flyer-Context/" class="children"></li></ul><div id="breadcrumb-menu-target"></div></div></div></td></tr></div></div><div id="page-body"><div id="side-panel"><div id="tasks"><div class="task"><a href="/" class="task-icon-link"><img src="/static/c6c6c1ea/images/24x24/up.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-up icon-md" /></a> <a href="/" class="task-link">Back to Dashboard</a></div><div class="task"><a href="/view/FlyerV5/job/DPM-Flyer-Context/" class="task-icon-link"><img src="/static/c6c6c1ea/images/24x24/search.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-search icon-md" /></a> <a href="/view/FlyerV5/job/DPM-Flyer-Context/" class="task-link"><b>Status</b></a><div class="subtasks"></div></div><div class="task"><a href="/view/FlyerV5/job/DPM-Flyer-Context/changes" class="task-icon-link"><img src="/static/c6c6c1ea/images/24x24/notepad.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-notepad icon-md" /></a> <a href="/view/FlyerV5/job/DPM-Flyer-Context/changes" class="task-link">Changes</a></div><div class="task"><a href="/view/FlyerV5/job/DPM-Flyer-Context/ws/" class="task-icon-link"><img src="/static/c6c6c1ea/images/24x24/folder.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-folder icon-md" /></a> <a href="/view/FlyerV5/job/DPM-Flyer-Context/ws/" class="task-link">Workspace</a></div><div class="task"><a href="/view/FlyerV5/job/DPM-Flyer-Context/build?delay=0sec" class="task-icon-link"><img src="/static/c6c6c1ea/images/24x24/clock.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-clock icon-md" /></a> <a href="/view/FlyerV5/job/DPM-Flyer-Context/build?delay=0sec" class="task-link">Build with Parameters</a></div><script>function build_id3899(a) {
                new Ajax.Request(a.href);
                hoverNotification('Build scheduled',a.parentNode);
                return false;
            }</script><div class="task"><a onclick="confirmPOST_id3902(true, '/view/FlyerV5/job/DPM-Flyer-Context/doDelete', 'Are you sure about deleting the Maven project ‘DPM-Flyer-Context’?')" href="#" class="task-icon-link"><img src="/static/c6c6c1ea/images/24x24/edit-delete.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-edit-delete icon-md" /></a><script>function confirmPOST_id3902(post, href, message) {
            if (confirm(message)) {
                var form = document.createElement('form');
                form.setAttribute('method', post ? 'POST' : 'GET');
                form.setAttribute('action', href);
                if (post) {
                    crumb.appendToForm(form);
                }
                document.body.appendChild(form);
                form.submit();
            }
            return false;
        }</script> <a onclick="confirmPOST_id3903(true, '/view/FlyerV5/job/DPM-Flyer-Context/doDelete', 'Are you sure about deleting the Maven project ‘DPM-Flyer-Context’?')" href="#" class="task-link">Delete Maven project</a><script>function confirmPOST_id3903(post, href, message) {
            if (confirm(message)) {
                var form = document.createElement('form');
                form.setAttribute('method', post ? 'POST' : 'GET');
                form.setAttribute('action', href);
                if (post) {
                    crumb.appendToForm(form);
                }
                document.body.appendChild(form);
                form.submit();
            }
            return false;
        }</script></div><div class="task"><a href="/view/FlyerV5/job/DPM-Flyer-Context/configure" class="task-icon-link"><img src="/static/c6c6c1ea/images/24x24/setting.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-setting icon-md" /></a> <a href="/view/FlyerV5/job/DPM-Flyer-Context/configure" class="task-link">Configure</a></div><div class="task"><a onclick="confirmPOST_id3906(true, '/view/FlyerV5/job/DPM-Flyer-Context/doDeleteAllDisabledModules', 'Are you sure about deleting all the disabled modules?')" href="#" class="task-icon-link"><img src="/static/c6c6c1ea/images/24x24/delete-document.png" style="width: 24px; height: 24px; width: 24px; height: 24px; margin: 2px;" class="icon-delete-document icon-md" /></a><script>function confirmPOST_id3906(post, href, message) {
            if (confirm(message)) {
                var form = document.createElement('form');
                form.setAttribute('method', post ? 'POST' : 'GET');
                form.setAttribute('action', href);
                if (post) {
                    crumb.appendToForm(form);
                }
                document.body.appendChild(form);
                form.submit();
            }
            return false;
        }</script> <a onclick="confirmPOST_id3907(true, '/view/FlyerV5/job/DPM-Flyer-Context/doDeleteAllDisabledModules', 'Are you sure about deleting all the disabled modules?')" href="#" class="task-link">Delete All Disabled Modules</a><script>function confirmPOST_id3907(post, href, message) {
            if (confirm(message)) {
                var form = document.createElement('form');
                form.setAttribute('method', post ? 'POST' : 'GET');
                form.setAttribute('action', href);
                if (post) {
                    crumb.appendToForm(form);
                }
                document.body.appendChild(form);
                form.submit();
            }
            return false;
        }</script></div>

The source snippet is too big. I added the reminder in a comment below.

After upgrade WITHOUT Side panel

Jenkins after upgrade WITHOUT Side panel Jenkins before upgrade WITH Side panel

2
What's the source of the page look like? - Seb
Did you customise Jenkins with a theme or did you customise some CSS files? - Bruno Lavit
Hi Bruno, The color theme was customized by CM person before me. But how does the color theme affect this issue? Thank you - H L
Hi Seb, I added the source page. But it is too big so the last section got truncated. - H L
You ever taken any backups of the system before you did this? - Seb

2 Answers

1
votes

I found out that you can't have all the themes installed at the same time because they aren't compatible. That being said the only one I needed to remove was the "Simple Theme plugin".

Solution Steps:

  1. Open the {Your_Jenkins_Server}:{Port}/pluginManager/installed
  2. Search for "Simple Theme plugin"
  3. Uncheck the box for "Simple Theme plugin".
  4. Select the "Restart once no jobs are running" (can be different depending on the version) box and wait for the restart.
0
votes

It may be a cache issue. Try to clear the cache (Ctrl+R in Chrome)