Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seeing transient memory leaks during tests on Travis #861

Closed
patflynn opened this issue Sep 2, 2016 · 4 comments · Fixed by #874
Closed

Seeing transient memory leaks during tests on Travis #861

patflynn opened this issue Sep 2, 2016 · 4 comments · Fixed by #874
Assignees
Labels
Milestone

Comments

@patflynn
Copy link
Contributor

patflynn commented Sep 2, 2016

com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditorTest > testUiAppEngineFlexEnvironment FAILED
junit.framework.ComparisonFailure at AppEngineDeploymentRunConfigurationEditorTest.java:106
com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditorTest > testUiAppEngineStandardEnvironment FAILED
junit.framework.ComparisonFailure at AppEngineDeploymentRunConfigurationEditorTest.java:94
com.google.cloud.tools.intellij.debugger.CloudExecutionStackTest > testGetTopFrame_nullFramesReturnsNull SKIPPED
com.google.cloud.tools.intellij.debugger.CloudExecutionStackTest > testGetTopFrame_nonNull SKIPPED
ERROR: Memory leak detected: com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor@4ed59f6e of class class com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor
See the cause for the corresponding Disposer.register() stacktrace:
java.lang.RuntimeException: Memory leak detected: com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor@4ed59f6e of class class com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor
See the cause for the corresponding Disposer.register() stacktrace:
at com.intellij.openapi.util.objectTree.ObjectTree.assertIsEmpty(ObjectTree.java:209)
at com.intellij.openapi.util.Disposer.assertIsEmpty(Disposer.java:124)
at com.intellij.openapi.util.Disposer.assertIsEmpty(Disposer.java:120)
at com.intellij.openapi.application.impl.ApplicationImpl.disposeSelf(ApplicationImpl.java:308)
at com.intellij.openapi.application.impl.ApplicationImpl.access$400(ApplicationImpl.java:91)
at com.intellij.openapi.application.impl.ApplicationImpl$5$1.run(ApplicationImpl.java:268)
at com.intellij.openapi.util.ShutDownTracker$2.run(ShutDownTracker.java:172)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:738)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:699)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:708)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:866)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:654)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:381)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.Throwable
at com.intellij.openapi.util.objectTree.ObjectTree.getOrCreateNodeFor(ObjectTree.java:101)
at com.intellij.openapi.util.objectTree.ObjectTree.register(ObjectTree.java:62)
at com.intellij.openapi.util.Disposer.register(Disposer.java:80)
at com.intellij.openapi.util.Disposer.register(Disposer.java:74)
at com.intellij.openapi.options.SettingsEditor.(SettingsEditor.java:56)
at com.intellij.openapi.options.SettingsEditor.(SettingsEditor.java:51)
at com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor.(AppEngineDeploymentRunConfigurationEditor.java:116)
at com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditorTest.testUiAppEngineFlexEnvironment(AppEngineDeploymentRunConfigurationEditorTest.java:102)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at junit.framework.TestCase.runTest(TestCase.java:176)
at com.intellij.testFramework.UsefulTestCase.access$001(UsefulTestCase.java:81)
at com.intellij.testFramework.UsefulTestCase$2.run(UsefulTestCase.java:319)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1010)
at com.intellij.testFramework.PlatformTestCase$5.run(PlatformTestCase.java:750)
at com.intellij.testFramework.PlatformTestCase.invokeTestRunnable(PlatformTestCase.java:766)
at com.intellij.testFramework.UsefulTestCase.runTest(UsefulTestCase.java:335)
at com.intellij.testFramework.PlatformTestCase$4.run(PlatformTestCase.java:666)
at com.intellij.testFramework.EdtTestUtil$Companion$runInEdtAndWait$1.invoke(EdtTestUtil.kt:25)
at com.intellij.testFramework.EdtTestUtil$Companion$runInEdtAndWait$1.invoke(EdtTestUtil.kt:23)
at com.intellij.testFramework.EdtTestUtilKt$sam$Runnable$ca4818df.run(EdtTestUtil.kt)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:302)
... 16 more
ERROR: Memory leak detected: com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor@4ed59f6e of class class com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor
See the cause for the corresponding Disposer.register() stacktrace:
java.lang.AssertionError: Memory leak detected: com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor@4ed59f6e of class class com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor
See the cause for the corresponding Disposer.register() stacktrace:
at com.intellij.openapi.diagnostic.DefaultLogger.error(DefaultLogger.java:66)
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:134)
at com.intellij.openapi.util.objectTree.ObjectTree.assertIsEmpty(ObjectTree.java:215)
at com.intellij.openapi.util.Disposer.assertIsEmpty(Disposer.java:124)
at com.intellij.openapi.util.Disposer.assertIsEmpty(Disposer.java:120)
at com.intellij.openapi.application.impl.ApplicationImpl.disposeSelf(ApplicationImpl.java:308)
at com.intellij.openapi.application.impl.ApplicationImpl.access$400(ApplicationImpl.java:91)
at com.intellij.openapi.application.impl.ApplicationImpl$5$1.run(ApplicationImpl.java:268)
at com.intellij.openapi.util.ShutDownTracker$2.run(ShutDownTracker.java:172)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:738)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:699)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:708)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:866)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:654)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:381)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.RuntimeException: Memory leak detected: com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor@4ed59f6e of class class com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor
See the cause for the corresponding Disposer.register() stacktrace:
at com.intellij.openapi.util.objectTree.ObjectTree.assertIsEmpty(ObjectTree.java:209)
... 23 more
Caused by: java.lang.Throwable
at com.intellij.openapi.util.objectTree.ObjectTree.getOrCreateNodeFor(ObjectTree.java:101)
at com.intellij.openapi.util.objectTree.ObjectTree.register(ObjectTree.java:62)
at com.intellij.openapi.util.Disposer.register(Disposer.java:80)
at com.intellij.openapi.util.Disposer.register(Disposer.java:74)
at com.intellij.openapi.options.SettingsEditor.(SettingsEditor.java:56)
at com.intellij.openapi.options.SettingsEditor.(SettingsEditor.java:51)
at com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor.(AppEngineDeploymentRunConfigurationEditor.java:116)
at com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditorTest.testUiAppEngineFlexEnvironment(AppEngineDeploymentRunConfigurationEditorTest.java:102)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at junit.framework.TestCase.runTest(TestCase.java:176)
at com.intellij.testFramework.UsefulTestCase.access$001(UsefulTestCase.java:81)
at com.intellij.testFramework.UsefulTestCase$2.run(UsefulTestCase.java:319)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1010)
at com.intellij.testFramework.PlatformTestCase$5.run(PlatformTestCase.java:750)
at com.intellij.testFramework.PlatformTestCase.invokeTestRunnable(PlatformTestCase.java:766)
at com.intellij.testFramework.UsefulTestCase.runTest(UsefulTestCase.java:335)
at com.intellij.testFramework.PlatformTestCase$4.run(PlatformTestCase.java:666)
at com.intellij.testFramework.EdtTestUtil$Companion$runInEdtAndWait$1.invoke(EdtTestUtil.kt:25)
at com.intellij.testFramework.EdtTestUtil$Companion$runInEdtAndWait$1.invoke(EdtTestUtil.kt:23)
at com.intellij.testFramework.EdtTestUtilKt$sam$Runnable$ca4818df.run(EdtTestUtil.kt)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:302)
... 16 more
ERROR: Memory leak detected: com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor@4ed59f6e of class class com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor
See the cause for the corresponding Disposer.register() stacktrace:
java.lang.AssertionError: Memory leak detected: com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor@4ed59f6e of class class com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor
See the cause for the corresponding Disposer.register() stacktrace:
at com.intellij.testFramework.LoggedErrorProcessor.processError(LoggedErrorProcessor.java:56)
at com.intellij.testFramework.TestLogger.error(TestLogger.java:67)
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:134)
at com.intellij.ide.plugins.PluginManager.processException(PluginManager.java:133)
at com.intellij.ide.IdeEventQueue.processException(IdeEventQueue.java:402)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:869)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:654)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:381)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Exception in thread "AWT-EventQueue-0 IDEA 15.0.6#IC-143.2370.31 IDEA, eap:false, os:Linux 3.13.0-40-generic, java-version:Oracle Corporation 1.7.0_75-b13 IDEA 15.0.6#IC-143.2370.31 IDEA, eap:false, os:Linux 3.13.0-40-generic, java-version:Oracle Corporation 1.7.0_75-b13" java.lang.AssertionError: Memory leak detected: com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor@4ed59f6e of class class com.google.cloud.tools.intellij.appengine.cloud.AppEngineDeploymentRunConfigurationEditor
See the cause for the corresponding Disposer.register() stacktrace:
at com.intellij.testFramework.LoggedErrorProcessor.processError(LoggedErrorProcessor.java:56)
at com.intellij.testFramework.TestLogger.error(TestLogger.java:67)
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:134)
at com.intellij.ide.plugins.PluginManager.processException(PluginManager.java:133)
at com.intellij.ide.IdeEventQueue.processException(IdeEventQueue.java:402)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:384)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

@patflynn patflynn added this to the 1.0-beta milestone Sep 2, 2016
@patflynn
Copy link
Contributor Author

patflynn commented Sep 2, 2016

@etanshaul assigning to you as it looks deployment related.

@patflynn patflynn modified the milestones: 1.0-GA, 1.0-BETA Sep 2, 2016
@chanseokoh
Copy link
Contributor

Is this about the leak in #860?

I think the memory leak is simply due to Disposer.dispose(editor); not being called at the end after the assertion failure, which will be gone if the test passes.

@patflynn
Copy link
Contributor Author

patflynn commented Sep 2, 2016

I think that the super.tearDown call in tearDown should come after the dispose call.

@patflynn
Copy link
Contributor Author

patflynn commented Sep 7, 2016

it turns out this is output as part of a codepath in com.intellij.openapi.util.objectTree:66 and only occurs when Disposer.isDebugMode() returns true, which is only during unit tests. Additionally it has no impact on test pass/failure.

@patflynn patflynn closed this as completed Sep 7, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
3 participants