I'm seeing some deadlock problems with Equinox lazy bundle starting, much as described at http://wiki.eclipse.org/Lazy_Start_Bundles. This page suggests that these were only occurring in 3.2, but I'm running with Equinox 3.3. What is the status of resolving these issues?
I should mention as well that I'm using Declarative Services, and that this is involved in the deadlocks I've seen so far. The problems relate to the declarative services code being registered as a bundle listener hence getting callbacks when bundles are lazily started. It then synchronously proceeds to read component specifications and activating services (hence calling out into client code). Having all this happening synchronously on a callback essentially sourced from within a classloader seems like a recipe for problems!
I'm working on a server-side application so I actually don't care about lazy start at all. So to work around the problem, I tried disabling the EclipseLazyStarter hook using the osgi.hook.configurators.exclude system property. This caused problems when starting some Equinox bundles that would look for services that hadn't been registered. Presumably because the bundles providing these services depend on being started via the lazy start mechanism. I then tried working around this by ensuring I listed all necessary bundles in my config.ini with the right start level, but I found it difficult to come up with a working configuration here.
Does anyone have any other suggestions for how I can run Equinox with lazy start disabled?