I hope this patch will also meet your scenario of having 2 threads coming
through a single UnifiedClassLoader ...

http://sourceforge.net/tracker/index.php?func=detail&aid=548098&group_id=228
66&atid=376687

Weird,
CGJ
-----Ursprüngliche Nachricht-----
Von: Dave Smith [mailto:[EMAIL PROTECTED]] 
Gesendet: Mittwoch, 24. April 2002 13:45
An: [EMAIL PROTECTED]
Betreff: Re: [JBoss-dev] Workaround for JUNG's RFE and load deadlock


Well my simple test cases worked but I pulled out the heavy hitters and
managed to get a dead lock. Stack traces follow ...

"Thread-23" prio=5 tid=0x81a4f60 nid=0x69cb waiting on monitor
[0xbe7fe000..0xbe7ffad8]
        at java.lang.Object.wait(Native Method)
        - waiting on <43a28660> (a
org.jboss.mx.loading.UnifiedLoaderRepository)
        at java.lang.Object.wait(Object.java:420)
        at
org.jboss.mx.loading.UnifiedLoaderRepository.sync(UnifiedLoaderRepository.ja
va:717)
        - locked <43a28660> (a
org.jboss.mx.loading.UnifiedLoaderRepository)
        at
org.jboss.mx.loading.UnifiedLoaderRepository.releaseLock(UnifiedLoaderReposi
tory.java:313)
        at
org.jboss.mx.loading.UnifiedLoaderRepository.loadClass(UnifiedLoaderReposito
ry.java:261)
        at
org.jboss.mx.loading.UnifiedClassLoader.loadClass(UnifiedClassLoader.java:21
7)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
        - locked <43f72c18> (a org.jboss.mx.loading.UnifiedClassLoader)
        at iaik.security.cipher.j.a(RawCipher.java)
        at iaik.security.cipher.n.a(RawBlockCipher64.java)
        at iaik.security.cipher.r.engineInit(BufferedCipher.java)
        at javax.crypto.Cipher.init(Cipher.java)
        at iaik.pkcs.pkcs7.SignerInfo.encodeCalled(SignerInfo.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.ConstructedType.encode(ConstructedType.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.ConstructedType.encode(ConstructedType.java)
        at iaik.asn1.SET.encode(SET.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.ConstructedType.encode(ConstructedType.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.CON_SPEC.encode(CON_SPEC.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.ConstructedType.encode(ConstructedType.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.encode(DerCoder.java)
        - locked <441342d0> (a iaik.asn1.SEQUENCE)
        at iaik.asn1.DerCoder.encodeTo(DerCoder.java)
        at iaik.asn1.DerCoder.encodeTo(DerCoder.java)
        at
iaik.pkcs.pkcs7.ContentInfoStream.writeTo(ContentInfoStream.java)
        at com.entrust.toolkit.a.run(PKCS7EncodeStream.java)
        at java.lang.Thread.run(Thread.java:484)


"CCRAPoll" prio=5 tid=0x81b3940 nid=0x69b4 waiting for monitor entry
[0xbb5ff000..0xbb5ffad8]
        at
org.jboss.mx.loading.UnifiedLoaderRepository.lock(UnifiedLoaderRepository.ja
va:283)
        - waiting to lock <43f72c18> (a
org.jboss.mx.loading.UnifiedClassLoader)
        at
org.jboss.mx.loading.UnifiedLoaderRepository.loadClass(UnifiedLoaderReposito
ry.java:156)
        at
org.jboss.mx.loading.UnifiedClassLoader.loadClass(UnifiedClassLoader.java:21
7)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
        at java.security.Security.getImpl(Security.java:815)
        at java.security.Signature.getInstance(Signature.java:172)
        at iaik.x509.X509CRL.verify(X509CRL.java)
        at iaik.x509.X509CRL.verify(X509CRL.java)
        at
com.entrust.toolkit.x509.revocation.X509CRLRS.validateCRL(X509CRLRS.java)
        at
com.entrust.toolkit.x509.revocation.CachedCRLRS.loadCRLs(CachedCRLRS.java)
        - locked <437fbb80> (a
com.entrust.toolkit.x509.revocation.CachedCRLRS)
        at
com.entrust.toolkit.x509.revocation.X509CRLRS.findCRL(X509CRLRS.java)
        - locked <437fbb80> (a
com.entrust.toolkit.x509.revocation.CachedCRLRS)
        at
com.entrust.toolkit.x509.revocation.X509CRLRS.check(X509CRLRS.java)
        at
com.entrust.toolkit.x509.revocation.CollectionRS.check(CollectionRS.java)
        at
com.entrust.toolkit.x509.revocation.CollectionRS.check(CollectionRS.java)
        at com.entrust.toolkit.x509.certstore.c.a(Node.java)
        at com.entrust.toolkit.x509.certstore.c.a(Node.java)
        at
com.entrust.toolkit.x509.certstore.CollectionCS.validate(CollectionCS.java)
        - locked <437fb078> (a
com.entrust.toolkit.x509.certstore.CollectionCS)
        at com.entrust.toolkit.credentials.Profile.a(Profile.java)
        at com.entrust.toolkit.credentials.Profile.a(Profile.java)
        - locked <43fe7ac0> (a com.entrust.toolkit.credentials.Profile)
        at com.entrust.toolkit.credentials.Profile.<init>(Profile.java)
        at com.entrust.toolkit.User.login(User.java)
        - locked <43fcaab0> (a com.entrust.toolkit.User)
        at com.candata.gateway.Encryption.<init>(Unknown Source)
        at com.candata.gateway.CCRAAbstract.getEncryption(Unknown
Source)
        at com.candata.gateway.CCRAAbstract.recvMsg(Unknown Source)
        at com.candata.gateway.CCRAPoll.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:484)

"Thread-23" prio=5 tid=0x81a4f60 nid=0x69cb waiting on monitor
[0xbe7fe000..0xbe7ffad8]
        at java.lang.Object.wait(Native Method)
        - waiting on <43a28660> (a
org.jboss.mx.loading.UnifiedLoaderRepository)
        at java.lang.Object.wait(Object.java:420)
        at
org.jboss.mx.loading.UnifiedLoaderRepository.sync(UnifiedLoaderRepository.ja
va:717)
        - locked <43a28660> (a
org.jboss.mx.loading.UnifiedLoaderRepository)
        at
org.jboss.mx.loading.UnifiedLoaderRepository.releaseLock(UnifiedLoaderReposi
tory.java:313)
        at
org.jboss.mx.loading.UnifiedLoaderRepository.loadClass(UnifiedLoaderReposito
ry.java:261)
        at
org.jboss.mx.loading.UnifiedClassLoader.loadClass(UnifiedClassLoader.java:21
7)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
        - locked <43f72c18> (a org.jboss.mx.loading.UnifiedClassLoader)
        at iaik.security.cipher.j.a(RawCipher.java)
        at iaik.security.cipher.n.a(RawBlockCipher64.java)
        at iaik.security.cipher.r.engineInit(BufferedCipher.java)
        at javax.crypto.Cipher.init(Cipher.java)
        at iaik.pkcs.pkcs7.SignerInfo.encodeCalled(SignerInfo.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.ConstructedType.encode(ConstructedType.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.ConstructedType.encode(ConstructedType.java)
        at iaik.asn1.SET.encode(SET.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.ConstructedType.encode(ConstructedType.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.CON_SPEC.encode(CON_SPEC.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.ConstructedType.encode(ConstructedType.java)
        at iaik.asn1.ASN1Object.encodeObject(ASN1Object.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.a(DerCoder.java)
        at iaik.asn1.DerCoder.encode(DerCoder.java)
        - locked <441342d0> (a iaik.asn1.SEQUENCE)
        at iaik.asn1.DerCoder.encodeTo(DerCoder.java)
        at iaik.asn1.DerCoder.encodeTo(DerCoder.java)
        at
iaik.pkcs.pkcs7.ContentInfoStream.writeTo(ContentInfoStream.java)
        at com.entrust.toolkit.a.run(PKCS7EncodeStream.java)
        at java.lang.Thread.run(Thread.java:484)



On Tue, 2002-04-23 at 22:59, marc fleury wrote:
> So I commited a workaround for the RFE that jung has with SUN.
> 
> Essentially it all amounts to making the ULR mono-threaded and 
> relinqueshing the locks as we go.  It's pretty simple stuff since it 
> is a subset of the locking in the container.  Plus it is the kind of 
> stuff I get off with :)
> 
> Ok seriously now, the stuff boots, however *i haven't tested it*. I 
> know there is some multithreaded loading in the server because it 
> locked when I put a buggy "workaround" and it comes from the 
> clustering code BUT since I didn't have a reproducible case of 
> deadlock in my code I haven't tested.
> 
> I don't know if this actually fixes anything, I just think it does.
> 
> Dave, Alarik, can I ask you guys to test if you deadlock.
> please update from CVS for the latest JMX code. 
> 
> thanks please let me know on this thread if the stuff doesn't work 
> (could very well be since, again,  I haven't tested it with a real 
> deadlock).
> 
> most likely I will need a few iterations on this :)
> 
> marcf
> 
> PS: instructions
> remove your current codebase
> cvs co jboss-all
> build/sh build.sh
> cd output/jboss3.1...
> put your files in the deploy dir
> bin/sh run.sh
> report what goes on
> 
> * * *
> 
> View thread online: 
> http://jboss.org/forums/thread.jsp?forum=66&thread=13851
> 
> _______________________________________________
> Jboss-development mailing list [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development



_______________________________________________
Jboss-development mailing list [EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to