Uploaded image for project: 'Bitbucket Data Center'
  1. Bitbucket Data Center
  2. BSERV-19282

Shutting down Bitbucket throws an error in the logs file

    XMLWordPrintable

Details

    Description

      Issue Summary

      Shutting down the Bitbucket application issues an error in the application log. However it doesn't seem to have an impact on the performance of the application.

      This is reproducible on Data Center: Yes

      Steps to Reproduce

      1. Start up a Btbucketr instance and perform some activities such as browse through a couple of repositories etc
      2. Shut down the instance. 

      Expected Results

      The application gets shutdown gracefully.

      Actual Results

      The below error is thrown in the atlassian-bitbucket.log file:

      2024-02-09 12:38:29,538 ERROR [SpringApplicationShutdownHook]  c.a.e.i.AsynchronousAbleEventDispatcher There was an exception thrown trying to dispatch event [com.atlassian.config.lifecycle.events.ApplicationStoppingEvent@2415d5b5] from the invoker [com.atlassian.event.internal.ComparableListenerInvoker@3d5af776]
      java.lang.RuntimeException: Can't stop an already stopped recording.. Listener: com.atlassian.troubleshooting.jfr.manager.DefaultJfrRecordingManager event: com.atlassian.config.lifecycle.events.ApplicationStoppingEvent
      	at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:53)
      	at com.atlassian.diagnostics.internal.platform.monitor.event.EventSystemMonitor.invokeMonitored(EventSystemMonitor.java:105)
      	at com.atlassian.diagnostics.internal.platform.monitor.event.MonitoredListenerInvoker.invoke(MonitoredListenerInvoker.java:38)
      	at com.atlassian.event.internal.ComparableListenerInvoker.invoke(ComparableListenerInvoker.java:48)
      	at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.lambda$null$0(AsynchronousAbleEventDispatcher.java:37)
      	at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:85)
      	at com.atlassian.diagnostics.internal.platform.monitor.event.MonitoredEventDispatcher.dispatch(MonitoredEventDispatcher.java:36)
      	at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:114)
      	at com.atlassian.event.internal.LockFreeEventPublisher.publish(LockFreeEventPublisher.java:40)
      	at com.atlassian.stash.internal.event.TransactionAwareEventPublisher.internalPublish(TransactionAwareEventPublisher.java:159)
      	at com.atlassian.stash.internal.event.TransactionAwareEventPublisher.publish(TransactionAwareEventPublisher.java:103)
      	at com.atlassian.stash.internal.config.ConfigLifecycle.stop(ConfigLifecycle.java:45)
      	at com.atlassian.stash.internal.spring.AbstractSmartLifecycle.stop(AbstractSmartLifecycle.java:36)
      	at org.springframework.context.support.DefaultLifecycleProcessor.doStop(DefaultLifecycleProcessor.java:235)
      	at org.springframework.context.support.DefaultLifecycleProcessor.access$300(DefaultLifecycleProcessor.java:54)
      	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.stop(DefaultLifecycleProcessor.java:374)
      	at org.springframework.context.support.DefaultLifecycleProcessor.stopBeans(DefaultLifecycleProcessor.java:207)
      	at org.springframework.context.support.DefaultLifecycleProcessor.onClose(DefaultLifecycleProcessor.java:130)
      	at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078)
      	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1032)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      	at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
      	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.stopTomcat(TomcatWebServer.java:273)
      	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.stop(TomcatWebServer.java:331)
      	at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.stop(WebServerStartStopLifecycle.java:52)
      	at org.springframework.context.SmartLifecycle.stop(SmartLifecycle.java:117)
      	at org.springframework.context.support.DefaultLifecycleProcessor.doStop(DefaultLifecycleProcessor.java:235)
      	at org.springframework.context.support.DefaultLifecycleProcessor.access$300(DefaultLifecycleProcessor.java:54)
      	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.stop(DefaultLifecycleProcessor.java:374)
      	at org.springframework.context.support.DefaultLifecycleProcessor.stopBeans(DefaultLifecycleProcessor.java:207)
      	at org.springframework.context.support.DefaultLifecycleProcessor.onClose(DefaultLifecycleProcessor.java:130)
      	at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1078)
      	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174)
      	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1032)
      	at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145)
      	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
      	at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114)
      	at java.base/java.lang.Thread.run(Thread.java:829)
      	... 23 frames trimmed
      Caused by: java.lang.IllegalStateException: Can't stop an already stopped recording.
      	at jdk.jfr/jdk.jfr.internal.PlatformRecorder.stop(PlatformRecorder.java:262)
      	at jdk.jfr/jdk.jfr.internal.PlatformRecording.stop(PlatformRecording.java:157)
      	at jdk.jfr/jdk.jfr.Recording.stop(Recording.java:210)
      	at com.atlassian.troubleshooting.jfr.domain.RecordingWrapper.stop(RecordingWrapper.java:207)
      	at com.atlassian.troubleshooting.jfr.service.JfrAlwaysOnRecordingService.lambda$stopDefaultRecording$1(JfrAlwaysOnRecordingService.java:66)
      	at java.base/java.util.Optional.ifPresent(Optional.java:183)
      	at com.atlassian.troubleshooting.jfr.service.JfrAlwaysOnRecordingService.stopDefaultRecording(JfrAlwaysOnRecordingService.java:65)
      	at com.atlassian.troubleshooting.jfr.manager.DefaultJfrRecordingManager.onStop(DefaultJfrRecordingManager.java:303)
      	at com.atlassian.troubleshooting.jfr.manager.DefaultJfrRecordingManager.onApplicationStoppingEvent(DefaultJfrRecordingManager.java:236)
      	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:42)
      	... 40 common frames omitted 

      This is a thrown exception in the JFR https://github.com/AdoptOpenJDK/openjdk-jdk11/blob/master/src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformRecorder.java#L263.

      Workaround

      Currently, there is no known workaround for this behavior as it doesn't seem to be having an impact on the application. 

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              46ac2648bc84 Naveen
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: