aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Ross (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (ARIES-1109) Consider making the persistence of AriesSubsystem-LastId more robust.
Date Tue, 03 Sep 2013 13:50:52 GMT

     [ https://issues.apache.org/jira/browse/ARIES-1109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

John Ross updated ARIES-1109:
-----------------------------

    Description: 
Currently, AriesSubsystem-LastId is only persisted when the subsystems bundle is stopped.
It will not be persisted, for example, when System.exit is called or some sort of crash occurs.

There are at least three options.

(1) Add a JVM shutdown hook.

(2) Persist the last ID with each subsystem installation.

(3) Periodically persist the last ID in a background thread (i.e. batch the installations).

---------------------------------------------------------------------------

aries subsystems will generate duplicate subsystem ids if the subsystem core bundle (or the
container) is restarted.

Reproduction is quite easy:
1. install a subsystem -> this will get subsystem id 1
2. stop the org.apache.aries.subsystem.core bundle (or the OSGi container)
3. start the org.apache.aries.subsystem.core bundle (or the OSGi container)
-> the subsystem installed in step 1 is still there and has id 1
4. Install another subsystem (different from the first)
-> This will also get Id 1

I think the error is in line 150 of the org.apache.subsystems.core.internal.Subsystems class.
There the static lastId counter of the SubsystemIdentifier class is set to 0 before actually
populating the root subsystem.

Maybe this should be set to the maximum id of the installed subsystems during or after the
population of the root subsystem

  was:
aries subsystems will generate duplicate subsystem ids if the subsystem core bundle (or the
container) is restarted.

Reproduction is quite easy:
1. install a subsystem -> this will get subsystem id 1
2. stop the org.apache.aries.subsystem.core bundle (or the OSGi container)
3. start the org.apache.aries.subsystem.core bundle (or the OSGi container)
-> the subsystem installed in step 1 is still there and has id 1
4. Install another subsystem (different from the first)
-> This will also get Id 1

I think the error is in line 150 of the org.apache.subsystems.core.internal.Subsystems class.
There the static lastId counter of the SubsystemIdentifier class is set to 0 before actually
populating the root subsystem.

Maybe this should be set to the maximum id of the installed subsystems during or after the
population of the root subsystem

        Summary: Consider making the persistence of AriesSubsystem-LastId more robust.  (was:
Duplicate subsystem ids after restart of subsystem.core)
    
> Consider making the persistence of AriesSubsystem-LastId more robust.
> ---------------------------------------------------------------------
>
>                 Key: ARIES-1109
>                 URL: https://issues.apache.org/jira/browse/ARIES-1109
>             Project: Aries
>          Issue Type: Bug
>          Components: Subsystem
>            Reporter: Stephan Siano
>         Attachments: a.esa, b.esa, c.esa
>
>
> Currently, AriesSubsystem-LastId is only persisted when the subsystems bundle is stopped.
It will not be persisted, for example, when System.exit is called or some sort of crash occurs.
> There are at least three options.
> (1) Add a JVM shutdown hook.
> (2) Persist the last ID with each subsystem installation.
> (3) Periodically persist the last ID in a background thread (i.e. batch the installations).
> ---------------------------------------------------------------------------
> aries subsystems will generate duplicate subsystem ids if the subsystem core bundle (or
the container) is restarted.
> Reproduction is quite easy:
> 1. install a subsystem -> this will get subsystem id 1
> 2. stop the org.apache.aries.subsystem.core bundle (or the OSGi container)
> 3. start the org.apache.aries.subsystem.core bundle (or the OSGi container)
> -> the subsystem installed in step 1 is still there and has id 1
> 4. Install another subsystem (different from the first)
> -> This will also get Id 1
> I think the error is in line 150 of the org.apache.subsystems.core.internal.Subsystems
class. There the static lastId counter of the SubsystemIdentifier class is set to 0 before
actually populating the root subsystem.
> Maybe this should be set to the maximum id of the installed subsystems during or after
the population of the root subsystem

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message