Roxie soapcall xml output has intermittent merge errors
Activity
Show:

Mark Kelly May 31, 2017 at 2:32 AM
soapplus enhancement used to test and find this issue is located here.

Mark Kelly May 31, 2017 at 2:31 AM
soapplus enhancement to use for testing this is at https://hpccsystems.atlassian.net/browse/HPCC-17705
Fixed
Pinned fields
Click on the next to a field label to start pinning.
Created May 30, 2017 at 6:39 PM
Updated June 1, 2017 at 12:02 PM
Resolved June 1, 2017 at 12:02 PM
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.
fyi