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

[stable10][DONOTMERGE] permutate all litmus iterations with php and databases #32639

Closed
wants to merge 1 commit into from

Conversation

patrickjahns
Copy link
Contributor

Description

Testing that litmus test works as expected for all permutations on stable10

How Has This Been Tested?

🤖

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Technical debt
  • Tests

Checklist:

  • Code changes
  • Unit tests added
  • Acceptance tests added
  • Documentation ticket raised:

Open tasks:

  • Backport (if applicable set "backport-request" label and remove when the backport was done)

@PVince81 PVince81 added this to the QA milestone Sep 10, 2018
@PVince81
Copy link
Contributor

Rebased since owncloud/testing#23 was merged so we get new Oracle results.

@PVince81
Copy link
Contributor

this is from the Litmus log on a local Drone run for the failed PROPPATCH:

******* Running test 24: propmanyns ********
ah_create, for WWW-Authenticate
Running pre_send hooks
auth: Sending 'Basic' response.
Sending request headers:
PROPPATCH /remote.php/webdav/litmus/prop HTTP/1.1
User-Agent: litmus/0.13 neon/0.29.6
Connection: TE
TE: trailers
Host: server
Content-Length: 1070
Content-Type: application/xml
Authorization: Basic YWRtaW46YWRtaW4=
X-Litmus: props: 24 (propmanyns)

Sending request-line and headers:
Sending request body:
Body block (1070 bytes):
[<?xml version="1.0" encoding="utf-8" ?>
<D:propertyupdate xmlns:D="DAV:"><D:set><D:prop><somename xmlns="http://example.com/alpha">manynsvalue</somename></D:prop></D:set>
<D:set><D:prop><somename xmlns="http://example.com/beta">manynsvalue</somename></D:prop></D:set>
<D:set><D:prop><somename xmlns="http://example.com/gamma">manynsvalue</somename></D:prop></D:set>
<D:set><D:prop><somename xmlns="http://example.com/delta">manynsvalue</somename></D:prop></D:set>
<D:set><D:prop><somename xmlns="http://example.com/epsilon">manynsvalue</somename></D:prop></D:set>
<D:set><D:prop><somename xmlns="http://example.com/zeta">manynsvalue</somename></D:prop></D:set>
<D:set><D:prop><somename xmlns="http://example.com/eta">manynsvalue</somename></D:prop></D:set>
<D:set><D:prop><somename xmlns="http://example.com/theta">manynsvalue</somename></D:prop></D:set>
<D:set><D:prop><somename xmlns="http://example.com/iota">manynsvalue</somename></D:prop></D:set>
<D:set><D:prop><somename xmlns="http://example.com/kappa">manynsvalue</somename></D:prop></D:set>
</D:propertyupdate>
]
Request sent; retry is 1.
[status-line] < HTTP/1.1 207 Multi-Status
[hdr] Date: Mon, 10 Sep 2018 20:50:18 GMT
Header Name: [date], Value: [Mon, 10 Sep 2018 20:50:18 GMT]
[hdr] Server: Apache
Header Name: [server], Value: [Apache]
[hdr] Set-Cookie: ocnc4fkg0ze2=i94lie0uvkcqgqqrsl74p7g7i8; path=/; secure; HttpOnly
Header Name: [set-cookie], Value: [ocnc4fkg0ze2=i94lie0uvkcqgqqrsl74p7g7i8; path=/; secure; HttpOnly]
[hdr] Expires: Thu, 19 Nov 1981 08:52:00 GMT
Header Name: [expires], Value: [Thu, 19 Nov 1981 08:52:00 GMT]
[hdr] Cache-Control: no-store, no-cache, must-revalidate
Header Name: [cache-control], Value: [no-store, no-cache, must-revalidate]
[hdr] Pragma: no-cache
Header Name: [pragma], Value: [no-cache]
[hdr] Set-Cookie: oc_sessionPassphrase=h48aK0XKtUxZk%2FTe9aGdBgHE8VGVLyJ1rZTZviM0%2F%2B4bXsdiVm2nodsJJ2T7zf6xlulMV%2FGGn1KJ9Az0kC2KoS2jFSnY7FLU9NsvP4dKr3a58Y2sesG2Fpa1%2FZ3KffcQ; path=/; secure; HttpOnly
Header Name: [set-cookie], Value: [oc_sessionPassphrase=h48aK0XKtUxZk%2FTe9aGdBgHE8VGVLyJ1rZTZviM0%2F%2B4bXsdiVm2nodsJJ2T7zf6xlulMV%2FGGn1KJ9Az0kC2KoS2jFSnY7FLU9NsvP4dKr3a58Y2sesG2Fpa1%2FZ3KffcQ; path=/; secure; HttpOnly]
[hdr] Content-Security-Policy: default-src 'none';
Header Name: [content-security-policy], Value: [default-src 'none';]
[hdr] Set-Cookie: ocnc4fkg0ze2=andk904cu4nmir6mk6l21ah3n9; path=/; secure; HttpOnly
Header Name: [set-cookie], Value: [ocnc4fkg0ze2=andk904cu4nmir6mk6l21ah3n9; path=/; secure; HttpOnly]
[hdr] Set-Cookie: cookie_test=test; expires=Mon, 10-Sep-2018 21:50:19 GMT; Max-Age=3600
Header Name: [set-cookie], Value: [cookie_test=test; expires=Mon, 10-Sep-2018 21:50:19 GMT; Max-Age=3600]
[hdr] Vary: Brief,Prefer
Header Name: [vary], Value: [Brief,Prefer]
[hdr] X-Content-Type-Options: nosniff
Header Name: [x-content-type-options], Value: [nosniff]
[hdr] X-XSS-Protection: 1; mode=block
Header Name: [x-xss-protection], Value: [1; mode=block]
[hdr] X-Robots-Tag: none
Header Name: [x-robots-tag], Value: [none]
[hdr] X-Frame-Options: SAMEORIGIN
Header Name: [x-frame-options], Value: [SAMEORIGIN]
[hdr] X-Download-Options: noopen
Header Name: [x-download-options], Value: [noopen]
[hdr] X-Permitted-Cross-Domain-Policies: none
Header Name: [x-permitted-cross-domain-policies], Value: [none]
[hdr] Content-Length: 784
Header Name: [content-length], Value: [784]
[hdr] Content-Type: application/xml; charset=utf-8
Header Name: [content-type], Value: [application/xml; charset=utf-8]
[hdr] 
End of headers.
Running post_headers hooks
Reading 784 bytes of response body.
Got 784 bytes.
Read block (784 bytes):
[<?xml version="1.0"?>
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:oc="http://owncloud.org/ns"><d:response><d:href>/remote.php/webdav/litmus/prop</d:href><d:propstat><d:prop><x1:somename xmlns:x1="http://example.com/alpha"/><x2:somename xmlns:x2="http://example.com/beta"/><x3:somename xmlns:x3="http://example.com/gamma"/><x4:somename xmlns:x4="http://example.com/delta"/><x5:somename xmlns:x5="http://example.com/epsilon"/><x6:somename xmlns:x6="http://example.com/zeta"/><x7:somename xmlns:x7="http://example.com/eta"/><x8:somename xmlns:x8="http://example.com/theta"/><x9:somename xmlns:x9="http://example.com/iota"/><x10:somename xmlns:x10="http://example.com/kappa"/></d:prop><d:status>HTTP/1.1 200 OK</d:status></d:propstat></d:response></d:multistatus>]
XML: Parsing 784 bytes.
Checking for UTF-8 BOM.
XML: start-element (0, {DAV:, multistatus}) => 1
XML: start-element (1, {DAV:, response}) => 2
XML: start-element (2, {DAV:, href}) => 4
XML: char-data (4) returns 0
XML: end-element (4, {DAV:, href})
XML: start-element (2, {DAV:, propstat}) => 7
XML: start-element (7, {DAV:, prop}) => 50
XML: start-element (50, {http://example.com/alpha, somename}) => 0
XML: end-element (0, {http://example.com/alpha, somename})
XML: start-element (50, {http://example.com/beta, somename}) => 0
XML: end-element (0, {http://example.com/beta, somename})
XML: start-element (50, {http://example.com/gamma, somename}) => 0
XML: end-element (0, {http://example.com/gamma, somename})
XML: start-element (50, {http://example.com/delta, somename}) => 0
XML: end-element (0, {http://example.com/delta, somename})
XML: start-element (50, {http://example.com/epsilon, somename}) => 0
XML: end-element (0, {http://example.com/epsilon, somename})
XML: start-element (50, {http://example.com/zeta, somename}) => 0
XML: end-element (0, {http://example.com/zeta, somename})
XML: start-element (50, {http://example.com/eta, somename}) => 0
XML: end-element (0, {http://example.com/eta, somename})
XML: start-element (50, {http://example.com/theta, somename}) => 0
XML: end-element (0, {http://example.com/theta, somename})
XML: start-element (50, {http://example.com/iota, somename}) => 0
XML: end-element (0, {http://example.com/iota, somename})
XML: start-element (50, {http://example.com/kappa, somename}) => 0
XML: end-element (0, {http://example.com/kappa, somename})
XML: end-element (50, {DAV:, prop})
XML: start-element (7, {DAV:, status}) => 6
XML: char-data (6) returns 0
Decoded status line: HTTP/1.1 200 OK
XML: end-element (6, {DAV:, status})
XML: end-element (7, {DAV:, propstat})
XML: end-element (2, {DAV:, response})
XML: end-element (1, {DAV:, multistatus})
XML: XML_Parse returned 1
XML: End of document.
XML: XML_Parse returned 1
Running post_send hooks
ah_post_send (#0), code is 207 (want 401), WWW-Authenticate is (none)
Request ends, status 207 class 2xx, error line:
207 Multi-Status
Running destroy hooks.
Request ends.

@PVince81
Copy link
Contributor

and the PROPPATCH failure in owncloud.log, that should help already:

{"reqId":"u35FUAVYSNddV4jLeZoS","level":0,"time":"2018-09-10T20:50:17+00:00","remoteAddr":"172.18.0.4","user":"--","app":"OC\\Authentication\\Token\\DefaultTokenProvider::getToken","method":"PROPPATCH","url":"\/remote.php\/webdav\/litmus\/prop2","message":"token 77578cf12db850be49fe0f36231a19e7352df215d18651039ae632a23ad78421f557412e55fc00721b09ac3f9f2676939e723e3a2f614553f49cbb3fe14eeeee does not exist"}
{"reqId":"u35FUAVYSNddV4jLeZoS","level":0,"time":"2018-09-10T20:50:17+00:00","remoteAddr":"172.18.0.4","user":"--","app":"OC\\User\\Session::login","method":"PROPPATCH","url":"\/remote.php\/webdav\/litmus\/prop2","message":"regenerating session id for uid admin, password set"}
{"reqId":"u35FUAVYSNddV4jLeZoS","level":0,"time":"2018-09-10T20:50:17+00:00","remoteAddr":"172.18.0.4","user":"--","app":"OC\\Authentication\\Token\\DefaultTokenProvider::getToken","method":"PROPPATCH","url":"\/remote.php\/webdav\/litmus\/prop2","message":"token 77578cf12db850be49fe0f36231a19e7352df215d18651039ae632a23ad78421f557412e55fc00721b09ac3f9f2676939e723e3a2f614553f49cbb3fe14eeeee does not exist"}
{"reqId":"u35FUAVYSNddV4jLeZoS","level":0,"time":"2018-09-10T20:50:17+00:00","remoteAddr":"172.18.0.4","user":"--","app":"OC\\User\\Session::validateToken","method":"PROPPATCH","url":"\/remote.php\/webdav\/litmus\/prop2","message":"token 77578cf12db850be49fe0f36231a19e7352df215d18651039ae632a23ad78421f557412e55fc00721b09ac3f9f2676939e723e3a2f614553f49cbb3fe14eeeee, not found"}
{"reqId":"u35FUAVYSNddV4jLeZoS","level":3,"time":"2018-09-10T20:50:17+00:00","remoteAddr":"172.18.0.4","user":"admin","app":"PHP","method":"PROPPATCH","url":"\/remote.php\/webdav\/litmus\/prop2","message":"oci_bind_by_name(): Invalid variable used for bind at \/drone\/src\/lib\/composer\/doctrine\/dbal\/lib\/Doctrine\/DBAL\/Driver\/OCI8\/OCI8Statement.php#178"}
{"reqId":"u35FUAVYSNddV4jLeZoS","level":4,"time":"2018-09-10T20:50:17+00:00","remoteAddr":"172.18.0.4","user":"admin","app":"webdav","method":"PROPPATCH","url":"\/remote.php\/webdav\/litmus\/prop2","message":"Exception: An exception occurred while executing 'INSERT INTO \"oc_properties\" (\"fileid\",\"propertyname\",\"propertyvalue\") VALUES(?,?,?)' with params [123, \"{http:\\\/\\\/example.com\\\/neon\\\/litmus\\\/}valnspace\", {}]:\n\nORA-01008: not all variables bound: {\"Exception\":\"Doctrine\\\\DBAL\\\\Exception\\\\DriverException\",\"Message\":\"An exception occurred while executing 'INSERT INTO \\\"oc_properties\\\" (\\\"fileid\\\",\\\"propertyname\\\",\\\"propertyvalue\\\") VALUES(?,?,?)' with params [123, \\\"{http:\\\\\\\/\\\\\\\/example.com\\\\\\\/neon\\\\\\\/litmus\\\\\\\/}valnspace\\\", {}]:\\n\\nORA-01008: not all variables bound\",\"Code\":0,\"Trace\":\"
#0 \\\/drone\\\/src\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/DBALException.php(128): Doctrine\\\\DBAL\\\\Driver\\\\AbstractOracleDriver->convertException('An exception oc...', Object(Doctrine\\\\DBAL\\\\Driver\\\\OCI8\\\\OCI8Exception))\\n
#1 \\\/drone\\\/src\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Connection.php(1015): Doctrine\\\\DBAL\\\\DBALException::driverExceptionDuringQuery(Object(Doctrine\\\\DBAL\\\\Driver\\\\OCI8\\\\Driver), Object(Doctrine\\\\DBAL\\\\Driver\\\\OCI8\\\\OCI8Exception), 'INSERT INTO \\\"oc...', Array)\\n
#2 \\\/drone\\\/src\\\/lib\\\/private\\\/DB\\\/Connection.php(207): Doctrine\\\\DBAL\\\\Connection->executeUpdate('INSERT INTO \\\"oc...', Array, Array)\\n
#3 \\\/drone\\\/src\\\/apps\\\/dav\\\/lib\\\/DAV\\\/FileCustomPropertiesBackend.php(182): OC\\\\DB\\\\Connection->executeUpdate('INSERT INTO \\\"oc...', Array)\\n
#4 \\\/drone\\\/src\\\/apps\\\/dav\\\/lib\\\/DAV\\\/AbstractCustomPropertiesBackend.php(206): OCA\\\\DAV\\\\DAV\\\\FileCustomPropertiesBackend->updateProperties('litmus\\\/prop2', Object(OCA\\\\DAV\\\\Connector\\\\Sabre\\\\File), Array)\\n
#5 \\\/drone\\\/src\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/PropPatch.php(317): OCA\\\\DAV\\\\DAV\\\\AbstractCustomPropertiesBackend->OCA\\\\DAV\\\\DAV\\\\{closure}(Array)\\n
#6 \\\/drone\\\/src\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/PropPatch.php(245): Sabre\\\\DAV\\\\PropPatch->doCallBackMultiProp(Array, Object(Closure))\\n
#7 \\\/drone\\\/src\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(1265): Sabre\\\\DAV\\\\PropPatch->commit()\\n
#8 \\\/drone\\\/src\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/CorePlugin.php(385): Sabre\\\\DAV\\\\Server->updateProperties('litmus\\\/prop2', Array)\\n
#9 [internal function]: Sabre\\\\DAV\\\\CorePlugin->httpPropPatch(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n
#10 \\\/drone\\\/src\\\/lib\\\/composer\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n
#11 \\\/drone\\\/src\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(479): Sabre\\\\Event\\\\EventEmitter->emit('method:PROPPATC...', Array)\\n
#12 \\\/drone\\\/src\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n
#13 \\\/drone\\\/src\\\/apps\\\/dav\\\/appinfo\\\/v1\\\/webdav.php(64): Sabre\\\\DAV\\\\Server->exec()\\n
#14 \\\/drone\\\/src\\\/remote.php(165): require_once('\\\/drone\\\/src\\\/apps...')\\n
#15 {main}\",\"File\":\"\\\/drone\\\/src\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/AbstractOracleDriver.php\",\"Line\":76}"}

@PVince81
Copy link
Contributor

In the Drone env, I tried to directly curl the PROPPATCH block to the URL curl -k -u admin:admin -X PROPPATCH -H "Content-Type: text/xml" --data-binary "@proppatch-oracle.xml" "https://server/remote.php/webdav/litmus/prop2". However here I get no exception.

So maybe the exception is a side effect.

@PVince81
Copy link
Contributor

while debugging the method above I found this: #32660

@PVince81
Copy link
Contributor

Regarding Oracle, I suspect it could be a "empty string vs null" issue.
So far it's not clear how that weird {} (unquoted) property value could be generated for insertion.

@PVince81
Copy link
Contributor

Regarding severity of the Oracle + PROPPATCH issue: the error only happens when setting custom properties on regular files. This is not a common situation in OC itself so other PROPPATCH should run fine on system tags, comments, etc and also on files with non-custom properties.
The only scenario where this could break is if people use Oracle and have Webdav mounted as drive in Windows, as I remember that Windows is setting some custom properties there.

@PVince81
Copy link
Contributor

added some log statements and it seems that at some point Litmus is sending complex values (sub-tags):

{"reqId":"u6o9vrBFwoQLxgiF8HCA","level":0,"time":"2018-09-11T10:46:35+00:00","remoteAddr":"172.19.0.1","user":"admin","app":"DEBUG","method":"PROPPATCH","url":"\/remote.php\/webdav\/litmus\/prop2","message":"updateProperties for path litmus\/prop2"}
{"reqId":"u6o9vrBFwoQLxgiF8HCA","level":3,"time":"2018-09-11T10:46:35+00:00","remoteAddr":"172.19.0.1","user":"admin","app":"PHP","method":"PROPPATCH","url":"\/remote.php\/webdav\/litmus\/prop2","message":"Object of class Sabre\\DAV\\Xml\\Property\\Complex could not be converted to string at \/var\/www\/owncloud\/apps\/dav\/lib\/DAV\/FileCustomPropertiesBackend.php#180"}
{"reqId":"u6o9vrBFwoQLxgiF8HCA","level":0,"time":"2018-09-11T10:46:35+00:00","remoteAddr":"172.19.0.1","user":"admin","app":"DEBUG","method":"PROPPATCH","url":"\/remote.php\/webdav\/litmus\/prop2","message":"SQL UPDATE for fileId=340 propertyName={http:\/\/example.com\/neon\/litmus\/}valnspace propertyValue="}

Since the value cannot be converted to string, it might trip up with Oracle.
I wonder what the other databases do... maybe store as empty string ?

@PVince81
Copy link
Contributor

It turns out that I pasted the debug.log of the wrong Litmus test. It was actually "propvalnspace" that failed:

******* Running test 21: propvalnspace ********
ah_create, for WWW-Authenticate
Running pre_send hooks
auth: Sending 'Basic' response.
Sending request headers:
PROPPATCH /remote.php/webdav/litmus/prop2 HTTP/1.1
User-Agent: litmus/0.13 neon/0.29.6
Connection: TE
TE: trailers
Host: server
Content-Length: 203
Authorization: Basic YWRtaW46YWRtaW4=
X-Litmus: props: 21 (propvalnspace)

Sending request-line and headers:
Sending request body:
Body block (203 bytes):
[<?xml version="1.0" encoding="utf-8" ?><propertyupdate xmlns='DAV:'><set><prop><t:valnspace xmlns:t='http://example.com/neon/litmus/'><foo xmlns='http://bar'/></t:valnspace></prop></set></propertyupdate>]
Request sent; retry is 1.
[status-line] < HTTP/1.1 500 Internal Server Error
[hdr] Date: Mon, 10 Sep 2018 20:50:17 GMT
Header Name: [date], Value: [Mon, 10 Sep 2018 20:50:17 GMT]
[hdr] Server: Apache
Header Name: [server], Value: [Apache]
[hdr] Set-Cookie: ocnc4fkg0ze2=45nujdhekq9cm15gv73qp0iocb; path=/; secure; HttpOnly
Header Name: [set-cookie], Value: [ocnc4fkg0ze2=45nujdhekq9cm15gv73qp0iocb; path=/; secure; HttpOnly]
[hdr] Expires: Thu, 19 Nov 1981 08:52:00 GMT
Header Name: [expires], Value: [Thu, 19 Nov 1981 08:52:00 GMT]
[hdr] Cache-Control: no-store, no-cache, must-revalidate
Header Name: [cache-control], Value: [no-store, no-cache, must-revalidate]
[hdr] Pragma: no-cache
Header Name: [pragma], Value: [no-cache]
[hdr] Set-Cookie: oc_sessionPassphrase=8gc7WOe0sL1uvHi32YbO0%2BZod6WOIE8dArkjCEIelFY9chVDXWsTDjB8a1Qy23fh4QCICM6lOsMbjWVZ1ugfZkxzOBFPqFowFqcCjKp%2F786vaFjQ%2BC9ipRNwW8hMEUOW; path=/; secure; HttpOnly
Header Name: [set-cookie], Value: [oc_sessionPassphrase=8gc7WOe0sL1uvHi32YbO0%2BZod6WOIE8dArkjCEIelFY9chVDXWsTDjB8a1Qy23fh4QCICM6lOsMbjWVZ1ugfZkxzOBFPqFowFqcCjKp%2F786vaFjQ%2BC9ipRNwW8hMEUOW; path=/; secure; HttpOnly]
[hdr] Content-Security-Policy: default-src 'none';
Header Name: [content-security-policy], Value: [default-src 'none';]
[hdr] Set-Cookie: ocnc4fkg0ze2=hcpvrko9j283usv4rhmn6ttlrm; path=/; secure; HttpOnly
Header Name: [set-cookie], Value: [ocnc4fkg0ze2=hcpvrko9j283usv4rhmn6ttlrm; path=/; secure; HttpOnly]
[hdr] Set-Cookie: cookie_test=test; expires=Mon, 10-Sep-2018 21:50:17 GMT; Max-Age=3600
Header Name: [set-cookie], Value: [cookie_test=test; expires=Mon, 10-Sep-2018 21:50:17 GMT; Max-Age=3600]
[hdr] X-Content-Type-Options: nosniff
Header Name: [x-content-type-options], Value: [nosniff]
[hdr] X-XSS-Protection: 1; mode=block
Header Name: [x-xss-protection], Value: [1; mode=block]
[hdr] X-Robots-Tag: none
Header Name: [x-robots-tag], Value: [none]
[hdr] X-Frame-Options: SAMEORIGIN
Header Name: [x-frame-options], Value: [SAMEORIGIN]
[hdr] X-Download-Options: noopen
Header Name: [x-download-options], Value: [noopen]
[hdr] X-Permitted-Cross-Domain-Policies: none
Header Name: [x-permitted-cross-domain-policies], Value: [none]
[hdr] Content-Length: 436
Header Name: [content-length], Value: [436]
[hdr] Connection: close
Header Name: [connection], Value: [close]
[hdr] Content-Type: application/xml; charset=utf-8
Header Name: [content-type], Value: [application/xml; charset=utf-8]
[hdr] 
End of headers.
Running post_headers hooks
Reading 436 bytes of response body.
Got 436 bytes.
Read block (436 bytes):
[<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:exception>Doctrine\DBAL\Exception\DriverException</s:exception>
  <s:message>An exception occurred while executing 'INSERT INTO "oc_properties" ("fileid","propertyname","propertyvalue") VALUES(?,?,?)' with params [123, "{http:\/\/example.com\/neon\/litmus\/}valnspace", {}]:

ORA-01008: not all variables bound</s:message>
</d:error>
]
Running post_send hooks
ah_post_send (#0), code is 500 (want 401), WWW-Authenticate is (none)
sess: Closing connection.
sess: Connection closed.
Request ends, status 500 class 5xx, error line:
500 Internal Server Error

@PVince81
Copy link
Contributor

Now reproducible without Litmus:

Create proppatch-oracle.xml:

<?xml version="1.0" encoding="utf-8" ?><propertyupdate xmlns='DAV:'><set><prop><t:valnspace xmlns:t='http://example.com/neon/litmus/'><foo xmlns='http://bar'/></t:valnspace></prop></set></propertyupdate>

Then:

% curl -k -D - -u admin:admin -X PROPPATCH -H "Content-Type: text/xml" --data-binary "@proppatch-oracle.xml" "https://192.168.1.3:9643/remote.php/webdav/litmus/prop2"
HTTP/1.1 500 Internal Server Error
Date: Tue, 11 Sep 2018 11:11:33 GMT
Server: Apache
Strict-Transport-Security: max-age=15768000; preload
Set-Cookie: oc9928gdp2g7=q2jo4rnupliq24ppsqlkdfq1sc; path=/; secure; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Set-Cookie: oc_sessionPassphrase=yFUcBhWoWAkyfSzcEknYYzzYsIuJpZhmyJCb2ZCKdJKsXMKV5lXeSxi%2BxXblBFCcYwbP8bOP4dVjaawX0%2BwrSUxJrwQil1H%2B5JLGLnlHL11rBwdDpiqhxVoLrKAQeSku; path=/; secure; HttpOnly
Content-Security-Policy: default-src 'none';
Set-Cookie: oc9928gdp2g7=3e60g5mti8et9qpb3i31s3g2o0; path=/; secure; HttpOnly
Set-Cookie: cookie_test=test; expires=Tue, 11-Sep-2018 12:11:34 GMT; Max-Age=3600
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Robots-Tag: none
X-Frame-Options: SAMEORIGIN
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Content-Length: 436
Connection: close
Content-Type: application/xml; charset=utf-8

<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:exception>Doctrine\DBAL\Exception\DriverException</s:exception>
  <s:message>An exception occurred while executing 'INSERT INTO "oc_properties" ("fileid","propertyname","propertyvalue") VALUES(?,?,?)' with params [553, "{http:\/\/example.com\/neon\/litmus\/}valnspace", {}]:

ORA-01008: not all variables bound</s:message>
</d:error>

@PVince81
Copy link
Contributor

I've now raised #32670 for the PROPATCH case. There's a fundamental problem how we deal with complex properties and it doesn't behave correctly with MySQL either.

@patrickjahns
Copy link
Contributor Author

closing at this was a one-time shot of running the tests

@PVince81 PVince81 deleted the 10.0.10RC1-litmus branch September 27, 2018 13:30
@lock lock bot locked as resolved and limited conversation to collaborators Sep 27, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants