[jboss-jira] [JBoss JIRA] (WFCORE-692) read-children-names(include-aliases=true) can return phantom results if another resource exists with the same key

Paul Ferraro (JIRA) issues at jboss.org
Wed May 13 20:40:20 EDT 2015


     [ https://issues.jboss.org/browse/WFCORE-692?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Ferraro updated WFCORE-692:
--------------------------------
    Description: 
If a resource exists with the same key as the target address of a resource alias, read-children-names can return incorrect results.

Here's an example:
I have a alias registered that translates:
{noformat}/subsystem=infinispan/cache-container=*/local-cache=*/file-store=FILE_STORE{noformat}
to:
{noformat}/subsystem=infinispan/cache-container=*/local-cache=*/store=file{noformat}
Additionally, I have a resource named:
{noformat}/subsystem=infinispan/cache-container=*/local-cache=*/store=none{noformat}

If I create a cache that uses store=none, the corresponding read-children-names(child-type=file-store, include-aliases=true) operation returns the name of the FILE_STORE resource, even though the target resource (i.e. file=store) does not exist.
This additionally causes the /subsystem=infinispan:read-resource(include-aliases=true, recursive=true) operation to fail.

  was:
If a resource exists with the same key as the target address of a resource alias, read-resource-children
Just because an alias is registered doesn't mean a child resource necessarily exists at the target address.  The handler needs to validate that a resource actually exists at the target address rather than assuming it does.  This causes read-resource(recursive=true, include-aliases=true) to fail.

Here's an example:
I have a alias registered that translates:
{noformat}/subsystem=infinispan/cache-container=*/local-cache=*/file-store=FILE_STORE{noformat}
to:
{noformat}/subsystem=infinispan/cache-container=*/local-cache=*/store=file{noformat}

If I create a cache without a file cache store (which is perfectly valid), the corresponding read-resource operation returns a child for file-store=FILE_STORE, even though it returns no child for file=store (the target address), since no such child resource exists.

This is very problematic, since it makes aliases impossible to use if the target child resource is not always present.




> read-children-names(include-aliases=true) can return phantom results if another resource exists with the same key
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: WFCORE-692
>                 URL: https://issues.jboss.org/browse/WFCORE-692
>             Project: WildFly Core
>          Issue Type: Bug
>          Components: Domain Management
>    Affects Versions: 1.0.0.CR3
>            Reporter: Paul Ferraro
>            Assignee: Brian Stansberry
>
> If a resource exists with the same key as the target address of a resource alias, read-children-names can return incorrect results.
> Here's an example:
> I have a alias registered that translates:
> {noformat}/subsystem=infinispan/cache-container=*/local-cache=*/file-store=FILE_STORE{noformat}
> to:
> {noformat}/subsystem=infinispan/cache-container=*/local-cache=*/store=file{noformat}
> Additionally, I have a resource named:
> {noformat}/subsystem=infinispan/cache-container=*/local-cache=*/store=none{noformat}
> If I create a cache that uses store=none, the corresponding read-children-names(child-type=file-store, include-aliases=true) operation returns the name of the FILE_STORE resource, even though the target resource (i.e. file=store) does not exist.
> This additionally causes the /subsystem=infinispan:read-resource(include-aliases=true, recursive=true) operation to fail.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


More information about the jboss-jira mailing list