On 9/8/09 7:53 PM, Don Brown wrote:
As you may have noticed from the issues, I'm getting several
concurrency failures in the rewritten URLHandlers code after upgrading
from 1.2.1. These bugs are keeping my plugin builds red about 95% of
the time, which is basically a showstopper. I see Karl has a fix for
the deadlock [1], and I just filed the race condition [2], so assuming
they get fixed on trunk soon, how soon could I get a Felix 2.0.1?
Alternatively, I could rollback to my fork of 1.2.1, but I'd hate to
do that due to some bugs in class resolution that were fixed in later
releases. I guess I could also fork 1.8.1 or 2.0.0, but I'd really
rather not.
Well, if we come up with patch against trunk, then it seems forking
2.0.0 would make more sense until there is an official release including
them.
Also, I'm surprised no one else has seen this deadlock before as it
seems to have been in the code for a while. Am I the only one that
has heaps of integration tests bringing Felix up and down?
Well, you are just reporting them, no? :-)
The URL Handlers section of code is quite terrible with respect to
concurrency handling...the code is super complicated and has to deal
with a lot of concurrency issues within the JVM and how class loading
happens during URL resolution...this was exacerbated by the fact that
the OSGi spec was changed to specifically allow built-in stream handler
overloading.
As you say, these bugs apparently aren't new, just undiscovered, so we
will address them as they are found. Thanks for reporting them.
-> richard
Don
[1] https://issues.apache.org/jira/browse/FELIX-1565
[2] https://issues.apache.org/jira/browse/FELIX-1573