owncloud / gallery

:sunrise: Gallery app for ownCloud, which includes previews for all supported media files
GNU Affero General Public License v3.0
88 stars 65 forks source link

[ERROR] Gallery does not display the right image but some old version instead #826

Closed lexo-mfleuti closed 3 years ago

lexo-mfleuti commented 5 years ago

Bug report

Steps to reproduce

  1. User1 uploads an image to OC into a shared folder
  2. User2 changes the image
  3. User1 wants to view the changed image > System shows original image uploaded by User 1

Downloading the file: Always shows the correct file. The update on the OC works properly. Also local sync works properly. It's just the gallery preview that is not showing the proper file version.

Expected behaviour

Gallery must always show the real file, not some cached version of it.

Actual behaviour

Gallery does not show the real file. It seems to display some cached version of it. We tried to delete Browser caches and we even tried with different browsers: The system shows the changed image when User2 is logged in and the non-changed image when User1 is logged in. Also restarting the Apache Webserver doesn't help. We even disabled the gallery and re-enabled it. Nothing. It always displays the originally uploaded file instead of the modified one.

Server configuration

Operating system: Ubuntu 18.10

Web server: Apache/2.4.34 (Ubuntu)

Database: mysql Ver 15.1 Distrib 10.1.38-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

PHP version: PHP Version 7.2.15-0ubuntu0.18.10.1

cloud server: ownCloud

cloud version: 10.1.0 (stable)

Updated from an older installation or fresh install: 10.1.0 was a fresh install

List of activated apps:

App list Enabled: - comments: 0.3.0 - configreport: 0.1.2 - dav: 0.4.0 - federatedfilesharing: 0.3.1 - federation: 0.1.0 - files: 1.5.2 - files_external: 0.7.1 - files_pdfviewer: 0.10.0 - files_sharing: 0.11.0 - files_textviewer: 1.0.1 - files_trashbin: 0.9.1 - files_versions: 1.3.0 - files_videoplayer: 0.9.9 - firstrunwizard: 1.1.1 - gallery: 16.1.1 - market: 0.3.0 - notifications: 0.4.1 - provisioning_api: 0.5.0 - systemtags: 0.3.0 - updatenotification: 0.2.1 Disabled: - encryption - external - user_external

The content of config/config.php:

Config report $CONFIG = array ( 'updatechecker' => false, 'instanceid' => '1234', 'trusted_domains' => array ( 0 => 'mycloud.mydomain.tld', ), 'datadirectory' => '/home/mycloud.mydomain.tld', 'overwrite.cli.url' => 'https://mycloud.mydomain.tld', 'dbtype' => 'mysql', 'version' => '10.1.0.4', 'dbname' => 'mycloud.mydomain.tld', 'dbhost' => 'localhost', 'dbtableprefix' => 'oc_', 'dbuser' => 'mycloud.mydomain.tld', 'dbpassword' => '1234', 'logtimezone' => 'Europe/Zurich', 'log_type' => 'owncloud', 'loglevel' => 1, 'logfile' => '/var/log/owncloud.log', 'logdateformat' => 'M d H:i:s', 'installed' => true, 'mail_domain' => 'mydomain.tld', 'mail_from_address' => 'data', 'mail_smtpmode' => 'smtp', 'mail_smtpsecure' => 'ssl', 'mail_smtpauthtype' => 'PLAIN', 'mail_smtpauth' => 1, 'mail_smtphost' => 'mail.mydomain.tld', 'mail_smtpport' => '465', 'mail_smtpname' => 'mycloud.mydomain.tld', 'mail_smtppassword' => '1234', /* Performance settings */ 'asset-pipeline.enabled' => true, 'memcache.local' => '\\OC\\Memcache\\Redis', 'filelocking.enabled' => 'true', 'memcache.distributed' => '\\OC\\Memcache\\Redis', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'redis' => array ( 'host' => 'localhost', 'port' => 6379, 'timeout' => 0, 'dbindex' => 0, ), /*'preview_max_scale_factor' => 1, 'enabledPreviewProviders' => array ( 0 => 'OC\\Preview\\PNG', 1 => 'OC\\Preview\\JPEG', 2 => 'OC\\Preview\\GIF', 11 => 'OC\\Preview\\Illustrator', 12 => 'OC\\Preview\\Postscript', 13 => 'OC\\Preview\\Photoshop', 14 => 'OC\\Preview\\TIFF', 5 => 'OC\\Preview\\SVG' ), */ );

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

Are you using encryption: No

Are you using custom gallery.cnf config files: No

Web server error log

Web server error log No error in any log. We see proper GET logs in the Apache access log. All good.

Cloud log

Cloud log No error.

Client configuration

Browser: All sorts of: Firefox, Chrome, Opera, even IE11 > Same issue.

Operating system:

Browser log

a) The javascript console log Deprecation warning: tipsy is deprecated. Use tooltip instead. https://mycloud.mydomain.tld/core/js/js.js?v=7d6cf38bb9fca1af1c755d8f95eff063

b) The network log System is fetching this file: https://mycloud.mydomain.tld/index.php/apps/gallery/preview/78721?width=3900&height=3900&c=2534722bd193e4f89b34706cb4e7f4b8&requesttoken=LzR4XW5JBiJgQjcbTVEBQA4aIFAVIDwhBxQCCi01BCU%3D%3AfEOm8pMvV5ZSzhSoytI2BVhwogqDclgdrfJrGBvl95A%3D

It's GET status 200 cache-control is set to: no-cache, must-revalidate

It seems to be all good. Checking this I think it COULD be, that the gallery is picking up the original file that is maybe in the trash. Because the file was deleted by the other user and replaced with the same filename. Perhaps the system refers to a file pointer instead of to the actual file in this directory.

-->

Browser log Nothing to see. Console is empty.
phil-davis commented 5 years ago

Could be this issue, where the preview/thumbnails from point-of-view of sharer and share receiver end up being different: https://github.com/owncloud/core/issues/31855

lexo-mfleuti commented 5 years ago

it sounds like its being the same though we do not experience this owner issue. What I've noticed additionally is that the gallery seems to pick up not the current file stored on the cloud but the original version that was changed by the current use the first time. When I navigate to "Versions" and check out older versions I can see that the gallery always displays the first version of the file. To me it seems as if the gallery is using a file pointer which points to the original file created by this user (that version) and never changes the pointer to the newest file.

lexo-mfleuti commented 5 years ago

Ping... ;) The error persists and it's really annoying and dangerous. Because we're being presented the wrong data this causes troubles with customers and also internally.