-
Notifications
You must be signed in to change notification settings - Fork 3
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
filesize remains pending after marie accepts the federated shared file. #189
Comments
ℹ️ {"reqId":"5a7AEXWHMwgAGAe99L4R","level":3,"time":"2023-06-14T10:53:24+00:00","remoteAddr":"172.18.0.6","user":"marie","app":"PHP","method":"POST","url":"\/index.php\/apps\/files_sharing\/api\/externalShares","message":"Undefined index: password at \/var\/www\/html\/apps\/files_sharing\/lib\/External\/Storage.php#92"} Also, the pending flag is shown just for the folder and the files can indicate their size as you can see below image: |
After a debugging session with @thepeak99 here is our findings:
The piece of code we were specifically starting at is this. |
Our setup has no problem with webdav on NextCloud. I am comparing what is different between the 2 regarding the use of webdav:
|
I tried to run OC on php 8.0 by changing the docker file header to
|
OwnCloud installation manual states here:
The greatest difference between OC and NC that I detected about the webdav was the php version. :-( |
Trying to inspect the source of connection refused exception in the guzzlehttp library. The stack trace for connection refused up to the point the stack reaches OC is as follows:
|
Local path inside the docker image to the guzzlehttp source is: The github repository for guzzlehttp version 7.5.1 that is present in composer.lock of the container is: |
The first trace
|
I could not reproduce this with latest dev-stock main branch. Be careful! There is the word 'pending' in the 'file size' column! Don't be distracted by that :) Please reopen if you have tested this on the latest dev-stock main branch and you still see it happening there |
The Here is the function code: |
I was wrong. The thread safely exits the redirect middleware. |
My best guess atm is that the |
My guess seems to be correct. In which case the
|
A FullfilledPromise does nothing in the wait function. It already has the value and just returns it. |
I confirmed. Upon refreshing the page to get the received file content. The first call is |
Finally closed down on the culprit: |
This means that the root of the issue is: $context = [
"http" =>
[
"method" => "GET",
"header" => "Authorization: Basic UzZxd0MwdDdPYVpNRU12Og==\\r\\nHost: oc1.docker\\r\\nUser-Agent: ownCloud Server Crawler\\r\\nContent-Length: 0\\r\\nConnection: close",
"protocol_version" => "1.1",
"ignore_errors" => true,
"follow_location" => 0
],
"ssl" =>
[
"peer_name" => "oc1.docker",
"cafile" => "\\/var\\/www\\/html\\/data\\/files_external\\/rootcerts.crt",
"verify_peer" => true,
"verify_peer_name" => true,
"allow_self_signed" => false
]
];
$params = [];
$contextResource = \stream_context_create($context, $params);
return @\fopen('https://oc1.docker/public.php/webdav/', 'r', false, $contextResource); This returns |
Progress! |
So adding $context['ssl']['cafile'] = '/etc/ssl/certs/ca-certificates.crt'; to line 318 of |
Here is where in OC code that the ca file option is being set: if ($this->certificateManager->listCertificates() !== []) {
$options[RequestOptions::VERIFY] = $this->certificateManager->getAbsoluteBundlePath();
} else {
// If the instance is not yet setup we need to use the static path as
// $this->certificateManager->getAbsoluteBundlePath() tries to instantiate
// a view
if ($this->config->getSystemValue('installed', false) && !\OCP\Util::needUpgrade()) {
$options[RequestOptions::VERIFY] = $this->certificateManager->getAbsoluteBundlePath(null);
} else {
$options[RequestOptions::VERIFY] = \OC::$SERVERROOT . '/resources/config/ca-bundle.crt';
}
} |
The certificate manager is located at |
I fixed it by appending the contents of |
I was not able to reproduce this on our test environment. However what got my attention is that apparently the share provider is not actually sharing. @michielbdejong the following questions are vital to resolving this issue:
|
Thanks! That helps, I'll talk to Tom! |
That would be the sender, right? In our dev env it would usually say "[email protected]" there when Maria views it, right? |
Correct! |
when Marie accepts the shared folder/file the pending file remains beside it.
The text was updated successfully, but these errors were encountered: