Skip to content

Directories containing % hang the directory listing in the web interface #12088

@calraith

Description

@calraith

Steps to reproduce

  1. Create a folder. In its name, include a % sign.
  2. Next time you navigate to the folder containing that folder, you'll get an infinite spinny loading wheel and the contents of the directory will never appear. nextcloud.log will contain no record of the incident, and the web server will not throw an error.
  3. Navigating on the command line to your userid/files/path/to/dir_which_refuses_to_load, rename the offending folder to something not containing a %. Then occ files:scan userid to set things right.

Expected behaviour

Either % should be refused when (re)naming a directory, or the web interface shouldn't hang when trying to enumerate a directory whose contents contain a directory with a % in the name.

Actual behaviour

Sadness.

Server configuration

Nextcloud 14.0.3 is running on a 12-core Xeon with 16GB RAM. Debian Testing, nginx, PHP 7.2 and 7.3 (I upgraded while troubleshooting this issue), postgresql. My data directory lives on an NTFS drive attached to my router serving as my home SAN. The drive is mounted to my Debian box via automount / CIFS, and then remounted to /var/www/data with bindfs for permissions / ownership sorcery.

Signing status:

Signing status
No errors have been found.

List of activated apps:

App list
Enabled:
  - accessibility: 1.0.1
  - activity: 2.7.0
  - calendar: 1.6.3
  - cloud_federation_api: 0.0.1
  - comments: 1.4.0
  - contacts: 2.1.6
  - dav: 1.6.0
  - federatedfilesharing: 1.4.0
  - federation: 1.4.0
  - files: 1.9.0
  - files_pdfviewer: 1.3.2
  - files_sharing: 1.6.2
  - files_texteditor: 2.6.0
  - files_trashbin: 1.4.1
  - files_versions: 1.7.1
  - files_videoplayer: 1.3.0
  - firstrunwizard: 2.3.0
  - gallery: 18.1.0
  - logreader: 2.0.0
  - lookup_server_connector: 1.2.0
  - music: 0.9.2
  - nextcloud_announcements: 1.3.0
  - notifications: 2.2.1
  - oauth2: 1.2.1
  - password_policy: 1.4.0
  - previewgenerator: 1.1.0
  - provisioning_api: 1.4.0
  - serverinfo: 1.4.0
  - sharebymail: 1.4.0
  - support: 1.0.0
  - survey_client: 1.2.0
  - systemtags: 1.4.0
  - theming: 1.5.0
  - twofactor_backupcodes: 1.3.1
  - unsplash: 1.1.1
  - updatenotification: 1.4.1
  - workflowengine: 1.4.0
Disabled:
  - admin_audit
  - encryption
  - files_external
  - metadata
  - user_external
  - user_ldap

Nextcloud configuration:

Config report
{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "rojo.headcandy.org"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "overwrite.cli.url": "https:\/\/rojo.headcandy.org\/nextcloud",
        "dbtype": "pgsql",
        "version": "14.0.3.0",
        "installed": true,
        "mail_smtpmode": "smtp",
        "mail_smtpauthtype": "LOGIN",
        "mail_smtpsecure": "tls",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpauth": 1,
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "theme": "",
        "loglevel": 2,
        "enable_previews": true,
        "enabledPreviewProviders": [
            "OC\\Preview\\PNG",
            "OC\\Preview\\JPEG",
            "OC\\Preview\\GIF",
            "OC\\Preview\\BMP",
            "OC\\Preview\\XBitmap",
            "OC\\Preview\\MP3",
            "OC\\Preview\\TXT",
            "OC\\Preview\\MarkDown",
            "OC\\Preview\\PDF",
            "OC\\Preview\\Movie"
        ],
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "memcache.local": "\\OC\\Memcache\\APCu"
    },
    "apps": {
        "accessibility": {
            "installed_version": "1.0.1",
            "types": "",
            "enabled": "yes"
        },
        "activity": {
            "enabled": "yes",
            "types": "filesystem",
            "installed_version": "2.7.0"
        },
        "backgroundjob": {
            "lastjob": "5"
        },
        "calendar": {
            "installed_version": "1.6.3",
            "types": "",
            "enabled": "yes"
        },
        "cloud_federation_api": {
            "installed_version": "0.0.1",
            "types": "filesystem",
            "enabled": "yes"
        },
        "comments": {
            "enabled": "yes",
            "types": "logging",
            "installed_version": "1.4.0"
        },
        "contacts": {
            "types": "",
            "enabled": "yes",
            "installed_version": "2.1.6"
        },
        "core": {
            "backgroundjobs_mode": "cron",
            "default_encryption_module": "OC_DEFAULT_MODULE",
            "installedat": "1536935908.6583",
            "moveavatarsdone": "yes",
            "previewsCleanedUp": "1",
            "public_files": "files_sharing\/public.php",
            "public_webdav": "dav\/appinfo\/v1\/publicwebdav.php",
            "vendor": "nextcloud",
            "scss.variables": "17469a460e0ff7dc6fbbf67b5806a9c4",
            "updater.secret.created": "1539358616",
            "lastupdatedat": "1540701890",
            "umgmt_show_last_login": "true",
            "umgmt_show_email": "true",
            "umgmt_send_email": "true",
            "lastupdateResult": "[]",
            "oc.integritycheck.checker": "[]",
            "lastcron": "1540699382"
        },
        "dav": {
            "enabled": "yes",
            "types": "filesystem",
            "buildCalendarSearchIndex": "yes",
            "installed_version": "1.6.0"
        },
        "encryption": {
            "masterKeyId": "master_ebf81563",
            "publicShareKeyId": "pubShare_ebf81563",
            "recoveryKeyId": "recoveryKey_ebf81563"
        },
        "federatedfilesharing": {
            "enabled": "yes",
            "types": "",
            "installed_version": "1.4.0"
        },
        "federation": {
            "enabled": "yes",
            "types": "authentication",
            "installed_version": "1.4.0"
        },
        "files": {
            "cronjob_scan_files": "500",
            "enabled": "yes",
            "types": "filesystem",
            "installed_version": "1.9.0"
        },
        "files_pdfviewer": {
            "installed_version": "1.3.2",
            "types": "",
            "enabled": "yes"
        },
        "files_sharing": {
            "enabled": "yes",
            "types": "filesystem",
            "installed_version": "1.6.2"
        },
        "files_texteditor": {
            "enabled": "yes",
            "types": "",
            "installed_version": "2.6.0"
        },
        "files_trashbin": {
            "enabled": "yes",
            "types": "filesystem,dav",
            "installed_version": "1.4.1"
        },
        "files_versions": {
            "enabled": "yes",
            "types": "filesystem,dav",
            "installed_version": "1.7.1"
        },
        "files_videoplayer": {
            "enabled": "yes",
            "types": "",
            "installed_version": "1.3.0"
        },
        "firstrunwizard": {
            "enabled": "yes",
            "types": "logging",
            "installed_version": "2.3.0"
        },
        "gallery": {
            "enabled": "yes",
            "types": "",
            "installed_version": "18.1.0"
        },
        "logreader": {
            "enabled": "yes",
            "installed_version": "2.0.0",
            "ocsid": "170871",
            "types": ""
        },
        "lookup_server_connector": {
            "enabled": "yes",
            "types": "authentication",
            "installed_version": "1.2.0"
        },
        "metadata": {
            "types": "",
            "installed_version": "0.7.0"
        },
        "music": {
            "installed_version": "0.9.2",
            "types": "filesystem",
            "enabled": "yes"
        },
        "nextcloud_announcements": {
            "enabled": "yes",
            "pub_date": "Sat, 10 Dec 2016 00:00:00 +0100",
            "types": "logging",
            "installed_version": "1.3.0"
        },
        "notifications": {
            "enabled": "yes",
            "types": "logging",
            "installed_version": "2.2.1"
        },
        "oauth2": {
            "enabled": "yes",
            "types": "authentication",
            "installed_version": "1.2.1"
        },
        "password_policy": {
            "enabled": "yes",
            "types": "",
            "installed_version": "1.4.0"
        },
        "previewgenerator": {
            "enabled": "yes",
            "installed_version": "1.1.0",
            "types": "filesystem",
            "pid": "27714"
        },
        "provisioning_api": {
            "enabled": "yes",
            "types": "prevent_group_restriction",
            "installed_version": "1.4.0"
        },
        "serverinfo": {
            "enabled": "yes",
            "types": "",
            "installed_version": "1.4.0"
        },
        "sharebymail": {
            "enabled": "yes",
            "types": "filesystem",
            "installed_version": "1.4.0"
        },
        "support": {
            "installed_version": "1.0.0",
            "types": "",
            "enabled": "yes"
        },
        "survey_client": {
            "enabled": "yes",
            "types": "",
            "installed_version": "1.2.0"
        },
        "systemtags": {
            "enabled": "yes",
            "types": "logging",
            "installed_version": "1.4.0"
        },
        "theming": {
            "enabled": "yes",
            "types": "logging",
            "installed_version": "1.5.0"
        },
        "twofactor_backupcodes": {
            "enabled": "yes",
            "types": "",
            "installed_version": "1.3.1"
        },
        "unsplash": {
            "enabled": "yes",
            "installed_version": "1.1.1",
            "types": ""
        },
        "updatenotification": {
            "enabled": "yes",
            "types": "",
            "update_check_errors": "0",
            "core": "13.0.7.2",
            "installed_version": "1.4.1",
            "calendar": "1.6.3"
        },
        "workflowengine": {
            "enabled": "yes",
            "types": "filesystem",
            "installed_version": "1.4.0"
        }
    }
}

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

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:
Firefox 63.0

Operating system:
Win 10 Pro

Logs

Web server error log

Web server error log
no errors

Nextcloud log (data/nextcloud.log)

Nextcloud log
completely empty

Browser log

Browser log
Did not check before fixing the directory name.  I'm not eager to create the problem again to check for javascript errors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions