Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-20988

Deadlock inPluginUtils.getHistoryDao

XMLWordPrintable

      During a functional test in which the jobConfigHistory (2.5) was loaded, I observed a deadlock:

      "Trigger.init":
        waiting to lock monitor 0x6ed0f06c (object 0xa2a5c080, a hudson.DescriptorExtensionList),
        which is held by "UpdateCenter.init"
      "UpdateCenter.init":
        waiting to lock monitor 0x69e32098 (object 0xb2602558, a hudson.ExtensionList$Lock),
        which is held by "Trigger.init"
      "Trigger.init":
      	at hudson.ExtensionList.ensureLoaded(ExtensionList.java:246)
      	- waiting to lock <0xa2a5c080> (a hudson.DescriptorExtensionList)
      	at hudson.ExtensionList.iterator(ExtensionList.java:138)
      	at hudson.model.User.load(User.java:150)
      	- locked <0xa2b26450> (a hudson.model.User)
      	at hudson.model.User.<init>(User.java:121)
      	at hudson.model.User.getOrCreate(User.java:342)
      	at hudson.model.User.get(User.java:331)
      	at hudson.model.User.get(User.java:299)
      	at hudson.model.User.get(User.java:354)
      	at hudson.model.User.current(User.java:366)
      	at hudson.plugins.jobConfigHistory.PluginUtils.getHistoryDao(PluginUtils.java:78)
      	at hudson.plugins.jobConfigHistory.PluginUtils.getHistoryDao(PluginUtils.java:62)
      	at hudson.plugins.jobConfigHistory.JobConfigHistoryPurger.<init>(JobConfigHistoryPurger.java:48)
      	at hudson.plugins.jobConfigHistory.JobConfigHistoryPurger$$FastClassByGuice$$737d44b4.newInstance(<generated>)
      	at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
      	at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61)
      	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:108)
      	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:87)
      	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:259)
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
      	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1018)
      	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
      	at com.google.inject.Scopes$1$1.get(Scopes.java:59)
      	- locked <0xb26c2c38> (a com.google.inject.Scopes$1$1)
      	at hudson.ExtensionFinder$GuiceFinder$4$1.get(ExtensionFinder.java:422)
      	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
      	at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
      	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
      	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
      	at hudson.ExtensionFinder$GuiceFinder._find(ExtensionFinder.java:391)
      	at hudson.ExtensionFinder$GuiceFinder.find(ExtensionFinder.java:382)
      	at hudson.ExtensionFinder._find(ExtensionFinder.java:151)
      	at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:308)
      	at hudson.ExtensionList.load(ExtensionList.java:295)
      	at hudson.ExtensionList.ensureLoaded(ExtensionList.java:248)
      	- locked <0xb2602558> (a hudson.ExtensionList$Lock)
      	at hudson.ExtensionList.iterator(ExtensionList.java:138)
      	at hudson.triggers.Trigger.init(Trigger.java:293)
      	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 hudson.init.InitializerFinder.invoke(InitializerFinder.java:120)
      	at hudson.init.InitializerFinder$TaskImpl.run(InitializerFinder.java:184)
      	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
      	at jenkins.model.Jenkins$7.runTask(Jenkins.java:893)
      	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
      	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:744)
      "UpdateCenter.init":
      	at hudson.ExtensionList.ensureLoaded(ExtensionList.java:246)
      	- waiting to lock <0xb2602558> (a hudson.ExtensionList$Lock)
      	at hudson.ExtensionList.getComponents(ExtensionList.java:149)
      	at hudson.DescriptorExtensionList.load(DescriptorExtensionList.java:182)
      	at hudson.ExtensionList.ensureLoaded(ExtensionList.java:248)
      	- locked <0xa2a5c080> (a hudson.DescriptorExtensionList)
      	at hudson.ExtensionList.iterator(ExtensionList.java:138)
      	at hudson.model.User.load(User.java:150)
      	- locked <0xa2a5bcd0> (a hudson.model.User)
      	at hudson.model.User.<init>(User.java:121)
      	at hudson.model.User.getOrCreate(User.java:342)
      	at hudson.model.User.get(User.java:331)
      	at hudson.model.User.get(User.java:299)
      	at hudson.model.User.get(User.java:354)
      	at hudson.model.User.current(User.java:366)
      	at hudson.plugins.jobConfigHistory.PluginUtils.getHistoryDao(PluginUtils.java:78)
      	at hudson.plugins.jobConfigHistory.PluginUtils.getHistoryDao(PluginUtils.java:62)
      	at hudson.plugins.jobConfigHistory.JobConfigHistorySaveableListener.getHistoryDao(JobConfigHistorySaveableListener.java:49)
      	at hudson.plugins.jobConfigHistory.JobConfigHistorySaveableListener.onChange(JobConfigHistorySaveableListener.java:28)
      	at hudson.model.listeners.SaveableListener.fireOnChange(SaveableListener.java:78)
      	at hudson.model.UpdateCenter.save(UpdateCenter.java:514)
      	- locked <0xb269fbd8> (a hudson.model.UpdateCenter)
      	at hudson.util.PersistedList.onModified(PersistedList.java:173)
      	at hudson.util.PersistedList._onModified(PersistedList.java:181)
      	at hudson.util.PersistedList.add(PersistedList.java:72)
      	at hudson.model.UpdateCenter.load(UpdateCenter.java:544)
      	- locked <0xb269fbd8> (a hudson.model.UpdateCenter)
      	at hudson.model.UpdateCenter.init(UpdateCenter.java:1538)
      	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 hudson.init.InitializerFinder.invoke(InitializerFinder.java:120)
      	at hudson.init.InitializerFinder$TaskImpl.run(InitializerFinder.java:184)
      	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
      	at jenkins.model.Jenkins$7.runTask(Jenkins.java:893)
      	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
      	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:744)
      

            mfriedenhagen Mirko Friedenhagen
            jglick Jesse Glick
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: