Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve uniqueness in resource IDs #924

Closed
jphickey opened this issue Sep 30, 2020 · 0 comments · Fixed by #946 or #959
Closed

Improve uniqueness in resource IDs #924

jphickey opened this issue Sep 30, 2020 · 0 comments · Fixed by #946 or #959
Assignees
Milestone

Comments

@jphickey
Copy link
Contributor

Is your feature request related to a problem? Please describe.
In the event that a resource "A" such as an app/counter/pool etc is created, then deleted, then another resource "B" is created, the code will re-issue the same resource ID for "B" as was used for "A".

This means if a stale reference to "A" is stored somewhere, it silently now becomes an alias to "B". All validation/checks will pass.

Describe the solution you'd like
Should not immediately recycle ID values.

Additional context
This is the way OSAL already works, and is enabled by using abstract IDs.

With the recently introduced resource ID abstractions, it is no longer necessary to limit to the respective table size(s), because IDs are not directly used as table indices anymore. This means that a much larger set of potential ID values is available, and thus means that IDs of old/deleted objects can be different than the new objects while keeping table size the same.

Requester Info
Joseph Hickey, Vantage Systems, Inc.

@jphickey jphickey self-assigned this Sep 30, 2020
jphickey added a commit to jphickey/cFE that referenced this issue Oct 13, 2020
Use the entire resource ID space (16 bits) and do not
immediately recycle ID values until the full space is
used.

Implement a generic routine to find the next available ID,
and modify every resource ID allocation to use this
routine.

Where necessary, this also corrects for differences in
argument checking and duplicate checking between the various
resource types.  All resource allocation procedures now
have consistent argument checking, and will reject
duplicate name creation for any resources that are
also associated with names.
jphickey added a commit to jphickey/cFE that referenced this issue Oct 13, 2020
Use the entire resource ID space (16 bits) and do not
immediately recycle ID values until the full space is
used.

Implement a generic routine to find the next available ID,
and modify every resource ID allocation to use this
routine.

Where necessary, this also corrects for differences in
argument checking and duplicate checking between the various
resource types.  All resource allocation procedures now
have consistent argument checking, and will reject
duplicate name creation for any resources that are
also associated with names.
jphickey added a commit to jphickey/cFE that referenced this issue Oct 13, 2020
Use the entire resource ID space (16 bits) and do not
immediately recycle ID values until the full space is
used.

Implement a generic routine to find the next available ID,
and modify every resource ID allocation to use this
routine.

Where necessary, this also corrects for differences in
argument checking and duplicate checking between the various
resource types.  All resource allocation procedures now
have consistent argument checking, and will reject
duplicate name creation for any resources that are
also associated with names.
astrogeco added a commit that referenced this issue Oct 21, 2020
Fix #943, #924 and #502, improve resource ID management
jphickey added a commit that referenced this issue Oct 21, 2020
Due to a merge the setting of this to its final value got moved.
Need to use "Pending" value, not the one in the table record.
@astrogeco astrogeco added this to the 7.0.0 milestone Oct 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants