Jira & Confluence working ok separately - crashing when starting the other one

Hi, I have deployed both Jira and Confluence on the same server. They are working well when only of the the two services is up. But one will crash almost immediately when the other service is started. I have spent hours of reading forum posts for hints how to proceed but found nothing that would remove the issue. You can find my Nginx configuration, Confluence and Jira server.xml here: http://pastebin.com/gQwnmtnH I kindly ask any advices. Thank you so much.

12 answers

Nic: yes, sorry for the unelaborated explanations mainly due to the fact that I couldn't find any indications to these "crashes". So first I would run both instances in foreground mode - and loading the sites in browser, one of these services would end (in other words, running the instance in foreground would just throw the user back to the command line). And without any visibile messages in the logs. I didn't try to "raise the loglevel" as indicated above.

However, it seems that this was at least partly related to insufficient memory. I had 2Gb on my VPS but just noticed that there was a free upgade available to 4Gb (Linode). I did the upgrade - and without further changing configurations on my Jira & Confluence, both services are running fast without any problems ever since I upgraded the memory...

Hi Jussi,

Did you mean that both applications are deployed on tomcat application server? If that is the case, this is bound to happen as we dont support deployment of multiple applications on same server.

Another possibility could be that JIRA and Confluence share same home and as thus locking each other. You will ostly face this issue especially if you are using the hsqldb database that are bundled with the apps.

What I can suggest you do is start confluence, then start JIRA so as to replicate the issue, you can then provide us with the logs for both.

0 votes

You need to look at the application server as well, not the web-server logs. Atlassian-jira.log for example, rather than all the hits on nginx.

Hi,

First of all, thanks for your answers!

My Jira and Confluence were installed few years ago, and have been in little use. I experienced occasional crashing every now and then but after upgrading I cannot run both instances at all.

And to be honest, I'm not sure if they are in the same Tomcat container. However I thought about this option, too, yesterday when trying to find out the solution.

How do I find out if both are in the same Tomcat container? And would they be in the same container, what would be the best way to move other existing application to it's own container?

Cheers,

Jussi

Hi Jussi,

If you are using a WAR installation, then there is likelyhood that you might have deployed them all in one container, this can be known if we look at the catalina.out logs when both applications are started.

The easier way of moving the apps will be to take a backup of one of the application and installing a fresh standalone application which comes bundled with self contained container. You can then do import to restore your backup

Hello,

My configuration is certainly completely wrong and I would appreciate any hints to fix it. To consider the following issues:

1) Start Confluence AND Jira in foreground

2) Accessing Jira works (though slower than just running the Jira instance)

3) The messages from Jira appear to the Confluence shell (as it was ran with -fg), messages such as:

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
2013-06-12 03:10:28,995 http-bio-9999-exec-44 WARN user1 190x150x3 1wyvmxh 193.174.18.1,127.0.0.1 /rest/greenhopper/1.0/xboard/work/allData.json [core.entity.transaction.JNDIFactory] [JNDIFactory.getUserTransaction] Failed to find UserTransaction named java:comp/env/UserTransaction in JNDI.

Thanks for any help.

hi jussi.

first of all you need to check how the apps were installed.

you could check on system level by using i.e commands like "find" or you can check the default paths like "/opt/atlassian"

thats where the standalone install procedure puts them by default.

other way would be checking the system info from inside the app itself.

look for it in administration area:

System Properties > catalina.base

besides this you could check for running tomcat port on your system...default should be http://yourHost:8080

once you reach this one..you can check deployed applications from there

Hi,

So here some logs.

Start confluence:

/opt/atlassian# tail confluence/logs/catalina.2013-06-12.log
Jun 12, 2013 3:30:21 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 563 ms
Jun 12, 2013 3:30:21 AM org.apache.catalina.core.StandardService start
INFO: Starting service Tomcat-Standalone
Jun 12, 2013 3:30:21 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.35
Jun 12, 2013 3:31:33 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8888
Jun 12, 2013 3:31:33 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 72403 ms

Start Jira:

/opt/atlassian# tail jira/logs/catalina.2013-06-12.log 
Jun 12, 2013 3:35:16 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /opt/atlassian/jira/jre/lib/i386/client:/opt/atlassian/jira/jre/lib/i386:/opt/atlassian/jira/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib
Jun 12, 2013 3:35:16 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-9999"]
Jun 12, 2013 3:35:16 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 776 ms
Jun 12, 2013 3:35:16 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jun 12, 2013 3:35:16 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.29


root@li305-138:/opt/atlassian# tail jira/logs/localhost.2013-06-12.log 
Jun 12, 2013 3:21:21 AM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: loaded (conf ok)
Jun 12, 2013 3:23:03 AM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: destroy called
Jun 12, 2013 3:25:19 AM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: loaded (conf ok)
Jun 12, 2013 3:30:09 AM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: destroy called
Jun 12, 2013 3:44:08 AM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: loaded (conf ok)

Accessing Jira gives the following entry to localhost.xxx-.log:

/opt/atlassian# tail jira/logs/localhost.2013-06-12.log
Jun 12, 2013 3:17:08 AM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: destroy called
Jun 12, 2013 3:21:21 AM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: loaded (conf ok)
Jun 12, 2013 3:23:03 AM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: destroy called
Jun 12, 2013 3:25:19 AM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: loaded (conf ok)
Jun 12, 2013 3:30:09 AM org.apache.catalina.core.ApplicationContext log
INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: destroy called

And consequently Confluence instance crashes.

looks like standalone...at least confluence. i suggest the user who installed this also chose standalone for jira.

i don't think it's clever to look in Jiras log file to find out why confluence crashes.

please do exactly the same but thistime check the confluence log file during the last action.

if possible increase the loglevel..

Ok, those are a good start. It might be worth describing the "crash" in slightly more detail and look to see what the logs say as the application crashes (e.g. does confluence simply stop responding to users? Or does the process stop dead? Error messages instead of pages? )

I think it's important to work out if you've got them installed in the same container or not too - they can co-exist, but it's not safe or supported, so if they are, I'm afraid your answer is going to be "separate them and try again".

To tell if they are separate, have a look at their "system information" pages - they might tell you something if you look at the installation directories those pages say. Also, how do you stop and start these services? Separate scripts? Finally, a look at processes on the box might tell you as well. What does "ps -ef | grep java" say?

First of all, thanks again for answers!

Yesterday I actually checking a wrong log file and missed the following error messages on Confluence Catalina logs:

SEVERE: The web application [/confluence] appears to have started a thread named [Spring executor 9] but has failed to stop it. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.atlassian.core.logging.ThreadLocalErrorCollection$2] (value [com.atlassian.core.logging.ThreadLocalErrorCollection$2@1bd9b92]) and a value of type [java.lang.Boolean] (value [false]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.opensymphony.xwork.ActionContext.ActionContextThreadLocal] (value [com.opensymphony.xwork.ActionContext$ActionContextThreadLocal@1b6998a]) and a value of type [com.opensymphony.xwork.ActionContext] (value [com.opensymphony.xwork.ActionContext@11a413c]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@b10426]) and a value of type [org.dom4j.DocumentFactory] (value [org.dom4j.DocumentFactory@187959d]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.atlassian.confluence.concurrent.ThreadLocalMap] (value [com.atlassian.confluence.concurrent.ThreadLocalMap@6f990d]) and a value of type [java.util.HashMap] (value [{}]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.google.inject.spi.SourceProviders$1] (value [com.google.inject.spi.SourceProviders$1@a96347]) and a value of type [com.google.inject.spi.SourceProvider[]] (value [[Lcom.google.inject.spi.SourceProvider;@b4e553]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [org.apache.shindig.common.xml.XmlUtil$2] (value [org.apache.shindig.common.xml.XmlUtil$2@3bdbb1]) and a value of type [org.apache.xerces.jaxp.DocumentBuilderImpl] (value [org.apache.xerces.jaxp.DocumentBuilderImpl@1d476ed]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.atlassian.confluence.concurrent.ThreadLocalMap] (value [com.atlassian.confluence.concurrent.ThreadLocalMap@6f990d]) and a value of type [java.util.HashMap] (value [{}]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.google.inject.InjectorImpl$10] (value [com.google.inject.InjectorImpl$10@1cbdb29]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@a19c23]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.atlassian.confluence.concurrent.ThreadLocalMap] (value [com.atlassian.confluence.concurrent.ThreadLocalMap@6f990d]) and a value of type [java.util.HashMap] (value [{}]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.atlassian.core.logging.ThreadLocalErrorCollection$2] (value [com.atlassian.core.logging.ThreadLocalErrorCollection$2@1bd9b92]) and a value of type [java.lang.Boolean] (value [false]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.atlassian.confluence.concurrent.ThreadLocalMap] (value [com.atlassian.confluence.concurrent.ThreadLocalMap@6f990d]) and a value of type [java.util.HashMap] (value [{}]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:29 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.atlassian.confluence.concurrent.ThreadLocalMap] (value [com.atlassian.confluence.concurrent.ThreadLocalMap@6f990d]) and a value of type [java.util.HashMap] (value [{}]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jun 12, 2013 4:01:31 AM org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8888

Found some indications this happening in Tomcat 5.5. I have Tomcat 6 installed...

And now when Jira was still running normally, I started Confluence which came up and is accessible.

However immediately after starting Cofnluence, Jira went down with the following errors:

/opt/atlassian# tail jira/logs/catalina.2013-06-12.log -n 20
Jun 12, 2013 4:02:38 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jun 12, 2013 4:02:38 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.29
Jun 12, 2013 4:04:21 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-9999"]
Jun 12, 2013 4:04:21 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 103722 ms
Jun 12, 2013 4:04:37 AM com.sun.jersey.spi.container.servlet.WebComponent filterFormParameters
WARNING: A servlet POST request, to the URI http://jira.taombo.com/jira/rest/gadget/1.0/login, contains form parameters in the request body but the request body has been consumed by the servlet or a servlet filter accessing the request parameters. Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.
Jun 12, 2013 4:05:14 AM com.sun.jersey.spi.inject.Errors processErrorMessages
WARNING: The following warnings have been detected with resource and/or provider classes:
  WARNING: A sub-resource method, public javax.ws.rs.core.Response is.origo.jira.plugin.rest.WorklogsResource.addHoursEmpty(javax.servlet.http.HttpServletRequest) throws java.lang.Exception, with URI template, "/", is treated as a resource method
Jun 12, 2013 4:05:49 AM org.apache.jasper.compiler.TldLocationsCache tldScanJar
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Jun 12, 2013 4:05:53 AM com.sun.jersey.spi.inject.Errors processErrorMessages
WARNING: The following warnings have been detected with resource and/or provider classes:
  WARNING: A sub-resource method, public javax.ws.rs.core.Response is.origo.jira.plugin.rest.WorklogsResource.addHoursEmpty(javax.servlet.http.HttpServletRequest) throws java.lang.Exception, with URI template, "/", is treated as a resource method
Jun 12, 2013 4:06:04 AM com.sun.jersey.spi.container.servlet.WebComponent filterFormParameters
WARNING: A servlet POST request, to the URI http://jira.taombo.com/jira/rest/tempo-rest/1.0/worklogs/IPCC-497, contains form parameters in the request body but the request body has been consumed by the servlet or a servlet filter accessing the request parameters. Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.

That looks very much like two separate installations to me, which is good.

However, the "crash" symptoms you are seeing are pretty clear - one installation is taking down the other somehow. They should really be completely independent, but obviously they aren't in this case.

The log you've got here is just a warning though, not an actual crash - could you look further through the log to the point where it actually crashes? And give us a brief description of what your users are seeing when trying both systems.

And now when Jira was still running normally, I started Confluence which came up and is accessible.

However immediately after starting Cofnluence, Jira went down with the following errors:

/opt/atlassian# tail jira/logs/catalina.2013-06-12.log -n 20
Jun 12, 2013 4:02:38 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jun 12, 2013 4:02:38 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.29
Jun 12, 2013 4:04:21 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-9999"]
Jun 12, 2013 4:04:21 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 103722 ms
Jun 12, 2013 4:04:37 AM com.sun.jersey.spi.container.servlet.WebComponent filterFormParameters
WARNING: A servlet POST request, to the URI http://jira.myserver.com/jira/rest/gadget/1.0/login, contains form parameters in the request body but the request body has been consumed by the servlet or a servlet filter accessing the request parameters. Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.
Jun 12, 2013 4:05:14 AM com.sun.jersey.spi.inject.Errors processErrorMessages
WARNING: The following warnings have been detected with resource and/or provider classes:
  WARNING: A sub-resource method, public javax.ws.rs.core.Response is.origo.jira.plugin.rest.WorklogsResource.addHoursEmpty(javax.servlet.http.HttpServletRequest) throws java.lang.Exception, with URI template, "/", is treated as a resource method
Jun 12, 2013 4:05:49 AM org.apache.jasper.compiler.TldLocationsCache tldScanJar
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Jun 12, 2013 4:05:53 AM com.sun.jersey.spi.inject.Errors processErrorMessages
WARNING: The following warnings have been detected with resource and/or provider classes:
  WARNING: A sub-resource method, public javax.ws.rs.core.Response is.origo.jira.plugin.rest.WorklogsResource.addHoursEmpty(javax.servlet.http.HttpServletRequest) throws java.lang.Exception, with URI template, "/", is treated as a resource method
Jun 12, 2013 4:06:04 AM com.sun.jersey.spi.container.servlet.WebComponent filterFormParameters
WARNING: A servlet POST request, to the URI http://jira.myserver.com/jira/rest/tempo-rest/1.0/worklogs/IPCC-497, contains form parameters in the request body but the request body has been consumed by the servlet or a servlet filter accessing the request parameters. Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.

Nic:

When starting both services, I have two Java processes running:

/opt/atlassian# ps -ef | grep java
jira1    14213     1  2 04:02 pts/3    00:02:39 /opt/atlassian/jira/jre//bin/java -Djava.util.logging.config.file=/opt/atlassian/jira/conf/logging.properties -XX:MaxPermSize=256m -Xms256m -Xmx768m -Djava.awt.headless=true -Datlassian.standalone=JIRA -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dmail.mime.decodeparameters=true -XX:+PrintGCDateStamps -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/atlassian/jira/endorsed -classpath /opt/atlassian/jira/bin/bootstrap.jar:/opt/atlassian/jira/bin/tomcat-juli.jar -Dcatalina.base=/opt/atlassian/jira -Dcatalina.home=/opt/atlassian/jira -Djava.io.tmpdir=/opt/atlassian/jira/temp org.apache.catalina.startup.Bootstrap start start
1017     18889 18882 18 05:39 pts/2    00:00:00 /opt/atlassian/confluence/jre//bin/java -Djava.util.logging.config.file=/opt/atlassian/confluence/conf/logging.properties -Xms256m -Xmx512m -XX:MaxPermSize=256m -Djava.awt.headless=true -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/atlassian/confluence/endorsed -classpath /opt/atlassian/confluence/bin/bootstrap.jar -Dcatalina.base=/opt/atlassian/confluence -Dcatalina.home=/opt/atlassian/confluence -Djava.io.tmpdir=/opt/atlassian/confluence/temp org.apache.catalina.startup.Bootstrap start
root     18911 17972  0 05:39 pts/6    00:00:00 grep --color=auto java

About whether these two apps are in the "container", I'm still not sure. So I have two Java processes running - is that an indication they are "separated"? Or that they are in their proper folders inside /opt/atlassian/? Also:

In Confluence -> System Information:

Confluence Home     /var/atlassian/application-data/confluence

In Jira -> System Info:

Current Working Directory   /opt/atlassian/jira/bin

I provide further information if anyone who could help would need some.

they are not.

boths seem to be standalone installs so the use their own tomcat

/opt/atlassian/ = INSTALL_DIR

/var/atlassian/application-data/ = HOME_DIR

I tried to post much the same earlier, but it seemed to vanish.

It really looks like two standalone installs, but somehow, they are interfering with each other. My next two questions are

1. You say the second service "crashes" the first, but could you expand on that? What does the user see, and what urls are you using to go to the two services?

2. The logs are useful, but the last one isn't actually showing a crash at all, just a few warnings - could you go further down until you find the actual crash message with "stopping because ...." type messages? Or confirm that the processes simply stop, or hang, without more in the log.

Suggest an answer

Log in or Sign up to answer
Community showcase
Published Nov 27, 2018 in Portfolio for Jira

Introducing a new planning experience in Portfolio for Jira (Server/DC)

In the past, Portfolio for Jira required a high degree of detail–foresight that was unrealistic for many businesses to   have–in   order to produce a reliable long-term roadmap. We're tur...

2,704 views 17 21
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you