Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-3000

Move sending service registered event out of bundle lock

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • framework-3.0.7, framework-3.2.2
    • framework-4.0.0
    • Framework
    • None

    Description

      We have a strange situation on a Framework 3.0.7 based system here which is not reproducible on all platforms.

      We can track down a system freeze/deadlock to three threads all contending for bundle locks and the global lock. See attached FELIX-3000-stacktrace.txt for the stack trace.

      Looking at the Framework source, particularly acquireBundleLock and acquireGlobalLock I cannot see where this "deadlock" can occur.

      The only hint I have is a note in the Felix.registerService:

      > // TODO: CONCURRENCY - Reconsider firing event here, outside of the
      > // bundle lock.

      I wonder whether this situation can be fixed with moving the service registration event ?

      Looking at the code it seems to have not been changed. Thus I report this against 3.0.7 where we saw this and 3.2.2 being the latest release.

      Attachments

        1. FELIX-3000.patch
          3 kB
          Felix Meschberger
        2. FELIX-3000-stacktrace.txt
          9 kB
          Felix Meschberger

        Issue Links

          Activity

            People

              rickhall Richard S. Hall
              fmeschbe Felix Meschberger
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: