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

Shared folder download issues #3613

Closed
AntonOellerer opened this issue Feb 24, 2017 · 8 comments
Closed

Shared folder download issues #3613

AntonOellerer opened this issue Feb 24, 2017 · 8 comments

Comments

@AntonOellerer
Copy link

AntonOellerer commented Feb 24, 2017

Steps to reproduce

  1. Share folder via link
  2. Download a folder via the shared link

Expected behaviour

Tell us what should happen
Zip should get downloaded correctly

Actual behaviour

Tell us what happens instead
2 errrors get thrown in the log (Backends provided no user object)
Downloaded zip can not be opened with file roller, but can be unzipped correctly via the command line unzip, with command line 7z it shows a "headers error" and unpacks the content, but not in the containing folder, which stays empty

Server configuration

Operating system:
Ubuntu Server 16.04.2 LTS x86_64

Web server:
Apache/2.4.18 (Ubuntu)

Database:
Type: mysql
Version: 10.0.29
Size: 23.8 MB

PHP version:
Version: 7.0.15
Memory Limit: 512.0 MB
Max Execution Time: 3600
Upload max size: 511.0 MB

Nextcloud version: (see Nextcloud admin page)
Nextcloud 11.0.1 (stable)

Updated from an older Nextcloud/ownCloud or fresh install:
Fresh install

Where did you install Nextcloud from:
https://nextcloud.com/

Signing status:

Signing status ``` Login as admin user into your Nextcloud and access http://example.com/index.php/settings/integrity/failed paste the results here. ``` No errors have been found.

List of activated apps:

App list
If you have access to your command line run e.g.:
sudo -u www-data php occ app:list
from within your Nextcloud installation folder

Enabled:

  • activity: 2.4.1
  • admin_audit: 1.1.0
  • comments: 1.1.0
  • dav: 1.1.1
  • federatedfilesharing: 1.1.1
  • files: 1.6.1
  • files_downloadactivity: 1.0.0
  • files_pdfviewer: 1.0.1
  • files_sharing: 1.1.1
  • files_texteditor: 2.2
  • files_trashbin: 1.1.0
  • files_versions: 1.4.0
  • files_videoplayer: 1.0.0
  • firstrunwizard: 2.0
  • gallery: 16.0.0
  • logreader: 2.0.0
  • lookup_server_connector: 1.0.0
  • nextcloud_announcements: 1.0
  • notifications: 1.0.1
  • ownbackup: 16.11.0
  • password_policy: 1.1.0
  • provisioning_api: 1.1.0
  • serverinfo: 1.1.1
  • sharebymail: 1.0.1
  • survey_client: 0.1.5
  • theming: 1.1.1
  • twofactor_backupcodes: 1.0.0
  • updatenotification: 1.1.1
  • workflowengine: 1.1.1
    Disabled:
  • encryption
  • external
  • federation
  • files_accesscontrol
  • files_automatedtagging
  • files_external
  • files_retention
  • gpxpod
  • systemtags
  • templateeditor
  • user_external
  • user_ldap
  • user_saml

The content of config/config.php:

Config report
If you have access to your command line run e.g.:
sudo -u www-data php occ config:list system
from within your Nextcloud installation folder

or 

Insert your config.php content here
(Without the database password, passwordsalt and secret)

{
"system": {
"instanceid": "oc0nm56kqzgz",
"passwordsalt": "REMOVED SENSITIVE VALUE",
"secret": "REMOVED SENSITIVE VALUE",
"trusted_domains": [
"192.168.1.55",
"rotte.ddns.net"
],
"datadirectory": "/var/www/nextcloud/data",
"dbtype": "mysql",
"version": "11.0.1.2",
"dbname": "nextcloud",
"dbhost": "localhost",
"dbport": "",
"dbtableprefix": "oc_",
"dbuser": "REMOVED SENSITIVE VALUE",
"dbpassword": "REMOVED SENSITIVE VALUE",
"logtimezone": "UTC",
"installed": true,
"memcache.local": "\OC\Memcache\APCu",
"overwrite.cli.url": "https://xxx.ddns.net/",
"htaccess.RewriteBase": "/"
}
}

Are you using external storage, if yes which one: local/smb/sftp/...
No

Are you using encryption: yes/no
No

Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...
No

Client configuration

Browser:
Chromium, Firefox

Operating system:
Fedora 25

Logs

Web server error log

Web server error log
Insert your webserver log here

[Fri Feb 24 06:25:04.261647 2017] [ssl:error] [pid 1462] AH02217: ssl_stapling_init_cert: can't retrieve issuer certificate! [subject: CN=Ubuntu-Server.home / issuer: CN=Ubuntu-Server.home / serial: 9115A9F4CCF0A0E3 / notbefore: Jan 25 17:50:27 2017 GMT / notafter: Jan 23 17:50:27 2027 GMT]
[Fri Feb 24 06:25:04.261714 2017] [ssl:error] [pid 1462] AH02604: Unable to configure certificate Ubuntu-Server.home:443:0 for stapling
[Fri Feb 24 06:25:04.261821 2017] [mpm_prefork:notice] [pid 1462] AH00163: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g configured -- resuming normal operations
[Fri Feb 24 06:25:04.261835 2017] [core:notice] [pid 1462] AH00094: Command line: '/usr/sbin/apache2'
[Fri Feb 24 09:49:54.891244 2017] [:error] [pid 2868] [client 62.210.162.243:33085] script '/var/www/html/wp-login.php' not found or unable to stat
[Fri Feb 24 11:34:44.883189 2017] [authz_core:error] [pid 3034] [client 192.168.1.1:38046] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 11:34:59.363132 2017] [authz_core:error] [pid 3524] [client 192.168.1.1:38068] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 11:45:42.029025 2017] [authz_core:error] [pid 2868] [client 192.168.1.1:45930] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 11:45:57.721808 2017] [authz_core:error] [pid 3591] [client 192.168.1.1:45944] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 11:51:34.207147 2017] [authz_core:error] [pid 3034] [client 192.168.1.1:46056] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 11:51:39.874206 2017] [authz_core:error] [pid 2868] [client 192.168.1.1:46068] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 11:55:12.032535 2017] [authz_core:error] [pid 3888] [client 192.168.1.1:46542] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 12:02:50.778491 2017] [:error] [pid 3774] [client 192.168.1.1:46212] PHP Fatal error: Uncaught Error: Access to undeclared static property: OC\Files\Filesystem::$normalizedPathCache in /var/www/nextcloud/lib/private/Files/Filesystem.php:806\nStack trace:\n#0 /var/www/nextcloud/lib/private/Files/View.php(2018): OC\Files\Filesystem::normalizePath('/Anton/files/La...')\n#1 /var/www/nextcloud/lib/private/Files/View.php(1156): OC\Files\View->unlockFile('/Lala/See/IMG_0...', 1)\n#2 [internal function]: OC\Files\View->OC\Files\{closure}()\n#3 /var/www/nextcloud/3rdparty/icewind/streams/src/CallbackWrapper.php(109): call_user_func(Object(Closure))\n#4 [internal function]: Icewind\Streams\CallbackWrapper->stream_close()\n#5 {main}\n thrown in /var/www/nextcloud/lib/private/Files/Filesystem.php on line 806
[Fri Feb 24 13:02:07.453193 2017] [authz_core:error] [pid 4037] [client 192.168.1.1:49858] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 13:02:09.796805 2017] [authz_core:error] [pid 3799] [client 192.168.1.1:49864] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 13:02:14.609880 2017] [authz_core:error] [pid 3591] [client 192.168.1.1:49862] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 13:02:20.796808 2017] [authz_core:error] [pid 3823] [client 192.168.1.1:49876] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 13:20:50.340034 2017] [authz_core:error] [pid 4038] [client 192.168.1.1:50216] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata
[Fri Feb 24 13:24:54.115739 2017] [authz_core:error] [pid 4038] [client 192.168.1.1:50392] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata

Nextcloud log (data/nextcloud.log)

Nextcloud log
Insert your Nextcloud log here

{"reqId":"gFvXrR2jC2x9JQ5M9xFV","remoteAddr":"192.168.1.9","app":"files","message":"Backends provided no user object for ","level":3,"time":"2017-02-24T11:21:55+00:00","method":"GET","url":"/s/rzGUZPj6x7NVpM9/download?path=%2F&files=Test&downloadStartSecret=l3iamavppn","user":"--","version":"11.0.1.2"}
{"reqId":"gFvXrR2jC2x9JQ5M9xFV","remoteAddr":"192.168.1.9","app":"no app in context","message":"Exception: {"Exception":"OC\\User\\NoUserException","Message":"Backends provided no user object","Code":0,"Trace":"#0 [internal function]: OC\\Files\\Node\\Root->getUserFolder(NULL)\n#1 \/var\/www\/nextcloud\/lib\/private\/Files\/Node\/LazyRoot.php(65): call_user_func_array(Array, Array)\n#2 \/var\/www\/nextcloud\/lib\/private\/Files\/Node\/LazyRoot.php(282): OC\\Files\\Node\\LazyRoot->__call('getUserFolder', Array)\n#3 \/var\/www\/nextcloud\/apps\/files_downloadactivity\/lib\/Activity\/Listener.php(141): OC\\Files\\Node\\LazyRoot->getUserFolder(NULL)\n#4 \/var\/www\/nextcloud\/apps\/files_downloadactivity\/lib\/Activity\/Listener.php(77): OCA\\FilesDownloadActivity\\Activity\\Listener->getSourcePathAndOwner('\/Test\/Test\/cybe...')\n#5 \/var\/www\/nextcloud\/apps\/files_downloadactivity\/lib\/AppInfo\/Application.php(47): OCA\\FilesDownloadActivity\\Activity\\Listener->readFile('\/Test\/Test\/cybe...')\n#6 \/var\/www\/nextcloud\/lib\/private\/legacy\/hook.php(106): OCA\\FilesDownloadActivity\\AppInfo\\Application->listenReadFile(Array)\n#7 \/var\/www\/nextcloud\/lib\/private\/Files\/View.php(1243): OC_Hook::emit('OC_Filesystem', 'read', Array)\n#8 \/var\/www\/nextcloud\/lib\/private\/Files\/View.php(1113): OC\\Files\\View->runHooks(Array, '\/Test\/Test\/cybe...')\n#9 \/var\/www\/nextcloud\/lib\/private\/Files\/View.php(967): OC\\Files\\View->basicOperation('fopen', '\/Test\/Test\/cybe...', Array, 'r')\n#10 \/var\/www\/nextcloud\/lib\/private\/Files\/Filesystem.php(739): OC\\Files\\View->fopen('\/Test\/Test\/cybe...', 'r')\n#11 \/var\/www\/nextcloud\/lib\/private\/Streamer.php(80): OC\\Files\\Filesystem::fopen('\/Test\/Test\/cybe...', 'r')\n#12 \/var\/www\/nextcloud\/lib\/private\/legacy\/files.php(166): OC\\Streamer->addDirRecursive('\/Test\/Test')\n#13 \/var\/www\/nextcloud\/apps\/files_sharing\/lib\/Controller\/ShareController.php(529): OC_Files::get('\/Test', 'Test', Array)\n#14 [internal function]: OCA\\Files_Sharing\\Controller\\ShareController->downloadShare('rzGUZPj6x7NVpM9', 'Test', '\/', 'l3iamavppn')\n#15 \/var\/www\/nextcloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php(160): call_user_func_array(Array, Array)\n#16 \/var\/www\/nextcloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php(90): OC\\AppFramework\\Http\\Dispatcher->executeController(Object(OCA\\Files_Sharing\\Controller\\ShareController), 'downloadShare')\n#17 \/var\/www\/nextcloud\/lib\/private\/AppFramework\/App.php(114): OC\\AppFramework\\Http\\Dispatcher->dispatch(Object(OCA\\Files_Sharing\\Controller\\ShareController), 'downloadShare')\n#18 \/var\/www\/nextcloud\/lib\/public\/AppFramework\/App.php(136): OC\\AppFramework\\App::main('ShareController', 'downloadShare', Object(OC\\AppFramework\\DependencyInjection\\DIContainer))\n#19 \/var\/www\/nextcloud\/core\/routes.php(100): OCP\\AppFramework\\App->dispatch('ShareController', 'downloadShare')\n#20 [internal function]: OC\\Route\\Router->{closure}(Array)\n#21 \/var\/www\/nextcloud\/lib\/private\/Route\/Router.php(299): call_user_func(Object(Closure), Array)\n#22 \/var\/www\/nextcloud\/lib\/base.php(1010): OC\\Route\\Router->match('\/s\/rzGUZPj6x7NV...')\n#23 \/var\/www\/nextcloud\/index.php(40): OC::handleRequest()\n#24 {main}","File":"\/var\/www\/nextcloud\/lib\/private\/Files\/Node\/Root.php","Line":366}","level":3,"time":"2017-02-24T11:21:55+00:00","method":"GET","url":"/s/rzGUZPj6x7NVpM9/download?path=%2F&files=Test&downloadStartSecret=l3iamavppn","user":"--","version":"11.0.1.2"}
{"reqId":"gFvXrR2jC2x9JQ5M9xFV","remoteAddr":"192.168.1.9","app":"files","message":"Backends provided no user object for ","level":3,"time":"2017-02-24T11:21:55+00:00","method":"GET","url":"/s/rzGUZPj6x7NVpM9/download?path=%2F&files=Test&downloadStartSecret=l3iamavppn","user":"--","version":"11.0.1.2"}
{"reqId":"gFvXrR2jC2x9JQ5M9xFV","remoteAddr":"192.168.1.9","app":"no app in context","message":"Exception: {"Exception":"OC\\User\\NoUserException","Message":"Backends provided no user object","Code":0,"Trace":"#0 [internal function]: OC\\Files\\Node\\Root->getUserFolder(NULL)\n#1 \/var\/www\/nextcloud\/lib\/private\/Files\/Node\/LazyRoot.php(65): call_user_func_array(Array, Array)\n#2 \/var\/www\/nextcloud\/lib\/private\/Files\/Node\/LazyRoot.php(282): OC\\Files\\Node\\LazyRoot->__call('getUserFolder', Array)\n#3 \/var\/www\/nextcloud\/apps\/files_downloadactivity\/lib\/Activity\/Listener.php(141): OC\\Files\\Node\\LazyRoot->getUserFolder(NULL)\n#4 \/var\/www\/nextcloud\/apps\/files_downloadactivity\/lib\/Activity\/Listener.php(77): OCA\\FilesDownloadActivity\\Activity\\Listener->getSourcePathAndOwner('\/Test\/Test\/dist...')\n#5 \/var\/www\/nextcloud\/apps\/files_downloadactivity\/lib\/AppInfo\/Application.php(47): OCA\\FilesDownloadActivity\\Activity\\Listener->readFile('\/Test\/Test\/dist...')\n#6 \/var\/www\/nextcloud\/lib\/private\/legacy\/hook.php(106): OCA\\FilesDownloadActivity\\AppInfo\\Application->listenReadFile(Array)\n#7 \/var\/www\/nextcloud\/lib\/private\/Files\/View.php(1243): OC_Hook::emit('OC_Filesystem', 'read', Array)\n#8 \/var\/www\/nextcloud\/lib\/private\/Files\/View.php(1113): OC\\Files\\View->runHooks(Array, '\/Test\/Test\/dist...')\n#9 \/var\/www\/nextcloud\/lib\/private\/Files\/View.php(967): OC\\Files\\View->basicOperation('fopen', '\/Test\/Test\/dist...', Array, 'r')\n#10 \/var\/www\/nextcloud\/lib\/private\/Files\/Filesystem.php(739): OC\\Files\\View->fopen('\/Test\/Test\/dist...', 'r')\n#11 \/var\/www\/nextcloud\/lib\/private\/Streamer.php(80): OC\\Files\\Filesystem::fopen('\/Test\/Test\/dist...', 'r')\n#12 \/var\/www\/nextcloud\/lib\/private\/legacy\/files.php(166): OC\\Streamer->addDirRecursive('\/Test\/Test')\n#13 \/var\/www\/nextcloud\/apps\/files_sharing\/lib\/Controller\/ShareController.php(529): OC_Files::get('\/Test', 'Test', Array)\n#14 [internal function]: OCA\\Files_Sharing\\Controller\\ShareController->downloadShare('rzGUZPj6x7NVpM9', 'Test', '\/', 'l3iamavppn')\n#15 \/var\/www\/nextcloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php(160): call_user_func_array(Array, Array)\n#16 \/var\/www\/nextcloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php(90): OC\\AppFramework\\Http\\Dispatcher->executeController(Object(OCA\\Files_Sharing\\Controller\\ShareController), 'downloadShare')\n#17 \/var\/www\/nextcloud\/lib\/private\/AppFramework\/App.php(114): OC\\AppFramework\\Http\\Dispatcher->dispatch(Object(OCA\\Files_Sharing\\Controller\\ShareController), 'downloadShare')\n#18 \/var\/www\/nextcloud\/lib\/public\/AppFramework\/App.php(136): OC\\AppFramework\\App::main('ShareController', 'downloadShare', Object(OC\\AppFramework\\DependencyInjection\\DIContainer))\n#19 \/var\/www\/nextcloud\/core\/routes.php(100): OCP\\AppFramework\\App->dispatch('ShareController', 'downloadShare')\n#20 [internal function]: OC\\Route\\Router->{closure}(Array)\n#21 \/var\/www\/nextcloud\/lib\/private\/Route\/Router.php(299): call_user_func(Object(Closure), Array)\n#22 \/var\/www\/nextcloud\/lib\/base.php(1010): OC\\Route\\Router->match('\/s\/rzGUZPj6x7NV...')\n#23 \/var\/www\/nextcloud\/index.php(40): OC::handleRequest()\n#24 {main}","File":"\/var\/www\/nextcloud\/lib\/private\/Files\/Node\/Root.php","Line":366}","level":3,"time":"2017-02-24T11:21:55+00:00","method":"GET","url":"/s/rzGUZPj6x7NVpM9/download?path=%2F&files=Test&downloadStartSecret=l3iamavppn","user":"--","version":"11.0.1.2"}

Browser log

Browser log
Insert your browser log here, this could for example include:

a) The javascript console log
b) The network log
c) ...

jquery-migrate.min.js?v=43eccfd…:2 JQMIGRATE: Migrate is installed, version 1.4.0
DevTools failed to parse SourceMap: https://xxx.ddns.net/core/vendor/jquery/dist/jquery.min.map
js.js?v=43eccfd…:232 Resource interpreted as Document but transferred with MIME type application/zip: "https://xxx.ddns.net/s/rzGUZPj6x7NVpM9/download?path=%2F&files=Test&downloadStartSecret=h7td8ttxs6kae9bd4m18aor".
redirect @ js.js?v=43eccfd…:232
handleDownload @ files.js?v=43eccfd…:302
actionHandler @ fileactions.js?v=43eccfd…:603
_onClickAction @ fileactionsmenu.js?v=43eccfd…:83
dispatch @ jquery.min.js?v=43eccfd…:3
r.handle @ jquery.min.js?v=43eccfd…:3
js.js?v=43eccfd…:232 Resource interpreted as Document but transferred with MIME type application/zip: "https://xxx.ddns.net/s/rzGUZPj6x7NVpM9/download?path=%2F&files=Test&downloadStartSecret=h7td8ttxs6kae9bd4m18aor".
redirect @ js.js?v=43eccfd…:232
handleDownload @ files.js?v=43eccfd…:302
actionHandler @ fileactions.js?v=43eccfd…:603
_onClickAction @ fileactionsmenu.js?v=43eccfd…:83
dispatch @ jquery.min.js?v=43eccfd…:3
r.handle @ jquery.min.js?v=43eccfd…:3

Edit: I was able to reproduce the issue on Windows 7 with Firefox & Chrome too.
On Windows the Folders get correctly unzipped, 7zip shows the error message nevertheless.
The log errors only occure when downloading via the share link, not when you are logged in it seems.

@rayfun
Copy link

rayfun commented Feb 24, 2017

I have the same issue, with "Backends provided no user object for" error message for each file but ZIP file works.

@icewind1991
Copy link
Member

Can reproduce the corrupt zip file but no error messages.

@AntonOellerer
Copy link
Author

With 11.0.2 the bug still occurs, but without the error messages

@nickvergessen
Copy link
Member

The error about the user backend was resolved with:
https://github.com/nextcloud/files_downloadactivity/pull/8/files

However the corrupted zip I can still reproduce

@nickvergessen
Copy link
Member

For me the issue with the corrupted zip was caused because one file was protected with the files access control. The error page is printed into the zip:

} catch (\OCP\Files\ForbiddenException $ex) {
self::unlockAllTheFiles($dir, $files, $getType, $view, $filename);
OC::$server->getLogger()->logException($ex);
$l = \OC::$server->getL10N('core');
\OC_Template::printErrorPage($l->t('Can\'t read file'), $ex->getMessage());

I guess this could should only be done for single Files. Otherwise the failing file should be ignored so the remaining zip is still valid and can be opened.

@nickvergessen
Copy link
Member

Can you guys verify this?

@ITwrx
Copy link

ITwrx commented Mar 8, 2017

@nickvergessen i didn't have a protected file and my zip can't be opened with file roller. unzip in cl works without error. fileroller just shows "$filename: (null)". whatever that means.

@MorrisJobke
Copy link
Member

Duplicate of #2352

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants