Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Green on our test suite (corner 3) #138

Open
michielbdejong opened this issue Oct 5, 2022 · 34 comments
Open

Green on our test suite (corner 3) #138

michielbdejong opened this issue Oct 5, 2022 · 34 comments

Comments

@michielbdejong
Copy link
Member

No description provided.

@michielbdejong
Copy link
Member Author

Setting up c2/3.pondersource.net for testing with the CEF Digital AS4 testbed

michielbdejong pushed a commit that referenced this issue Oct 11, 2022
@michielbdejong
Copy link
Member Author

docker run -v /root/tls:/tls -p 443:443 -it logger

@michielbdejong
Copy link
Member Author

Ran https://edelconf.westeurope.cloudapp.azure.com:9001/viewJob?id=9284&showHistory=true and saw this on c2:

POST /as4/
CHUNK ------=_Part_35_1614928472.1665496574041
Content-Type: application/soap+xml; charset=utf-8

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header><ns2:Messaging xmlns:ns2="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/" xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" soapenv:mustUnderstand="true">
    <ns2:UserMessage>
        <ns2:MessageInfo>
            <ns2:Timestamp>2022-10-11T13:56:14.033Z</ns2:Timestamp>
            <ns2:MessageId>[email protected]</ns2:MessageId>
        </ns2:MessageInfo>
        <ns2:PartyInfo>
            <ns2:From>
                <ns2:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:unregistered">minder</ns2:PartyId>
                <ns2:Role>http://www.esens.eu/as4/conformancetest/testdriver</ns2:Role>
            </ns2:From>
            <ns2:To>
                <ns2:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:unregistered">pondersource-c2</ns2:PartyId>
                <ns2:Role>http://www.esens.eu/as4/conformancetest/sut</ns2:Role>
            </ns2:To>
        </ns2:PartyInfo>
        <ns2:CollaborationInfo>
            <ns2:Service>http://www.esens.eu/as4/conformancetest</ns2:Service>
            <ns2:Action>Submit</ns2:Action>
            <ns2:ConversationId>823788</ns2:ConversationId>
        </ns2:CollaborationInfo>
        <ns2:MessageProperties>
            <ns2:Property name="FromPartyIdType">urn:oasis:names:tc:ebcore:partyid-type:unregistered</ns2:Property>
            <ns2:Property name="ToPartyIdType">urn:oasis:names:tc:ebcore:partyid-type:unregistered</ns2:Property>
            <ns2:Property name="MessageId">[email protected]</ns2:Property>
<ns2:Property name="ConversationId">823788</ns2:Property>
<ns2:Property name="Service">SRV_SIMPLE_ONEWAY</ns2:Property>
<ns2:Property name="Action">ACT_SIMPLE_ONEWAY</ns2:Property>
<ns2:Property name="ToPartyId">pondersource-c3</ns2:Property>
<ns2:Property name="ToPartyRole">http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder</ns2:Property>
<ns2:Property name="FromPartyId">pondersource-c2</ns2:Property>
<ns2:Property name="FromPartyRole">http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator</ns2:Property>
<ns2:Property name="originalSender">C1</ns2:Property>
<ns2:Property name="finalRecipient">C4</ns2:Property>
        </ns2:MessageProperties>
        <ns2:PayloadInfo>
            <ns2:PartInfo href="cid:xmlpayload@minder">
<ns2:PartProperties><ns2:Property name="MimeType">application/xml</ns2:Property>
</ns2:PartProperties>
</ns2:PartInfo>
<ns2:PartInfo href="cid:custompayload@minder">
<ns2:PartProperties><ns2:Property name="MimeType">application/octet-stream</ns2:Property>
</ns2:PartProperties>
</ns2:PartInfo>

        </ns2:PayloadInfo>
    </ns2:UserMessage>
</ns2:Messaging></env:Header><env:Body/></env:Envelope>
------=_Part_35_1614928472.1665496574041
Content-Type: application/xml
Content-ID: <xmlpayload@minder>

<min><der>sample</der></min>
------=_Part_35_1614928472.1665496574041
Content-Type: application/octet-stream
Content-ID: <custompayload@minder>

!! Modify me after submission, if you dare!!
------=_Part_35_1614928472.1665496574041--
END

@michielbdejong
Copy link
Member Author

@michielbdejong
Copy link
Member Author

I can do that with the logger

@michielbdejong michielbdejong changed the title AS4 compliance AS4 compliance (receiver) Oct 12, 2022
@michielbdejong michielbdejong changed the title AS4 compliance (receiver) AS4 compliance (corner 3) Oct 12, 2022
@michielbdejong
Copy link
Member Author

michielbdejong commented Oct 12, 2022

docker run -it --rm --network=testnet -p 443:443 -v /root/tls:/tls -v $PEPPOL_PHP_DIR:/var/www/html/apps/peppol-php logger /bin/bash

@michielbdejong
Copy link
Member Author

michielbdejong commented Oct 12, 2022

https://edelconf.westeurope.cloudapp.azure.com:9001/jobQueue now makes it to:
[Rivet 3] Wait For Signal:as4-adapter|8.messageReceived(byte[])

@michielbdejong
Copy link
Member Author

Line 45 of https://edelconf.westeurope.cloudapp.azure.com:9001/viewTestCase?id=46&showJobs=true suggests that it's waiting for the message to hit the AS4 interceptor.

@michielbdejong
Copy link
Member Author

Working on this in the dev branch

@michielbdejong
Copy link
Member Author

michielbdejong commented Oct 13, 2022

curl -d'@./experiments/as4-testbed/testMsg.xml' -H'Content-Type: multipart/related; boundary="------=_Part_39_869791064.1665565057596"; type="application/soap+xml"; charset=UTF-8' https://c2.pondersource.net/as4

<li>Message: String could not be parsed as XML</li>
<li>File: /var/www/html/apps/peppol-php/nextcloud-app/peppolnext/lib/Controller/MessageApiController.php</li>
<li>Line: 390</li>

@michielbdejong
Copy link
Member Author

michielbdejong commented Oct 13, 2022

hm, seems to be fixed after a restart:

./scripts/clean.sh
export PEPPOL_PHP_DIR=`pwd`
./scripts/run-testbed-node-c2.sh 

@michielbdejong
Copy link
Member Author

It seems the logger is stripping newlines.
Maybe I should write a logger in php instead of in js

@michielbdejong
Copy link
Member Author

michielbdejong commented Oct 14, 2022

curl --data-binary '@./experiments/as4-testbed/testMsg.xml' -H'Content-Type: multipart/related; boundary="------=_Part_39_869791064.1665565057596"; type="application/soap+xml"; charset=UTF-8' https://c2.pondersource.net/as4

@michielbdejong
Copy link
Member Author

next step: send to the interceptor

@michielbdejong
Copy link
Member Author

next error:

Value at OCA\\PeppolNext\\PonderSource\\SBD\\StandardBusinessDocument is expected to be an object of class OCA\\PeppolNext\\PonderSource\\UBL\\Invoice\\Invoice but is of type string","userAgent":"curl/7.74.0","version":"24.0.6.1","exception":{"Exception":"JMS\\Serializer\\Exception\\InvalidArgumentException","Message":"Value at OCA\\PeppolNext\\PonderSource\\SBD\\StandardBusinessDocument is expected to be an object of class OCA\\PeppolNext\\PonderSource\\UBL\\Invoice\\Invoice but is of type string

sending sample invoice for now to work around this.
Next error: https://13.81.109.44:15000/as4Interceptor cert is not valid for host 13.81.109.44

@michielbdejong
Copy link
Member Author

michielbdejong commented Oct 14, 2022

Next: POST https://edelconf.westeurope.cloudapp.azure.com:15000/as4Interceptor resulted in a 400 Bad Request response

@michielbdejong
Copy link
Member Author

michielbdejong commented Oct 14, 2022

curl --data-binary '@./experiments/as4-testbed/msgToInterceptor.xml' -H'Message-Id: <634963881a41a>' -H 'MIME-Version: 1.0' -H 'Content-Type: multipart/related;    boundary="----=_Part_6349638264546";    type="application/soap+xml"; charset=UTF-8' https://edelconf.westeurope.cloudapp.azure.com:15000/as4Interceptor

Hm, that leads to a 500 error in the interceptor, not a 400.

@michielbdejong
Copy link
Member Author

when trying the Java->PHP demo in the dev branch, now seeing:

Message: Argument 1 passed to JMS\Serializer\Serializer::deserialize() must be of the type string, null given, called in /var/www/html/apps/peppol-php/nextcloud-app/peppolnext/lib/EnvelopeReader.php on line 9 in file &#039;/var/www/html/apps/peppol-php/nextcloud-app/peppolnext/vendor/jms/serializer/src/Serializer.php&#039; line 171

@michielbdejong
Copy link
Member Author

That's fixed and I merged the dev branch into main. But state of this is still that the interceptor is rejecting our messages with either a 400 or a 500 response code. Let's look at it together next week!

@michielbdejong
Copy link
Member Author

Picking this back up now. Will try what happens when I send c2 -> c3 directly

@michielbdejong
Copy link
Member Author

I'm resizing c2 because it seems to be getting stuck on docker ps

@michielbdejong
Copy link
Member Author

OK, now set up ./scripts/run-testbed-node-c[2|3].sh on c[2|3].pondersource.net and trying out the curl command from #138 (comment)

@michielbdejong
Copy link
Member Author

And curl -k -d'hi' https://nc1.docker/index.php/apps/peppolnext/api/v1/testbed
But I'm having weird and annoying latency problems so not getting very far yet.

@michielbdejong
Copy link
Member Author

The main problem seems to be that after a failed api call to nc1.docker, c2 becomes unreachable due to high load average

@michielbdejong
Copy link
Member Author

curl -k --data-binary '@./experiments/as4-testbed/msgToInterceptor.xml' -H'Message-Id: <634963881a41a>' -H 'MIME-Version: 1.0' -H 'Content-Type: multipart/related;    boundary="----=_Part_6349638264546";    type="application/soap+xml"; charset=UTF-8' https://nc1.docker/index.php/apps/peppolnext/api/v1/testbed

@michielbdejong
Copy link
Member Author

On c3 this returns instantly, on c2 it hangs.

@michielbdejong
Copy link
Member Author

I'm going to try passing the testbed tests with the re-signing-gateway.

@michielbdejong
Copy link
Member Author

michielbdejong commented Oct 25, 2022

On c2:

docker run -d --network=host -v /root/tls:/tls -v $PEPPOL_PHP_DIR/re-signing-gateway:/var/www/html re-signing-gateway

From laptop:

curl --data-binary '@./experiments/as4-testbed/testMsg.xml' -H'Content-Type: multipart/related; boundary="------=_Part_39_869791064.1665565057596"; type="application/soap+xml"; charset=UTF-8' https://c2.pondersource.net/as4

michielbdejong pushed a commit that referenced this issue Oct 25, 2022
@michielbdejong
Copy link
Member Author

OK, finally, after 4 hours, looks like I'm no longer stuck in the mud with this. \o/
Next error:

[Tue Oct 25 13:46:46.391965 2022] [php7:notice] [pid 9] [client 185.217.210.83:49618] PHP Fatal error:  Namespace declaration statement has to be the very first statement or after any declare call in the script in /var/www/html/lib/PonderSource/AS4.php on line 7

@michielbdejong
Copy link
Member Author

Fixed SPDX headers 653d093

@michielbdejong
Copy link
Member Author

michielbdejong commented Oct 25, 2022

Next:

[Tue Oct 25 14:23:11.678227 2022] [php7:notice] [pid 12] [client 185.217.210.83:49777]
PHP Fatal error:  Uncaught JMS\\Serializer\\Exception\\XmlErrorException:
[FATAL] Start tag expected, '<' not found\n in  (line: 1, column: 1) in
/var/www/html/vendor/jms/serializer/src/XmlDeserializationVisitor.php:106\nStack trace:
#0 /var/www/html/vendor/jms/serializer/src/Serializer.php(245): JMS\\Serializer\\XmlDeserializationVisitor->prepare()
#1 /var/www/html/vendor/jms/serializer/src/Serializer.php(180): JMS\\Serializer\\Serializer->visit()
#2 /var/www/html/lib/EnvelopeReader.php(13): JMS\\Serializer\\Serializer->deserialize()
#3 /var/www/html/lib/PayloadReader.php(15): OCA\\PeppolNext\\EnvelopeReader::readEnvelope()
#4 /var/www/html/lib/PonderSource/AS4.php(274): OCA\\PeppolNext\\PayloadReader::readPayload()
#5 /var/www/html/c2.php(22): OCA\\PeppolNext\\PonderSource\\AS4->handleAs4()
#6 {main}\n  thrown in /var/www/html/vendor/jms/serializer/src/XmlDeserializationVisitor.php on line 106

@michielbdejong
Copy link
Member Author

[MIME PARTS]
array (
  0 =>
  array (
    'Lines' => 
    array (
    ),
  ),
  1 =>   array (
    'Lines' =>     array (
      0 => '<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header><ns2:Messaging xmlns:ns2="http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/" xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" soapenv:mustUnderstand="true">',
      1 => '    <ns2:UserMessage>',
      2 => '        <ns2:MessageInfo>',
      3 => '            <ns2:Timestamp>2022-10-12T08:57:37.587Z</ns2:Timestamp>',
      4 => '            <ns2:MessageId>[email protected]</ns2:MessageId>',
      5 => '        </ns2:MessageInfo>',
      6 => '        <ns2:PartyInfo>',
      7 => '            <ns2:From>',
      8 => '                <ns2:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:unregistered">minder</ns2:PartyId>',
      9 => '                <ns2:Role>http://www.esens.eu/as4/conformancetest/testdriver</ns2:Role>',
      10 => '            </ns2:From>',
      11 => '            <ns2:To>',
      12 => '                <ns2:PartyId type="urn:oasis:names:tc:ebcore:partyid-type:unregistered">pondersource-c2</ns2:PartyId>',
      13 => '                <ns2:Role>http://www.esens.eu/as4/conformancetest/sut</ns2:Role>',
      14 => '            </ns2:To>',
      15 => '        </ns2:PartyInfo>',
      16 => '        <ns2:CollaborationInfo>',
      17 => '            <ns2:Service>http://www.esens.eu/as4/conformancetest</ns2:Service>',
      18 => '            <ns2:Action>Submit</ns2:Action>',
      19 => '            <ns2:ConversationId>743929</ns2:ConversationId>',
      20 => '        </ns2:CollaborationInfo>',
      21 => '        <ns2:MessageProperties>',
      22 => '            <ns2:Property name="FromPartyIdType">urn:oasis:names:tc:ebcore:partyid-type:unregistered</ns2:Property>',
      23 => '            <ns2:Property name="ToPartyIdType">urn:oasis:names:tc:ebcore:partyid-type:unregistered</ns2:Property>',
      24 => '            <ns2:Property name="MessageId">[email protected]</ns2:Property>',
      25 => '<ns2:Property name="ConversationId">743929</ns2:Property>',
      26 => '<ns2:Property name="Service">SRV_SIMPLE_ONEWAY</ns2:Property>',\n      27 => '<ns2:Property name="Action">ACT_SIMPLE_ONEWAY</ns2:Property>',\n      28 => '<ns2:Property name="ToPartyId">pondersource-c3</ns2:Property>',\n      29 => '<ns2:Property name="ToPartyRole">http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/responder</ns2:Property>',\n      30 => '<ns2:Property name="FromPartyId">pondersource-c2</ns2:Property>',\n      31 => '<ns2:Property name="FromPartyRole">http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/initiator</ns2:Property>',\n      32 => '<ns2:Property name="originalSender">C1</ns2:Property>',\n      33 => '<ns2:Property name="finalRecipient">C4</ns2:Property>',\n      34 => '        </ns2:MessageProperties>',\n      35 => '        <ns2:PayloadInfo>',\n      36 => '            <ns2:PartInfo href="cid:xmlpayload@minder">',\n      37 => '<ns2:PartProperties><ns2:Property name="MimeType">application/xml</ns2:Property>',\n      38 => '</ns2:PartProperties>',\n      39 => '</ns2:PartInfo>',\n      40 => '<ns2:PartInfo href="cid:custompayload@minder">',\n      41 => '<ns2:PartProperties><ns2:Property name="MimeType">application/octet-stream</ns2:Property>',\n      42 => '</ns2:PartProperties>',\n      43 => '</ns2:PartInfo>',\n      44 => '',\n      45 => '        </ns2:PayloadInfo>',\n      46 => '    </ns2:UserMessage>',\n      47 => '</ns2:Messaging></env:Header><env:Body/></env:Envelope>',
      48 => '',
    ),
    'Content-Type' => 'application/soap+xml; charset=utf-8',
  ),
  2 => 
 array (
    'Lines' => \n    array (
      0 => '<min><der>sample</der></min>',
      1 => '',
    ),
    'Content-Type' => 'application/xml',
  ),
  3 => 
  array (
    'Lines' => \n    array (\n      0 => '!! Modify me after submission, if you dare!!',
      1 => '',\n    ),
    'Content-Type' => 'application/octet-stream',\n  ),
  4 => \n  array (\n    'Lines' => \n    array (\n    ),\n  ),\n)

@michielbdejong
Copy link
Member Author

I can try to improve my message to the interceptor, but if it's just responding with 500s I may have to switch to our own test suite involving Phase4 + PeppolNext

@michielbdejong
Copy link
Member Author

This is too hard and too time-consuming. We'll leave it for now, and then use our own test suite to pitch Phase4 and PeppolNext against each other.

@michielbdejong michielbdejong changed the title AS4 compliance (corner 3) Green on our test suite (corner 3) Oct 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant