nextcloud / nextcloud/previewgenerator

Generating previews on encrypted files let generator fail

Open
#572 5 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop bug
Dominant language
PHP
Stars
520
Forks
55
PR merge metrics
No merged PRs in 30d

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Steps to reproduce
  1. Upload a password secured pdf
  2. run preview-generator
Expected behaviour

If preview generator can not open a file to generate a preview in case of encryption / password secured file, it should ignore this file or create a thumbnail which gives information that this file is encrypted.

Actual behaviour

Generation of previews stops with an error. No more previews are generated.
I have to remove the encrypted file and start again generating previews.

Server configuration

Web server: Nextcloud AIO 31.0.9 bundled caddy

Database: Nextcloud AIO 31.0.9 think it's postgres?

PHP version: Nextcloud AIO 31.0.9

Nextcloud version: (see Nextcloud admin page)

List of activated apps
# docker exec -ti --user=www-data nextcloud-aio-nextcloud php occ app:list
Enabled:
  - activity: 4.0.0
  - admin_audit: 1.21.0
  - assistant: 2.9.0
  - bruteforcesettings: 4.0.0
  - calendar: 5.5.7
  - circles: 31.0.0
  - cloud_federation_api: 1.14.0
  - collectives: 3.2.1
  - comments: 1.21.0
  - contacts: 7.3.4
  - contactsinteraction: 1.12.0
  - cookbook: 0.11.4
  - cospend: 3.1.6
  - dav: 1.33.0
  - deck: 1.15.3
  - emlviewer: 2.0.1
  - epubviewer: 1.8.1
  - facerecognition: 0.9.70
  - federatedfilesharing: 1.21.0
  - federation: 1.21.0
  - files: 2.3.1
  - files_accesscontrol: 2.0.2
  - files_automatedtagging: 2.0.0
  - files_confidential: 3.3.0
  - files_downloadactivity: 1.18.1
  - files_downloadlimit: 4.0.0
  - files_external: 1.23.0
  - files_pdfviewer: 4.0.0
  - files_reminders: 1.4.0
  - files_retention: 2.0.1
  - files_sharing: 1.23.1
  - files_trashbin: 1.21.0
  - files_versions: 1.24.0
  - fileslibreofficeedit: 2.0.1
  - forms: 5.2.2
  - gpoddersync: 3.13.1
  - groupfolders: 19.1.8
  - impersonate: 2.0.0
  - integration_oidc: 0.1.6
  - integration_openai: 3.7.1
  - journeys: 0.7.11
  - logreader: 4.0.0
  - lookup_server_connector: 1.19.0
  - maps: 1.6.0
  - memories: 7.7.0
  - music: 2.4.1
  - nextcloud-aio: 0.8.0
  - nextcloud_announcements: 3.0.0
  - nextpod: 0.7.8
  - notes: 4.12.3
  - notifications: 4.0.0
  - notify_push: 1.2.0
  - oauth2: 1.19.1
  - oidc_login: 3.2.2
  - ownershiptransfer: 1.3.0
  - photos: 4.0.0
  - polls: 8.5.0
  - previewgenerator: 5.10.0
  - privacy: 3.0.0
  - profile: 1.0.0
  - provisioning_api: 1.21.0
  - related_resources: 2.0.0
  - richdocuments: 8.7.6
  - serverinfo: 3.0.0
  - settings: 1.14.0
  - sharebymail: 1.21.0
  - spreed: 21.1.5
  - support: 3.0.0
  - suspicious_login: 9.0.1
  - tasks: 0.16.1
  - text: 5.0.0
  - theming: 2.6.1
  - twofactor_backupcodes: 1.20.0
  - twofactor_nextcloud_notification: 5.0.0
  - twofactor_totp: 13.0.0-dev.0
  - updatenotification: 1.21.0
  - user_oidc: 8.1.0
  - user_status: 1.11.0
  - viewer: 4.0.0
  - whiteboard: 1.3.0
  - workflow_script: 2.0.0
  - workflowengine: 2.13.0
Disabled:
  - app_api: 5.0.2 (installed 5.0.2)
  - dashboard: 7.11.0 (installed 7.11.0)
  - encryption: 2.19.0 (installed 2.19.0)
  - firstrunwizard: 4.0.0 (installed 4.0.0)
  - intros: 1.1.2 (installed 1.1.2)
  - libresign: 11.5.1 (installed 11.5.1)
  - password_policy: 3.0.0 (installed 3.0.0)
  - recommendations: 4.0.0 (installed 4.0.0)
  - survey_client: 3.0.0 (installed 3.0.0)
  - systemtags: 1.21.1 (installed 1.21.1)
  - tables: 0.9.5 (installed 0.9.5)
  - user_ldap: 1.22.0
  - weather_status: 1.11.0 (installed 1.11.0)
  - webhook_listeners: 1.2.0 (installed 1.2.0)

Nextcloud configuration
root@zimablade:~# docker exec -ti --user=www-data nextcloud-aio-nextcloud php occ config:list system
{
    "system": {
        "debug": false,
        "one-click-instance": true,
        "one-click-instance.user-limit": 100,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        "check_data_directory_permissions": false,
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "password": "***REMOVED SENSITIVE VALUE***",
            "port": 6379
        },
        "overwritehost": "nc.schuerz.at",
        "overwriteprotocol": "https",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "nc.schuerz.at"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "31.0.9.1",
        "overwrite.cli.url": "https:\/\/nc.schuerz.at\/",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "updatechecker": false,
        "log_type": "file",
        "logfile": "\/var\/www\/html\/data\/nextcloud.log",
        "log_rotate_size": 10485760,
        "log.condition": {
            "apps": [
                "admin_audit"
            ]
        },
        "preview_max_x": 2048,
        "preview_max_y": 2048,
        "jpeg_quality": 80,
        "enabledPreviewProviders": {
            "1": "OC\\Preview\\Image",
            "2": "OC\\Preview\\MarkDown",
            "3": "OC\\Preview\\MP3",
            "4": "OC\\Preview\\TXT",
            "5": "OC\\Preview\\OpenDocument",
            "6": "OC\\Preview\\Movie",
            "7": "OC\\Preview\\Krita",
            "0": "OC\\Preview\\Imaginary",
            "23": "OC\\Preview\\ImaginaryPDF"
        },
        "enable_previews": true,
        "upgrade.disable-web": true,
        "mail_smtpmode": "smtp",
        "trashbin_retention_obligation": "auto, 30",
        "versions_retention_obligation": "auto, 30",
        "activity_expire_days": 30,
        "simpleSignUpLink.shown": false,
        "share_folder": "\/Shared",
        "one-click-instance.link": "https:\/\/nextcloud.com\/all-in-one\/",
        "upgrade.cli-upgrade-link": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/2726",
        "updatedirectory": "\/nc-updater",
        "maintenance_window_start": 100,
        "allow_local_remote_servers": true,
        "davstorage.request_timeout": 3600,
        "documentation_url.server_logs": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/5425",
        "htaccess.RewriteBase": "\/",
        "dbpersistent": false,
        "auth.bruteforce.protection.enabled": true,
        "ratelimit.protection.enabled": true,
        "files_external_allow_create_new_local": false,
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "preview_imaginary_url": "***REMOVED SENSITIVE VALUE***",
        "preview_imaginary_key": "***REMOVED SENSITIVE VALUE***",
        "facerecognition.external_model_url": "nextcloud-aio-facerecognition:5000",
        "enabledFaceRecognitionMimetype": [
            "image\/jpeg",
            "image\/png",
            "image\/heic",
            "image\/tiff",
            "image\/webp"
        ],
        "memories.db.triggers.fcu": true,
        "memories.exiftool": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/exiftool-amd64-musl",
        "memories.vod.path": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/go-vod-amd64",
        "memories.vod.ffmpeg": "\/usr\/bin\/ffmpeg",
        "memories.vod.ffprobe": "\/usr\/bin\/ffprobe",
        "memories.vod.external": true,
        "memories.vod.connect": "nextcloud-aio-memories:47788",
        "allow_user_to_change_display_name": false,
        "lost_password_link": "disabled",
        "app_install_overwrite": [
            "globalsiteselector"
        ],
        "default_phone_region": "AT",
        "filesystem_check_changes": 1,
        "memories.gis_type": 2,
        "facerecognition.external_model_api_key": "910a37b3a89a7c47964eca0195ee74f17b3d7e00955e5b60",
        "DOMAIN": "nc.schuerz.at"
    }
}

Browser

Browser name: not relevant. It's serverside

Browser version: not relevant. It's serverside

Operating system: not relevant. It's serverside

not relevant. It's serverside

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with an encrypted PDF and the preview-generator command, then trace the preview-generation entry point that handles the file. Check how an encrypted file error is propagated and add coverage for continuing past it; done means later files still receive previews and the encrypted file is either skipped or represented as encrypted.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.