-
Bug
-
Resolution: Fixed
-
High
-
5.5.0, 5.6.0, 5.10.2
-
None
-
5
-
Severity 3 - Minor
-
1
-
Issue Summary
JSM >= 5.5 is not writing ServiceDesk and Insight/Assets logs in Windows. Probably related to updates made in log4j2.
This is reproducible on Data Center: (yes)
Steps to Reproduce
- Deploy JSM 5.5 or 5.6 in Windows (can be also an update)
- Perform any action in JSM or Insight that would be logged
- Insight example: export object schema.
- JSM example: Edit something in a project's SLA
- Logs aren't updated.
Expected Results
The logs atlassian-servicedesk.log and the Insight logs should be populated as they were up to JSM 5.4
Actual Results
The atlassian-servicedesk.log and the Insight logs aren't updated at all. The following stack trace was found at the startup and may be related:
03-Mar-2023 08:35:00.486 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.70] ERROR StatusLogger Unable to create custom ContextSelector. Falling back to default. java.lang.ClassNotFoundException: org.apache.logging.log4j.core.selector.BasicContextSelector -Dlog4j2.disableJmx=true -Dlog4j2.garbagefree.threadContextMap=true -Dlog4j2.isWebapp=false -Djava.awt.headless=true at java.base/java.net.URLClassLoader.findClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Unknown Source) at org.apache.logging.log4j.util.LoaderUtil.loadClass(LoaderUtil.java:173) at org.apache.logging.log4j.util.LoaderUtil.newInstanceOf(LoaderUtil.java:211) at org.apache.logging.log4j.util.LoaderUtil.newCheckedInstanceOf(LoaderUtil.java:231) at org.apache.logging.log4j.util.LoaderUtil.newCheckedInstanceOfProperty(LoaderUtil.java:255) at org.apache.logging.log4j.core.util.Loader.newCheckedInstanceOfProperty(Loader.java:338) at org.apache.logging.log4j.core.impl.Log4jContextFactory.createContextSelector(Log4jContextFactory.java:100) at org.apache.logging.log4j.core.impl.Log4jContextFactory.<init>(Log4jContextFactory.java:61) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) at java.base/java.lang.Class.newInstance(Unknown Source) at org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:95) at com.atlassian.logging.log4j.juli.JuliToLog4jHandler.publish(JuliToLog4jHandler.java:45) at java.logging/java.util.logging.Logger.log(Unknown Source) at java.logging/java.util.logging.Logger.doLog(Unknown Source) at java.logging/java.util.logging.Logger.logp(Unknown Source) at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) at org.apache.juli.logging.DirectJDKLog.info(DirectJDKLog.java:116) at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:264) at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104) at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:83) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5211) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383) at java.base/java.util.concurrent.FutureTask.run(Unknown Source) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:265) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:430) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:772) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
Workaround
Follow the "Windows Service" steps here, but looks like they're outdated for the latest settings, so please use:
tomcat9w.exe //ES//JIRA
The first line of the "Java options" are all on one line, this is what is causing the issue, they all need to be on their own line, their separator is the "-D", so seperate each of those options across multiple lines. Here's an example of the start of what the config should look like after you've made the change.
-Dlog4j2.contextSelector=org.apache.logging.log4j.core.selector.BasicContextSelector -Dlog4j2.disableJmx=true -Dlog4j2.garbagefree.threadContextMap=true -Dlog4j2.isWebapp=false -Djava.awt.headless=true -Datlassian.standalone=JIRA
Then restart Jira via Windows services.msc.
Alternatively, use the start-up.bat file to start Jira instead of running Jira as a service.
Form Name |
---|
We're working with the Jira Core team on a permanent fix for this bug.
Currently blocked while we wait, but assured a fix to be complete soon.
Aiming to have resolved in time for the 5.12 LTS.