[jboss-jira] [JBoss JIRA] (WFCORE-3479) Deploying an empty deployment and adding content later fails in a composite

ehsavoie Hugonnet (JIRA) issues at jboss.org
Wed Aug 22 12:19:00 EDT 2018


    [ https://issues.jboss.org/browse/WFCORE-3479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13622769#comment-13622769 ] 

ehsavoie Hugonnet commented on WFCORE-3479:
-------------------------------------------

For the record :
Like [~kabirkhan] saw the problem is that the empty deployment is not added to the servers themselves but to the domain model 'only' (since it is not deployed) so when adding content the resource doesn't exist on the server and it shouldn't be propagated to them.
Since we look at the domain model to 'see' which servers (from the server groups referencing the deployment) to propagate the add-content operation to this causes the issue. We need to 'filter' those (maybe check that the deployment is enabled).

> Deploying an empty deployment and adding content later fails in a composite
> ---------------------------------------------------------------------------
>
>                 Key: WFCORE-3479
>                 URL: https://issues.jboss.org/browse/WFCORE-3479
>             Project: WildFly Core
>          Issue Type: Bug
>          Components: Management
>    Affects Versions: 3.0.10.Final
>            Reporter: Kabir Khan
>            Assignee: ehsavoie Hugonnet
>
> When adding mixed domain tests for EAP 7.1.0 I could not get the MixedDomainDeployment710TestCase.testExplodedDeployment() test to work. Comparing with the core domain ExplodedDeploymentTestCase.testInstallAndExplodeDeploymentOnDCFromScratch(), they both do the following:
> {code}
> 1) Create an empty deployment
> 2) Add some content to the deployment using input streams
> 3) Add the deployment to a server group
> {code}
> However, they differ in that ExplodedDeploymentTestCase does this as individual steps, while MixedDomainDeployment710TestCase does this in a composite. I have a branch at https://github.com/kabir/wildfly-core/tree/WFCORE-3479 which expands ExplodedDeploymentTestCase to demonstrate the problem. 
> Going back to MixedDomainDeploymentTestCase, the testExplodedDeployment() test pushes the following composite to the DC:
> {code}
> {
>     "operation" => "composite",
>     "address" => [],
>     "steps" => [
>         {
>             "operation" => "add",
>             "address" => [("deployment" => "test.war")],
>             "content" => [{"empty" => true}]
>         },
>         {
>             "operation" => "add-content",
>             "address" => [("deployment" => "test.war")],
>             "content" => [
>                 {
>                     "target-path" => "index.html",
>                     "input-stream-index" => 0
>                 },
>                 {
>                     "target-path" => "index2.html",
>                     "input-stream-index" => 1
>                 }
>             ]
>         },
>         {
>             "operation" => "add",
>             "address" => [
>                 ("server-group" => "other-server-group"),
>                 ("deployment" => "test.war")
>             ],
>             "enabled" => true
>         },
>         {
>             "operation" => "add",
>             "address" => [
>                 ("server-group" => "main-server-group"),
>                 ("deployment" => "test.war")
>             ],
>             "enabled" => true
>         }
>     ],
>     "operation-headers" => {
>         "caller-type" => "user",
>         "access-mechanism" => "NATIVE",
>         "domain-uuid" => "b016e0a3-4175-4f40-b6b9-779fc0fd1745",
>         "execute-for-coordinator" => true
>     }
> }
> {code}
> What ends up being pushed to the slave is:
> {code}
> {
>     "operation" => "composite",
>     "address" => [],
>     "steps" => [
>         {
>             "operation" => "add",
>             "address" => [("deployment" => "test.war")],
>             "content" => [{
>                 "hash" => bytes {
>                     0x8f, 0x7c, 0x8c, 0x80, 0x35, 0x88, 0x36, 0x16,
>                     0x61, 0xfa, 0x0a, 0x10, 0x30, 0xf9, 0x13, 0x29,
>                     0x04, 0x05, 0x9d, 0x82
>                 },
>                 "archive" => false
>             }],
>             "operation-headers" => {
>                 "caller-type" => "user",
>                 "access-mechanism" => "NATIVE",
>                 "domain-uuid" => "9f6d874e-24f8-41ec-a1d0-9c98509964fc"
>             },
>             "runtime-name" => undefined
>         },
>         {
>             "operation" => "add-content",
>             "address" => [("deployment" => "test.war")],
>             "content" => [{
>                 "hash" => bytes {
>                     0x52, 0x3a, 0x0a, 0x7b, 0x3b, 0xae, 0x1c, 0x67,
>                     0x22, 0x51, 0xf6, 0x34, 0xb5, 0x3b, 0xe7, 0xf9,
>                     0x78, 0x59, 0x91, 0x63
>                 },
>                 "target-path" => "."
>             }],
>             "operation-headers" => {
>                 "caller-type" => "user",
>                 "access-mechanism" => "NATIVE",
>                 "domain-uuid" => "9f6d874e-24f8-41ec-a1d0-9c98509964fc"
>             },
>             "path" => [
>                 "index.html",
>                 "index2.html"
>             ]
>         },
>         {
>             "operation" => "add",
>             "address" => [
>                 ("server-group" => "other-server-group"),
>                 ("deployment" => "test.war")
>             ],
>             "enabled" => true
>         },
>         {
>             "operation" => "add",
>             "address" => [
>                 ("server-group" => "main-server-group"),
>                 ("deployment" => "test.war")
>             ],
>             "enabled" => true
>         }
>     ],
>     "operation-headers" => {
>         "caller-type" => "user",
>         "access-mechanism" => "NATIVE",
>         "domain-uuid" => "9f6d874e-24f8-41ec-a1d0-9c98509964fc",
>         "execute-for-coordinator" => true
>     }
> }
> {code}
> The error reported by the DC is:
> {code}
> {
>     "outcome" => "failed",
>     "result" => {
>         "step-1" => {
>             "outcome" => "failed",
>             "rolled-back" => true
>         },
>         "step-2" => {
>             "outcome" => "failed",
>             "rolled-back" => true
>         },
>         "step-3" => {
>             "outcome" => "failed",
>             "rolled-back" => true
>         },
>         "step-4" => {
>             "outcome" => "failed",
>             "rolled-back" => true
>         }
>     },
>     "failure-description" => {"WFLYDC0074: Operation failed or was rolled back on all servers. Server failures:" => {"server-group" => {"other-server-group" => {"host" => {"slave" => {"server-one" => {"WFLYCTL0062: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-1" => "WFLYCTL0216: Management resource '[(\"deployment\" => \"test.war\")]' not found"}}}}}}}},
>     "rolled-back" => true,
>     "server-groups" => {"other-server-group" => {"host" => {"slave" => {"server-one" => {"response" => {
>         "outcome" => "failed",
>         "result" => {
>             "step-1" => {
>                 "outcome" => "failed",
>                 "failure-description" => "WFLYCTL0216: Management resource '[(\"deployment\" => \"test.war\")]' not found",
>                 "rolled-back" => true
>             },
>             "step-2" => {"outcome" => undefined}
>         },
>         "failure-description" => {"WFLYCTL0062: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-1" => "WFLYCTL0216: Management resource '[(\"deployment\" => \"test.war\")]' not found"}},
>         "rolled-back" => true
>     }}}}}}
> }
> {code}
> Having debugged the slave process a bit, I *believe* the following is what is passed to the servers by the slave HC:
> {code}
> {
>     "operation" => "composite",
>     "steps" => [
>         {
>             "operation" => "add-content",
>             "address" => [("deployment" => "test.war")],
>             "content" => [{
>                 "hash" => bytes {
>                     0x52, 0x3a, 0x0a, 0x7b, 0x3b, 0xae, 0x1c, 0x67,
>                     0x22, 0x51, 0xf6, 0x34, 0xb5, 0x3b, 0xe7, 0xf9,
>                     0x78, 0x59, 0x91, 0x63
>                 },
>                 "target-path" => "."
>             }],
>             "operation-headers" => {
>                 "access-mechanism" => "NATIVE",
>                 "domain-uuid" => "2bd6c01d-a844-43fc-8d10-7d6e4c32e5b1"
>             },
>             "path" => [
>                 "index.html",
>                 "index2.html"
>             ]
>         },
>         {
>             "operation" => "add",
>             "address" => [("deployment" => "test.war")],
>             "enabled" => true,
>             "operation-headers" => {
>                 "access-mechanism" => "NATIVE",
>                 "domain-uuid" => "2bd6c01d-a844-43fc-8d10-7d6e4c32e5b1"
>             },
>             "runtime-name" => "test.war",
>             "content" => [{
>                 "hash" => bytes {
>                     0x52, 0x3a, 0x0a, 0x7b, 0x3b, 0xae, 0x1c, 0x67,
>                     0x22, 0x51, 0xf6, 0x34, 0xb5, 0x3b, 0xe7, 0xf9,
>                     0x78, 0x59, 0x91, 0x63
>                 },
>                 "archive" => false
>             }]
>         }
>     ],
>     "operation-headers" => {
>         "access-mechanism" => "NATIVE",
>         "domain-uuid" => "2bd6c01d-a844-43fc-8d10-7d6e4c32e5b1"
>     },
>     "address" => []
> }
> {code}
> Note that 'add-content' now comes BEFORE 'add', which would explain the "Management resource '[(\"deployment\" => \"test.war\")]' not found".



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jboss-jira mailing list