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

Improve handing of bundle updates concurrent to other lifecycle changes

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: framework-5.6.1
    • Fix Version/s: framework-5.6.2
    • Component/s: Framework
    • Labels:
      None

      Description

      Updating a bundle that is in the STARTING or STOPPING state is currently causing a bundle exception saying that we couldn't perform the update.

      According to the current spec we have to allow to call update on bundles in the STARTING or STOPPING state and handle them like we would handle ACTIVE bundles (I.e., wait until the bundle is in the ACTIVE state and then stop it) or wait until the bundle is RESOLVED, respectively, and then do the update.

      The reason, I believe, we currently throw the exception is that we have to prevent the case where a bundle that is getting STARTED or STOPPED triggers an update of itself (directly or indirectly) in the same thread before it has transitioned into RESOLVED or ACTIVE. If that happens, we'd otherwise run into a deadlock which might even involve the global lock (and hence, pretty much deadlock the complete framework).

      However, we should be able to detect that case separately and only then throw an exception.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                karlpauls Karl Pauls
                Reporter:
                karlpauls Karl Pauls
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: