Skip to content

Upload of .htaccess file via WebDAV results in InsufficientStorage exception #2860

@ghost

Description

Edit by @MorrisJobke: For steps see #2860 (comment)

--

Steps to reproduce

  1. Attempt to upload a file named .htaccess via WebDAV
  2. Will return a quota error since it cant parse files correctly in the Sabre CheckQuota plugin
  3. Circumvent CheckQuota plugin to return true always results now in " Could not rename part file to final file"

Expected behaviour

dot files should be treated the exact same since it's a virtual filesystem not served directly by apache.

Actual behaviour

Various Erorrs

Server configuration

Operating system:
CentOS 7.3.1611 (x64)

Web server:
Server version: Apache/2.4.23 (cPanel)
Server built: Dec 13 2016 13:28:05
Server's Module Magic Number: 20120211:61
Server loaded: APR 1.5.2, APR-UTIL 1.5.2
Compiled using: APR 1.5.2, APR-UTIL 1.5.2
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses disabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

Database:
mysqld Ver 10.1.20-MariaDB for Linux on x86_64 (MariaDB Server)

PHP version:
ea-php-cli Copyright 2016 cPanel, Inc.
PHP 7.0.14 (cli) (built: Dec 13 2016 13:45:15) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v6.0.4, Copyright (c) 2002-2016, by ionCube Ltd.
Nextcloud version: (see Nextcloud admin page)

Updated from an older Nextcloud/ownCloud or fresh install:
Updated from 10.x to 11.0.0 Beta to fix ANOTHER issue with dot files.

Where did you install Nextcloud from:
tar file downloaded from nextcloud site

Signing status:

Signing status
Integrity checker has been disabled. Integrity cannot be verified.

List of activated apps:

App list
Unable to run. Script won't run from command line due to cPanel's implementation of PHP

The content of config/config.php:

Config report
$CONFIG = array (
  'instanceid' => '[REDACTED]',
  'passwordsalt' => '[REDACTED]',
  'secret' => '[REDACTED]',
  'trusted_domains' => 
  array (
    0 => '[REDACTED]',
  ),
  'datadirectory' => '[REDACTED]/data',
  'overwrite.cli.url' => '[REDACTED]',
  'dbtype' => 'mysql',
  'version' => '11.0.0.10',
  'dbname' => '[REDACTED]',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => '[REDACTED]',
  'dbpassword' => '[REDACTED]',
  'logtimezone' => 'UTC',
  'installed' => true,
  'mail_smtpmode' => 'smtp',
  'mail_smtpsecure' => 'tls',
  'mail_smtphost' => '[REDACTED]',
  'mail_smtpport' => '25',
  'mail_from_address' => 'nextcloud',
  'mail_domain' => '[REDACTED]',
  'memcache.local' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' => 
  array (
    'host' => '[REDACTED]',
    'port' => 0,
  ),
  'maintenance' => false,
  'theme' => '',
  'loglevel' => 2,
  'updater.release.channel' => 'beta',
  'updater.secret' => '[REDACTED]',
);

Are you using external storage, if yes which one: No

Are you using encryption: No

Are you using an external user-backend, if yes which one: No

Client configuration

Browser: WebDav client

Operating system: Synology

Logs

Web server error log

Web server error log ``` [REDACTED] - - [26/Dec/2016:11:25:07 -0600] "PUT /remote.php/dav/files/[REDACTED]/htdocs/vendor/plugins/jqueryupload/server/php/files/.htaccess HTTP/1.1" 500 223 "-" "-" ```

Nextcloud log (data/nextcloud.log)

Nextcloud log ``` {"reqId":"WGFSpBwXDUaOa8OAMaKeLQAAAAU","remoteAddr":"[REDACTED]","app":"webdav","message":"renaming part file to final file failed","level":3,"time":"2016-12-26T17:25:57+00:00","method":"PUT","url":"\/remote.php\/dav\/files\/[REDACTED]\/htdocs\/vendor\/plugins\/jqueryupload\/server\/php\/files\/.htaccess","user":"james","version":"11.0.0.10"} {"reqId":"WGFSpBwXDUaOa8OAMaKeLQAAAAU","remoteAddr":"[REDACTED]","app":"webdav","message":"Exception: {\"Message\":\"HTTP\\\/1.1 500 Could not rename part file to final file\",\"Exception\":\"Sabre\\\\DAV\\\\Exception\",\"Code\":0,\"Trace\":\"#0 \\\[REDACTED]\\\/public_html\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/Directory.php(137): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\File->put(Resource id #405)\\n#1 \\\[REDACTED]\\\/public_html\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(1072): OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Directory->createFile('.htaccess', Resource id #405)\\n#2 \\\[REDACTED]\\/public_html\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/CorePlugin.php(525): Sabre\\\\DAV\\\\Server->createFile('files\\\/james\\\/Doc...', Resource id #405, NULL)\\n#3 [internal function]: Sabre\\\\DAV\\\\CorePlugin->httpPut(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#4 \\\[REDACTED]\\\/public_html\\\/3rdparty\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#5 \\\[REDACTED]\\\/public_html\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(479): Sabre\\\\Event\\\\EventEmitter->emit('method:PUT', Array)\\n#6 \\\[REDACTED]\\\/public_html\\\/3rdparty\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#7 \\\[REDACTED]\\/public_html\\\/apps\\\/dav\\\/lib\\\/Server.php(227): Sabre\\\\DAV\\\\Server->exec()\\n#8 \\\[REDACTED]\\\/public_html\\\/apps\\\/dav\\\/appinfo\\\/v2\\\/remote.php(30): OCA\\\\DAV\\\\Server->exec()\\n#9 \\\[REDACTED]\\\/public_html\\\/remote.php(165): require_once('\\\/[REDACTED]...')\\n#10 {main}\",\"File\":\"\\\[REDACTED]\\\/public_html\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/File.php\",\"Line\":187,\"User\":\"[REDACTED]\"}","level":4,"time":"2016-12-26T17:25:57+00:00","method":"PUT","url":"\/remote.php\/dav\/files\[REDACTED]/htdocs\/vendor\/plugins\/jqueryupload\/server\/php\/files\/.htaccess","user":"[REDACTED]","version":"11.0.0.10"}
</details>

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions