Uploaded image for project: 'HPCC'
  1. HPCC
  2. HPCC-17704

Roxie soapcall xml output has intermittent merge errors

    XMLWordPrintable

    Details

    • Type: Regression
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 6.4.0, 6.2.14
    • Fix Version/s: 6.2.16
    • Component/s: Roxie
    • Labels:
      None

      Description

      Multi-record soapcall sometimes produces output parsing errors.

      roxie_echo input:
      <?xml version="1.0" encoding="UTF-8"?>
      <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
      <soap:Body>
      <roxie_echoRequestArray>
      <roxie_echoRequest xmlns="urn:hpccsystems:ecl:roxie_echo">
      <peeps>
      <Row>
      <name>
      <first>a</first>
      <last>h</last>
      </name>
      </Row>
      </peeps>
      </roxie_echoRequest>
      <roxie_echoRequest xmlns="urn:hpccsystems:ecl:roxie_echo">
      <peeps>
      <Row>
      <name>
      <first>b</first>
      <last>h</last>
      </name>
      </Row>
      </peeps>
      </roxie_echoRequest>
      <roxie_echoRequest xmlns="urn:hpccsystems:ecl:roxie_echo">
      <peeps>
      <Row>
      <name>
      <first>c</first>
      <last>h</last>
      </name>
      </Row>
      </peeps>
      </roxie_echoRequest>
      <roxie_echoRequest xmlns="urn:hpccsystems:ecl:roxie_echo">
      <peeps>
      <Row>
      <name>
      <first>d</first>
      <last>h</last>
      </name>
      </Row>
      </peeps>
      </roxie_echoRequest>
      <roxie_echoRequest xmlns="urn:hpccsystems:ecl:roxie_echo">
      <peeps>
      <Row>
      <name>
      <first>e</first>
      <last>h</last>
      </name>
      </Row>
      </peeps>
      </roxie_echoRequest>
      <roxie_echoRequest xmlns="urn:hpccsystems:ecl:roxie_echo">
      <peeps>
      <Row>
      <name>
      <first>f</first>
      <last>h</last>
      </name>
      </Row>
      </peeps>
      </roxie_echoRequest>
      </roxie_echoRequestArray>
      </soap:Body>
      </soap:Envelope>

      good output:
      <roxie_echoResponseArray><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="0"><Results><Result><Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Row><name><first>a</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      </Dataset>
      </Result></Results></roxie_echoResponse><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="1"><Results><Result><Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Row><name><first>b</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      </Dataset>
      </Result></Results></roxie_echoResponse><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="2"><Results><Result><Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Row><name><first>c</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      </Dataset>
      </Result></Results></roxie_echoResponse><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="3"><Results><Result><Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Row><name><first>d</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      </Dataset>
      </Result></Results></roxie_echoResponse><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="4"><Results><Result><Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Row><name><first>e</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      </Dataset>
      </Result></Results></roxie_echoResponse><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="5"><Results><Result><Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Row><name><first>f</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      </Dataset>
      </Result></Results></roxie_echoResponse></roxie_echoResponseArray>

      bad output looks like this: (not always identical)
      Error parsng XML Error - syntax error "Mismatched opening and closing tags" [line 12, file offset 1177]
      /zipcode></address></Row>
      </Dataset>
      </R*ERROR*esult></Results></roxie_echoResponse></D
      result xml:
      <roxie_echoResponseArray><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="0"><Results><Result><Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Row><name><first>a</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      </Dataset>
      </Result></Results></roxie_echoResponse><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="2"><Results><Result><Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Row><name><first>c</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      </Dataset>
      </Result></Results></roxie_echoResponse><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="3"><Results><Result><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="1"><Results><Result><Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Row><name><first>b</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      <Row><name><first>d</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      </Dataset>
      </Result></Results></roxie_echoResponse></Dataset>
      </Result></Results></roxie_echoResponse><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="4"><Results><Result><Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Row><name><first>e</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      </Dataset>
      </Result></Results></roxie_echoResponse><roxie_echoResponse xmlns="urn:hpccsystems:ecl:roxie_echo" sequence="5"><Results><Result><Dataset xmlns='urn:hpccsystems:ecl:roxie_echo:result:peeps' name='Peeps'>
      <Row><name><first>f</first><last>h</last></name><address><zipcode>0</zipcode></address></Row>
      </Dataset>
      </Result></Results></roxie_echoResponse></roxie_echoResponseArray>

      I modified soapplus http.cpp to call createPTree() on result xml to find this.
      I will submit PR for that change as well and will update this issue with that info.

      Anthony Fishbeck fyi

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                afishbeck Anthony Fishbeck
                Reporter:
                mckellyln Mark Kelly
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: