owncloud/ios-legacy

Only 1 thumbnail appears when entering a new folder

Opened this issue · 4 comments

Steps to reproduce

  1. Create an account on the server, create a new folder e.g. ServerFolder and out a few JPG files in it
  2. Connect to that account from the iOS app 3.7.3
  3. Navigate into ServerFolder
  4. Observe which files have thumbnails displayed

Expected behaviour

Every file should have a thumbnail displayed

Actual behaviour

Only 1 file has a thumbnail displayed

Server configuration

I noticed this while doing 10.0.8 testing

Web server:
PHP dev server

Database:
MySQL

PHP version:
7.1.16

ownCloud version:
10.0.8RC3
Also reproduced with 10.0.7

Storage backend (external storage):

Client

iOS version:
9.3.5

ownCloud app version:
3.7.3

Device model:
iPhone4S

Logs

Web server error log

No errors. PHP dev server running output:

[Thu Apr 19 08:29:28 2018] 10.49.216.201:60190 [207]: /remote.php/webdav/ServerFolder/
[Thu Apr 19 08:29:29 2018] 10.49.216.201:60191 [200]: /ocs/v1.php/apps/files_sharing/api/v1/shares?path=ServerFolder/&subfiles=true
[Thu Apr 19 08:29:29 2018] 10.49.216.201:60192 [200]: /ocs/v1.php/apps/files_sharing/api/v1/shares?path=ServerFolder/&subfiles=true
[Thu Apr 19 08:29:29 2018] 10.49.216.201:60193 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_172302.jpg
[Thu Apr 19 08:29:29 2018] 10.49.216.201:60194 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_170838.jpg
[Thu Apr 19 08:29:29 2018] 10.49.216.201:60195 [200]: /ocs/v1.php/apps/files_sharing/api/v1/shares?path=ServerFolder/&subfiles=true
[Thu Apr 19 08:29:29 2018] 10.49.216.201:60196 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_172302.jpg
[Thu Apr 19 08:29:30 2018] 10.49.216.201:60197 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_172302.jpg
[Thu Apr 19 08:29:30 2018] 10.49.216.201:60198 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_171515.jpg
[Thu Apr 19 08:29:30 2018] 10.49.216.201:60199 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_171515.jpg
[Thu Apr 19 08:29:30 2018] 10.49.216.201:60200 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_170838.jpg
[Thu Apr 19 08:29:31 2018] 10.49.216.201:60201 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_170838.jpg
[Thu Apr 19 08:29:31 2018] 10.49.216.201:60202 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_165518.jpg
[Thu Apr 19 08:29:31 2018] 10.49.216.201:60203 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_173232.jpg
[Thu Apr 19 08:29:31 2018] 10.49.216.201:60204 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_171515.jpg
[Thu Apr 19 08:29:31 2018] 10.49.216.201:60205 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_173232.jpg
[Thu Apr 19 08:29:32 2018] 10.49.216.201:60206 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_172302.jpg
[Thu Apr 19 08:29:32 2018] 10.49.216.201:60207 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_165518.jpg
[Thu Apr 19 08:29:32 2018] 10.49.216.201:60208 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_172302.jpg
[Thu Apr 19 08:29:32 2018] 10.49.216.201:60209 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_172302.jpg
[Thu Apr 19 08:29:32 2018] 10.49.216.201:60210 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_171515.jpg
[Thu Apr 19 08:29:33 2018] 10.49.216.201:60211 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_171515.jpg
[Thu Apr 19 08:29:33 2018] 10.49.216.201:60212 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_171515.jpg
[Thu Apr 19 08:33:05 2018] 10.49.216.201:60213 [200]: /status.php
[Thu Apr 19 08:33:05 2018] 10.49.216.201:60214 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_165518.jpg
[Thu Apr 19 08:33:05 2018] 10.49.216.201:60215 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_170838.jpg
[Thu Apr 19 08:33:05 2018] 10.49.216.201:60216 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_172302.jpg
[Thu Apr 19 08:33:05 2018] 10.49.216.201:60217 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_172302.jpg
[Thu Apr 19 08:33:05 2018] 10.49.216.201:60218 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_172302.jpg
[Thu Apr 19 08:33:05 2018] 10.49.216.201:60219 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_173232.jpg
[Thu Apr 19 08:35:18 2018] 10.49.216.201:60223 [200]: /status.php
[Thu Apr 19 08:35:19 2018] 10.49.216.201:60224 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_165518.jpg
[Thu Apr 19 08:35:19 2018] 10.49.216.201:60225 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_165518.jpg
[Thu Apr 19 08:35:19 2018] 10.49.216.201:60226 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_170838.jpg
[Thu Apr 19 08:35:19 2018] 10.49.216.201:60227 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_172302.jpg
[Thu Apr 19 08:38:02 2018] 10.49.216.201:60237 [200]: /status.php
[Thu Apr 19 08:38:02 2018] 10.49.216.201:60238 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_165518.jpg
[Thu Apr 19 08:38:02 2018] 10.49.216.201:60239 [200]: /index.php/apps/files/api/v1/thumbnail/64/64/ServerFolder/20180203_170838.jpg
[Thu Apr 19 08:38:37 2018] 10.49.210.11:33704 [200]: /index.php/heartbeat

ownCloud log (data/owncloud.log)

No errors

Each time you refresh the folder (e.g. navigate out and back into the folder) another thumbnail appears (or sometimes a few more appear). Eventually you have all the thumbnails displayed.

Also, when the app is trying to get the thumbnails, there are multiple queries for the thumbnail of the same file. That is a waste of bandwidth, and maybe if the reason for that is found, then it will fix the reason that the app does actually query for all the thumbnails but only actually saves 1 of them each time.

I only have an old iPhone4S, so it would be good if someone with a more modern iPhone can reproduce this.

Can't reproduce with latest high-end device (iPad Pro 10.5 with 11.4 beta): All images shown. But mitmproxy clearly shows every thumbnail gets requested twice:

   PROPFIND https://owncloud.example.com/remote.php/webdav/Upload-Test/phil-test/
            <- 207 application/xml 3.49k 440ms
   PROPFIND https://owncloud.example.com/remote.php/webdav/Upload-Test/phil-test/
            <- 207 application/xml 821b 260ms
   GET https://owncloud.example.com/index.php/apps/files/api/v1/thumbnail/64/64/Upload-Test/phil-test/400%26text%3dimage-1.png
       <- 200 image/png 676b 288ms
   GET https://owncloud.example.com/index.php/apps/files/api/v1/thumbnail/64/64/Upload-Test/phil-test/400%26text%3dimage-2.png
       <- 200 image/png 731b 298ms
   GET https://owncloud.example.com/index.php/apps/files/api/v1/thumbnail/64/64/Upload-Test/phil-test/400%26text%3dimage-3.png
       <- 200 image/png 745b 245ms
   GET https://owncloud.example.com/index.php/apps/files/api/v1/thumbnail/64/64/Upload-Test/phil-test/400%26text%3dimage-4.png
       <- 200 image/png 720b 266ms
   GET https://owncloud.example.com/index.php/apps/files/api/v1/thumbnail/64/64/Upload-Test/phil-test/400%26text%3dimage-1.png
       <- 200 image/png 676b 272ms
   GET https://owncloud.example.com/index.php/apps/files/api/v1/thumbnail/64/64/Upload-Test/phil-test/400%26text%3dimage-2.png
       <- 200 image/png 731b 274ms
   GET https://owncloud.example.com/index.php/apps/files/api/v1/thumbnail/64/64/Upload-Test/phil-test/400%26text%3dimage-3.png
       <- 200 image/png 745b 279ms
>> GET https://owncloud.example.com/index.php/apps/files/api/v1/thumbnail/64/64/Upload-Test/phil-test/400%26text%3dimage-4.png
       <- 200 image/png 720b 233ms

Then a way to move forward with this is to find and fix the reason for the duplicated thumbnail requests.
After that is fixed, then perhaps the old iPhone4S will not get confused about displaying the returned thumbnails.