[jboss-jira] [JBoss JIRA] (WFLY-9021) Unhelpful failure message if transaction subsystem 'delete' op is run against a non-existent resource on a domain mode server

Brian Stansberry (JIRA) issues at jboss.org
Wed Jun 28 17:07:00 EDT 2017


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

Brian Stansberry updated WFLY-9021:
-----------------------------------
    Description: 
In a domain if you run the 'delete' op against an invalid transaction resource you get an invalid failure message about trying to directly call a write op on a server:

{code}
[domain at localhost:9990 /] /host=master/server=server-one/subsystem=transactions/log-store=log-store/transactions=0\:ffff0afc4420\:3b2568af\:594b9528\::delete()
{
    "outcome" => "failed",
    "result" => undefined,
    "failure-description" => "WFLYCTL0249: Operation 'delete' targeted at resource '[
    (\"subsystem\" => \"transactions\"),
    (\"log-store\" => \"log-store\"),
    (\"transactions\" => \"0:ffff0afc4420:3b2568af:594b9528:\")
]' was directly invoked by a user. User operations are not permitted to directly update the persistent configuration of a server in a managed domain.",
    "rolled-back" => true
}
{code}

This is because if the resource doesn't exist, the check for mods to non-runtime-only resources is checking the MRR to see if it's runtime only. But this MRR doesn't declare it is so the kernel thinks a direct write to the model is happening and rejects that.

A fix results in the appropriate failure for invoking against a non-existent resource:

{code}
[domain at localhost:9990 /] /host=master/server=server-one/subsystem=transactions/log-store=log-store/transactions=0\:ffff0afc4420\:3b2568af\:594b9528\::delete()
{
    "outcome" => "failed",
    "result" => undefined,
    "failure-description" => "WFLYCTL0216: Management resource '[
    (\"subsystem\" => \"transactions\"),
    (\"log-store\" => \"log-store\"),
    (\"transactions\" => \"0:ffff0afc4420:3b2568af:594b9528:\")
]' not found",
    "rolled-back" => true
}
{code}

  was:
In a domain if you run the 'delete' op against an invalid transaction resource you get an invalid failure message about trying to directly call a write op on a server:

{code}
[domain at localhost:9990 /] /host=master/server=server-one/subsystem=transactions/log-store=log-store/transactions=0\:ffff0afc4420\:3b2568af\:594b9528\::delete()
{
    "outcome" => "failed",
    "result" => undefined,
    "failure-description" => "WFLYCTL0249: Operation 'delete' targeted at resource '[
    (\"subsystem\" => \"transactions\"),
    (\"log-store\" => \"log-store\"),
    (\"transactions\" => \"0:ffff0afc4420:3b2568af:594b9528:\")
]' was directly invoked by a user. User operations are not permitted to directly update the persistent configuration of a server in a managed domain.",
    "rolled-back" => true
}
{code}

This is because if the resource doesn't exist, the check for mods to non-runtime-only resources is checking the MRR to see if its runtime only. But this MRR doesn't declare it is so the kernel thinks a direct write to the model is happening and rejects that.

A fix results in:

{code}
[domain at localhost:9990 /] /host=master/server=server-one/subsystem=transactions/log-store=log-store/transactions=0\:ffff0afc4420\:3b2568af\:594b9528\::delete()
{
    "outcome" => "failed",
    "result" => undefined,
    "failure-description" => "WFLYCTL0216: Management resource '[
    (\"subsystem\" => \"transactions\"),
    (\"log-store\" => \"log-store\"),
    (\"transactions\" => \"0:ffff0afc4420:3b2568af:594b9528:\")
]' not found",
    "rolled-back" => true
}
{code}



> Unhelpful failure message if transaction subsystem 'delete' op is run against a non-existent resource on a domain mode server
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WFLY-9021
>                 URL: https://issues.jboss.org/browse/WFLY-9021
>             Project: WildFly
>          Issue Type: Bug
>          Components: Transactions
>            Reporter: Brian Stansberry
>            Assignee: Brian Stansberry
>            Priority: Minor
>
> In a domain if you run the 'delete' op against an invalid transaction resource you get an invalid failure message about trying to directly call a write op on a server:
> {code}
> [domain at localhost:9990 /] /host=master/server=server-one/subsystem=transactions/log-store=log-store/transactions=0\:ffff0afc4420\:3b2568af\:594b9528\::delete()
> {
>     "outcome" => "failed",
>     "result" => undefined,
>     "failure-description" => "WFLYCTL0249: Operation 'delete' targeted at resource '[
>     (\"subsystem\" => \"transactions\"),
>     (\"log-store\" => \"log-store\"),
>     (\"transactions\" => \"0:ffff0afc4420:3b2568af:594b9528:\")
> ]' was directly invoked by a user. User operations are not permitted to directly update the persistent configuration of a server in a managed domain.",
>     "rolled-back" => true
> }
> {code}
> This is because if the resource doesn't exist, the check for mods to non-runtime-only resources is checking the MRR to see if it's runtime only. But this MRR doesn't declare it is so the kernel thinks a direct write to the model is happening and rejects that.
> A fix results in the appropriate failure for invoking against a non-existent resource:
> {code}
> [domain at localhost:9990 /] /host=master/server=server-one/subsystem=transactions/log-store=log-store/transactions=0\:ffff0afc4420\:3b2568af\:594b9528\::delete()
> {
>     "outcome" => "failed",
>     "result" => undefined,
>     "failure-description" => "WFLYCTL0216: Management resource '[
>     (\"subsystem\" => \"transactions\"),
>     (\"log-store\" => \"log-store\"),
>     (\"transactions\" => \"0:ffff0afc4420:3b2568af:594b9528:\")
> ]' not found",
>     "rolled-back" => true
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list