Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-5528

"WFLYCTL0171: unsatisfied dependencies" when removing a modified XA datasource

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Done
    • Affects Version/s: 9.0.1.Final, 10.0.0.CR2
    • Fix Version/s: 10.0.0.Final
    • Component/s: JCA
    • Labels:
      None

      Description

      Please note that the present scenario ends with a similar error message and has the same workaround as WFLY-5527.

      Steps to reproduce:

      (1) Create an XA Datasource:

      {
          "operation" => "composite",
          "address" => [],
          "steps" => [
              {
                  "operation" => "add",
                  "address" => [
                      ("subsystem" => "datasources"),
                      ("xa-data-source" => "testXaDs")
                  ],
                  "jndi-name" => "java:/testXaDs",
                  "driver-name" => "h2",
                  "xa-datasource-class" => "org.h2.jdbcx.JdbcDataSource",
                  "user-name" => "sa",
                  "password" => "sa",
                  "new-connection-sql" => undefined,
                  "url-delimiter" => undefined,
                  "url-selector-strategy-class-name" => undefined,
                  "use-java-context" => undefined,
                  "max-pool-size" => undefined,
                  "min-pool-size" => undefined,
                  "initial-pool-size" => undefined,
                  "pool-prefill" => undefined,
                  "pool-use-strict-min" => undefined,
                  "interleaving" => undefined,
                  "capacity-incrementer-class" => undefined,
                  "capacity-decrementer-class" => undefined,
                  "no-tx-separate-pool" => undefined,
                  "pad-xid" => undefined,
                  "same-rm-override" => undefined,
                  "wrap-xa-resource" => undefined,
                  "security-domain" => undefined,
                  "reauth-plugin-class-name" => undefined,
                  "flush-strategy" => undefined,
                  "allow-multiple-users" => undefined,
                  "connection-listener-class" => undefined,
                  "prepared-statements-cache-size" => undefined,
                  "share-prepared-statements" => undefined,
                  "track-statements" => undefined,
                  "allocation-retry" => undefined,
                  "allocation-retry-wait-millis" => undefined,
                  "blocking-timeout-wait-millis" => undefined,
                  "idle-timeout-minutes" => undefined,
                  "query-timeout" => undefined,
                  "use-try-lock" => undefined,
                  "set-tx-query-timeout" => undefined,
                  "transaction-isolation" => undefined,
                  "check-valid-connection-sql" => undefined,
                  "exception-sorter-class-name" => undefined,
                  "stale-connection-checker-class-name" => undefined,
                  "valid-connection-checker-class-name" => undefined,
                  "background-validation-millis" => undefined,
                  "background-validation" => undefined,
                  "use-fast-fail" => undefined,
                  "validate-on-match" => undefined,
                  "xa-resource-timeout" => undefined,
                  "spy" => undefined,
                  "use-ccm" => undefined,
                  "enabled" => undefined,
                  "connectable" => undefined,
                  "statistics-enabled" => undefined,
                  "tracking" => undefined,
                  "recovery-username" => undefined,
                  "recovery-password" => undefined,
                  "recovery-security-domain" => undefined,
                  "recovery-plugin-class-name" => undefined,
                  "no-recovery" => undefined,
                  "url-property" => undefined,
                  "reauth-plugin-properties" => undefined,
                  "exception-sorter-properties" => undefined,
                  "stale-connection-checker-properties" => undefined,
                  "valid-connection-checker-properties" => undefined,
                  "recovery-plugin-properties" => undefined,
                  "connection-listener-property" => undefined,
                  "capacity-incrementer-properties" => undefined,
                  "capacity-decrementer-properties" => undefined
              },
              {
                  "operation" => "add",
                  "address" => [
                      ("subsystem" => "datasources"),
                      ("xa-data-source" => "testXaDs"),
                      ("xa-datasource-properties" => "URL")
                  ],
                  "value" => "jdbc:h2:mem:test"
              }
          ]
      }
      

      (2) Update its "jndi-name"

      {
          "operation" => "composite",
          "address" => [],
          "steps" => [
              {
                  "operation" => "write-attribute",
                  "address" => [
                      ("subsystem" => "datasources"),
                      ("xa-data-source" => "testXaDs")
                  ],
                  "name" => "jndi-name",
                  "value" => "java:/testXaDs_changed"
              }
          ]
      }
      

      This composite operation succeeds.

      (3) Remove the XA Datasource:

      {
          "operation" => "remove",
          "address" => [
              ("subsystem" => "datasources"),
              ("xa-data-source" => "testXaDs")
          ]
      }
      

      NOT OK: the operation fails:

      {
          "outcome" => "failed",
          "failure-description" => "WFLYCTL0171: Removing services has lead to unsatisfied dependencies:
      Service jboss.data-source.reference-factory.testXaDs was depended upon by service jboss.naming.context.java.testXaDs
      Service jboss.xa-data-source-config.testXaDs was depended upon by service jboss.data-source.java:/testXaDs",
          "rolled-back" => true,
          "response-headers" => {"process-state" => "reload-required"}
      }
      

      EXPECTED: the operation should succeed

      Workaround: When the same request is sent once again, the second invocation succeeds.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  maeste Stefano Maestri
                  Reporter:
                  ppalaga Peter Palaga
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: