Threadlocks on ContentClassLoader by FelixDispatchQueue and FelixStartLevel 
threads when using log bundles
----------------------------------------------------------------------------------------------------------

                 Key: FELIX-536
                 URL: https://issues.apache.org/jira/browse/FELIX-536
             Project: Felix
          Issue Type: Bug
    Affects Versions: felix-1.0.3
         Environment: 1.6.0_03-b05;Sun Microsystems Inc.;mixed mode, 
sharing;Linux;32 bit JVM
and
1.5.0_13-119;Apple Inc.;mixed mode, sharing;Mac OS X;32 bit JVM

            Reporter: Dieter Wimberger
            Priority: Blocker


Sometimes Felix gets stuck at startup with a threadlock when using a log 
bundle,  including the Felix provided log bundle.

jdb reveals the following information:

FelixDispatchQueue[1] threadlocks 0x3c1
Monitor information for thread FelixDispatchQueue:
  Owned monitor: instance of 
org.apache.felix.framework.searchpolicy.ContentClassLoader(id=970)
   Waiting for monitor: instance of 
org.apache.felix.moduleloader.ModuleFactoryImpl(id=971)

FelixDispatchQueue[1] threadlocks 0x3c0
Monitor information for thread FelixStartLevel:
  Owned monitor: instance of 
org.apache.felix.moduleloader.ModuleFactoryImpl(id=971)
   Waiting for monitor: instance of 
org.apache.felix.framework.searchpolicy.ContentClassLoader(id=970)

FelixStartLevel[1] where
  [1] sun.misc.Unsafe.defineClass (native method)
  [2] sun.reflect.ClassDefiner.defineClass (ClassDefiner.java:45)
  [3] sun.reflect.MethodAccessorGenerator$1.run 
(MethodAccessorGenerator.java:381)
  [4] java.security.AccessController.doPrivileged (native method)
  [5] sun.reflect.MethodAccessorGenerator.generate 
(MethodAccessorGenerator.java:377)
  [6] sun.reflect.MethodAccessorGenerator.generateMethod 
(MethodAccessorGenerator.java:59)
  [7] sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:28)
  [8] sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)
  [9] java.lang.reflect.Method.invoke (Method.java:585)
  [10] org.apache.felix.framework.Logger._logReflectively (Logger.java:163)
  [11] org.apache.felix.framework.Logger._log (Logger.java:143)
  [12] org.apache.felix.framework.Logger.log (Logger.java:81)
  [13] org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.createWires 
(R4SearchPolicyCore.java:2,154)
  [14] org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.resolve 
(R4SearchPolicyCore.java:1,034)
  [15] org.apache.felix.framework.Felix._resolveBundle (Felix.java:1,693)
  [16] org.apache.felix.framework.Felix._startBundle (Felix.java:1,566)
  [17] org.apache.felix.framework.Felix.startBundle (Felix.java:1,519)
  [18] org.apache.felix.framework.Felix.setFrameworkStartLevel 
(Felix.java:1,104)
  [19] org.apache.felix.framework.StartLevelImpl.run (StartLevelImpl.java:258)
  [20] java.lang.Thread.run (Thread.java:613)


FelixDispatchQueue[1] where
  [1] org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.resolve 
(R4SearchPolicyCore.java:989)
  [2] 
org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource 
(R4SearchPolicyCore.java:374)
  [3] org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass 
(R4SearchPolicyCore.java:186)
  [4] org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass 
(R4SearchPolicy.java:45)
  [5] org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass 
(ContentClassLoader.java:109)
  [6] java.lang.ClassLoader.loadClass (ClassLoader.java:251)
  [7] java.lang.ClassLoader.loadClassInternal (ClassLoader.java:374)

I have been reading 
http://www.mail-archive.com/[email protected]/msg03142.html

But I think that it does not really provide a "solution" to this problem and 
that this is an issue in the framework implementation. I don't think that the 
specification of the LogService implies that it cannot be configurable or 
loading any classes.....

Regards,
Dieter





-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to