How to fix Bamboo Applink Missing Icons?
Asked by Shah Baloch:

Hi Community,

<br />

I have migrated Bamboo to a new server. Actually, I only copied the home directory data and server.xml file and downloaded the bamboo.tar.gz file from the Atlassian website. I replaced the server.xml file and added the home directory path. Started Bamboo. Everything looks fine except icons are missing from the app link tab. When I right-clicked to inspect the page found out it's still showing the old server's URL (<http://bamboo-server:8085>) the new URL is <https://bamboo-production.server:443>, though that server is shutdown. I tested with multiple browsers. Is there anything else I need to copy to the new server? or how can fix this issue? Here is the class code for the app link that I copied from inspect page.

```
<img class="applinks-icon" src="http://bamboo-server:8085/s/70216/1/6.0.12/_/download/resources/com.atlassian.applinks.applinks-plugin:applinks-images/images/config/logos/128x128/128bitbucket.png" alt="Bitbucket" width="20" height="20">
```

Thank you![bamboo_01172023.JPG](/t5/image/serverpage/image-id/234855i48D6450F1B1473F5/image-size/large?v=v2&px=999 "bamboo_01172023.JPG")


Answers:
author: Eduardo Alvarenga
body: Hello [@Shah Baloch](/t5/user/viewprofilepage/user-id/3738782)

Please update the Server URL:

* **Bamboo Administration** \>\> **General Configuration** \>\> **Base URL**

You need to restart Bamboo after that change.

Also, make sure that the address reported on "**Broker client URL**" is reachable by the Agents.

Cheers,

Eduardo Alvarenga  
Atlassian Support APAC

**--please don't forget to Accept the answer if the reply is helpful--**

comments: author: Shah Baloch
body: Hi [@Eduardo Alvarenga](/t5/user/viewprofilepage/user-id/4365410) thank you so much, for some reason I missed the URL part. I updated Base URL and Broker client URL. However Broker URL doesn't have a hostname, it is "*nio://0.0.0.0:54663?wireFormat.maxInactivityDuration=300000"* and the same port as Broker client URL. Do I need to update the Broker URL or leave it as it is?

I stopped Bamboo after updating the hostname from Base URL and Broker client URL. However, I got an error "Kill failed: $CATALINA_PID not set". I see some failed messages in the Catalina.out log file, not sure these are related to this. Any idea why I'm getting that error?
>
> Bamboo Server Edition  
> Version : 7.2.10
>
> If you encounter issues starting or stopping Bamboo Server, please see the Troubleshooting guide at <https://confluence.atlassian.com/display/BAMBOO/Installing+and+upgrading+Bamboo>
>
> Using CATALINA_BASE: /opt/bamboo  
> Using CATALINA_HOME: /opt/bamboo  
> Using CATALINA_TMPDIR: /opt/bamboo/temp  
> Using JRE_HOME: /usr/lib/jvm/jre-openjdk  
> Using CLASSPATH: /opt/bamboo/bin/bootstrap.jar:/opt/bamboo/bin/tomcat-juli.jar  
> Using CATALINA_OPTS:  
> Kill failed: $CATALINA_PID not set

```
17-Jan-2023 16:58:08.258 SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [ROOT] created a ThreadL
ocal with key of type [org.springframework.core.NamedInheritableThreadLocal] (value [Current invoker bundle context]) and a value of type [org.apache.felix.framework.BundleConte
xtImpl] (value [org.apache.felix.framework.BundleContextImpl@99281c]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to
try and avoid a probable memory leak.
17-Jan-2023 16:58:08.258 SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [ROOT] created a ThreadL
ocal with key of type [org.springframework.core.NamedInheritableThreadLocal] (value [Current invoker bundle context]) and a value of type [org.apache.felix.framework.BundleConte
xtImpl] (value [org.apache.felix.framework.BundleContextImpl@99281c]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to
try and avoid a probable memory leak.
```

Thank you


author: Eduardo Alvarenga
body: Hello [@Shah Baloch](/t5/user/viewprofilepage/user-id/3738782)

The Broker URL is the address where the Bamboo server will listen to the requests, so "0.0.0.0" will mean any interface on the Server; that's the default so you don't have to change it.

The "*Kill failed: $CATALINA_PID not set* " message means literally that the **$CATALINA_PID** environment variable was not set. Depending on how you control Bamboo startup (via a systemd script for example) you must export $CATALINA_PID so it knows which PID to send signals.

Please check the following links for more details and workarounds:

* [Running Bamboo as a Linux service](https://confluence.atlassian.com/bamboo/running-bamboo-as-a-linux-service-416056046.html#systemd) - Notice the following line in the Systemd section:

      Environment=CATALINA_PID=<bamboo-install>/bin/Catalina.pid

* [BAM-20372 - Bamboo start-up scripts should utilize CATALINA_PID checking](https://jira.atlassian.com/browse/BAM-20372) - That one contains a workaround if you are starting/stopping Bamboo manually

Kind regards,

Eduardo Alvarenga  
Atlassian Support APAC

**--please don't forget to Accept the answer if the reply is helpful--**


author: Shah Baloch
body: Hi [@Eduardo Alvarenga](/t5/user/viewprofilepage/user-id/4365410)we'll use the manual start and stop bamboo script to start and stop bamboo. I followed the steps from the second link. These two lines were already in the setenv.sh file.

```
PRGDIR=`dirname "$0"`cat "${PRGDIR}"/bamboobanner.txt
```

I added rest of the code from the link below those lines and it worked.

```
# set the location of the pid fileif [ -z "$CATALINA_PID" ] ; then    if [ -n "$CATALINA_BASE" ] ; then        CATALINA_PID="$CATALINA_BASE"/work/catalina.pid    elif [ -n "$CATALINA_HOME" ] ; then        CATALINA_PID="$CATALINA_HOME"/work/catalina.pid    fifiexport CATALINA_PID
```

However, I encountered a couple of issues. I didn't realize and I started bamboo when I was logged in as root. It created Catalina.pid file in /opt/bamboo/work directory. Then I tried to stop bamboo while logged in as a bamboo user it didn't stop. I had to stop bamboo as root and change the catalina.pid file's ownership to the bamboo user and started again. I got an error that bamboo.cfg.xml doesn't exist. I found out that when I started bamboo as root it updated that file's ownership. So had to stop it again and change the ownership to bamboo and it worked. just wanted to mention that if someone will face a similar issue so they'll know how to fix it.

<br />

Is there any way to hardcode the bamboo user so that the service always starts from the bamboo user? I mean in Jira and Confluence there is a user file where can add the user. I couldn't find a similar file in bamboo, I might be looking wrong directories.

Thank you,


author: Eduardo Alvarenga
body: Hey [@Shah Baloch](/t5/user/viewprofilepage/user-id/3738782)

Thanks for the feedback!

Actually, starting Bamboo as the root user is a very common mistake. Unfortunately, there is no protection mechanism that would prevent Administrators from running it as a different user.

On Linux, we recommend you [set Bamboo to run as a service](https://confluence.atlassian.com/bamboo/running-bamboo-as-a-linux-service-416056046.html#systemd) and control it from there.

***Please do not forget to accept this answer if that works for you as it helps the whole community to index the best answers for common questions!***

Best regards,

Eduardo Alvarenga  
Atlassian Support APAC

**--please don't forget to Accept the answer if the reply is helpful--**


author: Shah Baloch
body: Thank you [@Eduardo Alvarenga](/t5/user/viewprofilepage/user-id/4365410) I created aliases for start and stop bamboo for now. When the user types start-bamboo/stop-bamboo it'll su to the bamboo user and start/stop the bamboo from the bamboo user. I'll bookmark the bamboo service related article if needed I'll create systemd service. Thank you so much for your help, you guys are great.


Tags: application-link

icon