Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uploading an entire folder over the Web Interface freezes the frontend #9817

Closed
marciofeld opened this issue Oct 15, 2023 · 13 comments
Closed
Labels
Type:Bug Something isn't working

Comments

@marciofeld
Copy link

Describe the bug

After dragging or choosing a local folder with lots of files to the Infinite Scale Web Interface to be uploaded, the frontend freezes. Sometimes, after waiting a big amount of minutes, it unfreezes the frontend and starts uploading the files, but most of the time it fails the upload.

image

Steps to reproduce

Steps to reproduce the behavior:

  1. Log in to Infinite Scale using the Web Browser
  2. Drag a local folder with lots of files and subfolders to your personal folder

Expected behavior

The web frontend freezes. The browser may report it as an Unresponsive Page.

Actual behavior

There are no server logs generated or frontend logs. When opening the browser task manager, it shows the Infinite Scale Tab Task consuming a large amount of memory.
No outbound network traffic was reported from the client or inbound network traffic to the server.

Setup

Infinite Scale version 4.0.2 Docker Container running in a M5.Large AWS EC2 Instance, using AWS S3 Bucket as storage.
Using AWS ALB (Application Load Balancer) as the Reverse Proxy.

Please find the docker-compose.yml file below:

version: "3.7"

services:
  ocis:
    image: owncloud/ocis:4.0.2
    entrypoint:
      - /bin/sh
    # run ocis init to initialize a configuration file with random secrets
    # it will fail on subsequent runs, because the config file already exists
    # therefore we ignore the error and then start the ocis server
    command: ["-c", "ocis init || true; ocis server"]
    environment:
      OCIS_URL: <MY INFINITE SCALE URL>
      OCIS_LOG_LEVEL: "info"
      OCIS_LOG_COLOR: "false"
      PROXY_TLS: "false" # do not use SSL between Traefik and oCIS
      # activate s3ng storage driver
      STORAGE_USERS_DRIVER: s3ng
      STORAGE_SYSTEM_DRIVER: ocis # keep system data on ocis storage since this are only small files atm
      # s3ng specific settings
      STORAGE_USERS_S3NG_ENDPOINT: "<MY S3 ENDPOINT>"
      STORAGE_USERS_S3NG_REGION: "<MY AWS REGION>"
      STORAGE_USERS_S3NG_ACCESS_KEY: ${S3_ACCESS_KEY}
      STORAGE_USERS_S3NG_SECRET_KEY: ${S3_SECRET_KEY}
      STORAGE_USERS_S3NG_BUCKET: "<MY S3 BUCKET NAME>"
      # INSECURE: needed if oCIS / Traefik is using self generated certificates
      OCIS_INSECURE: "false"
      # basic auth (not recommended, but needed for eg. WebDav clients that do not support OpenID Connect)
      PROXY_ENABLE_BASIC_AUTH: "false"
      # admin user password
      IDM_ADMIN_PASSWORD: "admin" # this overrides the admin password from the configuration file
      # demo users
      IDM_CREATE_DEMO_USERS: "false"
    volumes:
      - ocis-config:/etc/ocis
      - ocis-data:/var/lib/ocis
    restart: always
    ports:
      - "9200:9200"

volumes:
  ocis-config:
  ocis-data:

@marciofeld marciofeld added the Type:Bug Something isn't working label Oct 15, 2023
@micbar
Copy link
Contributor

micbar commented Oct 16, 2023

@marciofeld how big is the folder?

@JammingBen Can we transfer this issue to web?

@marciofeld
Copy link
Author

@micbar At the first moment, I tried to upload an 18 GB folder with several files using the web interface. Since I realized this issue, I've been trying to test using lower-size folders.

The last one I tried out has 423,5 MB in size, with 43.192 items.

image

If I try to upload the same folder in a zip format, it works fine.

@JammingBen JammingBen transferred this issue from owncloud/ocis Oct 16, 2023
@JammingBen
Copy link
Contributor

I transferred the issue to the Web repository for investigation, though I assume it has been fixed via #9552 already. It will ship with the next version of Web.

@JammingBen JammingBen moved this to Qualification in Web Support Board Oct 16, 2023
@marciofeld
Copy link
Author

Hi @JammingBen , I started testing Infinite Scale on version 3.0.0, then upgraded it to 4.0.0, then 4.0.1, and now to 4.0.2. In all these versions, I experienced this issue.

After reading the issue #9552 , I checked that it was changed to accumulate all data before uploading. It makes sense when I experience this issue, and I believe this caused this issue, since it freezes the frontend while we can see the tab growing its memory usage on the browser task manager.

So, I believe that the change implemented on #9552 could solve other issues, but probably caused this one,

@JammingBen
Copy link
Contributor

JammingBen commented Oct 17, 2023

@marciofeld Are you running Web master separately, or the bundled version that comes with oCIS? Because the bundled one in oCIS 4.0.2 does not yet include the fix. It needs to be released first. You can also check the Web version in your browser console:

image

@marciofeld
Copy link
Author

@JammingBen I'm running the Web master bundled in the Docker image owncloud/ocis:4.0.2.
Would you have any beta Docker image that comes with that fix, so I can test?

@JammingBen
Copy link
Contributor

owncloud/ocis:latest comes with Web version 8.0.0-alpha.3 which includes the fix.

@marciofeld
Copy link
Author

Nice. I'll test it out and will let you know. Thanks @JammingBen !

@marciofeld
Copy link
Author

@JammingBen I'm copying the folder over the web interface right now. This time it didn't freeze the frontend, but took lots of minutes to start uploading.
It presented error messages with some .github subfolders and, when it started uploading files, presented some information to troubleshoot the problem.

While I was writing this post to you in a Google Chrome browser window, I was checking the Brave Browser window upload running on another screen and it suddenly stopped uploading, without finishing.

Please check the screenshot below:
image

Please check the troubleshooting information below:

X-Request-Id: 45d38aac-c4b3-42b8-a4e9-31fa36a4bd94
X-Request-Id: fbe339fd-09f5-4e82-b588-f90a6597c499
X-Request-Id: aaf7079d-a81f-4205-a9d9-ba40ee3f2c33
X-Request-Id: 8fb8ae1c-9dee-4097-a49a-290ec673256e
X-Request-Id: 9cea6299-8fa6-4cac-8421-30a3ce651183
X-Request-Id: 29a5ba06-5e81-4548-9d7e-249b1c8a58a4
X-Request-Id: fdb5c4c6-2288-44d2-ae49-68ef340089b4
X-Request-Id: 8a3d88a8-c19a-4dc2-8f93-7f7bdf36d44f
X-Request-Id: d0a68b8a-06cd-41ee-a16c-8032e76fba4b
X-Request-Id: ae320f43-6efa-434c-8210-0e72df0f4105
X-Request-Id: 47adef46-71bd-4dd6-af35-2aef9f2b9096
X-Request-Id: 0eba43ae-6362-4448-bbf3-2a2d65f5c52b
X-Request-Id: 6c9720db-3e9c-4bf1-9672-852893536934
X-Request-Id: 08d44774-4112-4727-a395-0cb06fa505aa
X-Request-Id: 78266976-30b9-4cdb-bd45-4c6a1548bb73
X-Request-Id: 88aa9cde-480b-49e0-9403-cb4938fb6ef2
X-Request-Id: 47575cee-0e3f-4cb9-b0fe-71f5ad3d95b1
X-Request-Id: 6f4700a8-ea61-4601-9551-ca423b2cdc8c
X-Request-Id: f5253197-73fd-466c-824e-3fbf6fb9230d
X-Request-Id: 9555cf99-58f2-4340-80d3-2c792a11aeea
X-Request-Id: 64bb190f-cb6e-4211-9ebd-53265489b128
X-Request-Id: a008866a-28a5-4489-b049-f88a302dacea
X-Request-Id: e0330ad3-cf4c-4351-8393-ab41c3ed178b
X-Request-Id: 5f58086d-e9c5-4c66-b32a-2dcf1eb4e83a
X-Request-Id: 7214b701-b2b9-4ed0-9f03-e49b121a0c82
X-Request-Id: 8938c690-c25c-4f80-86cb-7332aaefe4a8
X-Request-Id: e6aea3f2-7419-4c33-8591-b9940365bd9e
X-Request-Id: 2e3cb5f1-6bae-41af-b4a8-577c408e508b
X-Request-Id: 26ea8d14-4927-4a64-8768-19b22a9f4649
X-Request-Id: 8a1cad63-f254-4903-badc-1339b6ccf245
X-Request-Id: 2a0f8dcc-7a4a-4779-af3e-23ff02f061af
X-Request-Id: b5ade6e0-3e3c-43db-adfb-5eeecd1e0aa1
X-Request-Id: dbda8202-54d7-4bdd-b7a4-6a24f99e2bb2
X-Request-Id: 99551ea0-a006-4296-b9d3-938e27b0d0eb
X-Request-Id: 8a5237a0-13e4-4a3a-ad05-d490e77b71e8
X-Request-Id: 28e77d09-504c-4dd1-9f1f-ff8939cc1679
X-Request-Id: 12739e0f-fd95-4b35-a233-ba0b8ecc0297
X-Request-Id: 946d695f-de9e-4f6d-bae5-24bd46f0bc0b
X-Request-Id: 172f5916-2cad-47bb-ab06-a6bd823f15ae
X-Request-Id: 64950e79-3303-4aa7-8ffb-5b89c577449f
X-Request-Id: 16fcf31a-9b27-45a1-8e78-e679524bd635
X-Request-Id: 161ea0e5-ee5b-44ec-8916-199863710a90
X-Request-Id: 0d12156e-ff77-4224-bbc0-4a00eb6cc0cd
X-Request-Id: b9c49cff-fd5a-45a1-b689-d4815b1d277c
X-Request-Id: 95e4dd6d-1ad4-47b6-a49b-0eba217f542d
X-Request-Id: 44d6d75b-8c74-4b98-8709-2489f68a0e67
X-Request-Id: a7e6e030-5e9c-43c9-b34e-39d42e84c128
X-Request-Id: a1faa03b-9895-43b1-9ddf-bc362cfac5d3
X-Request-Id: ddbab3c9-4188-4166-b9c4-5b3e3c60f381
X-Request-Id: 38c25d7b-5d10-4bae-82f2-03a6262627dc
X-Request-Id: 99a54293-2272-4e1c-964f-73d3e1be9726
X-Request-Id: a7fa6417-d6ab-49fa-be9d-ef674f5931ce
X-Request-Id: c754438a-a561-49ff-8ed2-cddc5c818610
X-Request-Id: 73c2c66d-619e-49a3-9fa0-1af94014cb6c
X-Request-Id: 777bb327-8728-4328-bdff-c68e0dba6a4b
X-Request-Id: 606e0f75-0ca4-4225-be78-92025f7173ba
X-Request-Id: ed8ba07c-1463-4a83-8c7e-7bca5c756479
X-Request-Id: a45112b1-ba01-4cf8-a2df-1816b468a295
X-Request-Id: 98b59885-e8bc-4f1a-a2ec-b3f5c88fcce0
X-Request-Id: 9310a690-b94a-40a3-b92e-9019ed7f722e
X-Request-Id: 5d5dad28-41e5-4f5b-b68a-29c674fc3cae
X-Request-Id: 2b8123cf-25ab-4fbc-a05b-58afdba0aa8d
X-Request-Id: ad9bef7a-b33e-41da-ae93-c81f87561483
X-Request-Id: 6332ee83-726d-47b9-91f6-0483b558a7c4
X-Request-Id: 64ae11a5-c17d-4841-8033-016e4d2c5050
X-Request-Id: d488d3a5-8bae-4463-b96e-fbae7c12db36
X-Request-Id: 72b87ae2-51ba-4191-90f5-1952e902b835
X-Request-Id: 609b2f2d-1582-4964-89a9-323f0c1ef569
X-Request-Id: 0f62894b-724b-4d28-b454-ff0d334b2e64

@JammingBen
Copy link
Contributor

Thanks for checking, I'll investigate. Currently I see 2 issues:

  • What happened to those .github folders, why can't they be uploaded?
  • There is still room for more performance improvements.

Your oCIS server log should contain more information about those X-Request-Ids. Could you please have a look and post a snapshot of them here?

@marciofeld
Copy link
Author

@JammingBen , since the logs are too extensive, I filtered out the 10 first X-Request-Ids and I'll post the results out here:

ocis_1  | {"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"45d38aac-c4b3-42b8-a4e9-31fa36a4bd94","remote-addr":"<THIS_IP_ADDRESS_WAS_INTENTIONALLY_HIDDEN","method":"POST","status":401,"path":"/remote.php/dav/spaces/7f91102a-2eaf-4eb1-b6c2-521cb04ef1ab$3fe416a2-6421-454c-b257-6b26be333864/my-react-app/node_modules/postcss-attribute-case-insensitive/dist","duration":1.374144,"bytes":0,"time":"2023-10-17T12:37:19.116355277Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:31","message":"access-log"}
ocis_1  | {"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"fbe339fd-09f5-4e82-b588-f90a6597c499","remote-addr":"<THIS_IP_ADDRESS_WAS_INTENTIONALLY_HIDDEN","method":"POST","status":401,"path":"/remote.php/dav/spaces/7f91102a-2eaf-4eb1-b6c2-521cb04ef1ab$3fe416a2-6421-454c-b257-6b26be333864/my-react-app","duration":1.456289,"bytes":0,"time":"2023-10-17T12:37:19.158330926Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:31","message":"access-log"}
ocis_1  | {"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"aaf7079d-a81f-4205-a9d9-ba40ee3f2c33","remote-addr":"<THIS_IP_ADDRESS_WAS_INTENTIONALLY_HIDDEN","method":"POST","status":401,"path":"/remote.php/dav/spaces/7f91102a-2eaf-4eb1-b6c2-521cb04ef1ab$3fe416a2-6421-454c-b257-6b26be333864/my-react-app/node_modules/postcss-attribute-case-insensitive","duration":1.489817,"bytes":0,"time":"2023-10-17T12:37:19.25443721Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:31","message":"access-log"}
ocis_1  | {"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"8fb8ae1c-9dee-4097-a49a-290ec673256e","remote-addr":"<THIS_IP_ADDRESS_WAS_INTENTIONALLY_HIDDEN","method":"POST","status":401,"path":"/remote.php/dav/spaces/7f91102a-2eaf-4eb1-b6c2-521cb04ef1ab$3fe416a2-6421-454c-b257-6b26be333864/my-react-app","duration":6.614056,"bytes":0,"time":"2023-10-17T12:37:19.211037693Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:31","message":"access-log"}
ocis_1  | {"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"9cea6299-8fa6-4cac-8421-30a3ce651183","remote-addr":"<THIS_IP_ADDRESS_WAS_INTENTIONALLY_HIDDEN","method":"POST","status":401,"path":"/remote.php/dav/spaces/7f91102a-2eaf-4eb1-b6c2-521cb04ef1ab$3fe416a2-6421-454c-b257-6b26be333864/my-react-app/node_modules/postcss-attribute-case-insensitive","duration":1.454132,"bytes":0,"time":"2023-10-17T12:37:19.292716149Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:31","message":"access-log"}
ocis_1  | {"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"29a5ba06-5e81-4548-9d7e-249b1c8a58a4","remote-addr":"<THIS_IP_ADDRESS_WAS_INTENTIONALLY_HIDDEN","method":"POST","status":401,"path":"/remote.php/dav/spaces/7f91102a-2eaf-4eb1-b6c2-521cb04ef1ab$3fe416a2-6421-454c-b257-6b26be333864/my-react-app/node_modules/postcss-attribute-case-insensitive/dist","duration":1.483672,"bytes":0,"time":"2023-10-17T12:37:22.391958051Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:31","message":"access-log"}
ocis_1  | {"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"fdb5c4c6-2288-44d2-ae49-68ef340089b4","remote-addr":"<THIS_IP_ADDRESS_WAS_INTENTIONALLY_HIDDEN","method":"POST","status":401,"path":"/remote.php/dav/spaces/7f91102a-2eaf-4eb1-b6c2-521cb04ef1ab$3fe416a2-6421-454c-b257-6b26be333864/my-react-app/node_modules/postcss-attribute-case-insensitive","duration":1.469786,"bytes":0,"time":"2023-10-17T12:37:22.771590804Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:31","message":"access-log"}
ocis_1  | {"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"8a3d88a8-c19a-4dc2-8f93-7f7bdf36d44f","remote-addr":"<THIS_IP_ADDRESS_WAS_INTENTIONALLY_HIDDEN","method":"POST","status":401,"path":"/remote.php/dav/spaces/7f91102a-2eaf-4eb1-b6c2-521cb04ef1ab$3fe416a2-6421-454c-b257-6b26be333864/my-react-app/node_modules/postcss-attribute-case-insensitive/dist","duration":1.458336,"bytes":0,"time":"2023-10-17T12:37:22.72484691Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:31","message":"access-log"}
ocis_1  | {"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"d0a68b8a-06cd-41ee-a16c-8032e76fba4b","remote-addr":"<THIS_IP_ADDRESS_WAS_INTENTIONALLY_HIDDEN","method":"POST","status":401,"path":"/remote.php/dav/spaces/7f91102a-2eaf-4eb1-b6c2-521cb04ef1ab$3fe416a2-6421-454c-b257-6b26be333864/my-react-app/node_modules/postcss-attribute-case-insensitive","duration":3.886756,"bytes":0,"time":"2023-10-17T12:37:22.825913579Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:31","message":"access-log"}
ocis_1  | {"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"ae320f43-6efa-434c-8210-0e72df0f4105","remote-addr":"<THIS_IP_ADDRESS_WAS_INTENTIONALLY_HIDDEN","method":"POST","status":401,"path":"/remote.php/dav/spaces/7f91102a-2eaf-4eb1-b6c2-521cb04ef1ab$3fe416a2-6421-454c-b257-6b26be333864/my-react-app/node_modules/jest-runtime","duration":1.428626,"bytes":0,"time":"2023-10-17T12:37:22.869366022Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:31","message":"access-log"}

@JammingBen
Copy link
Contributor

#10057 speeds up performance massively when uploading a folder including many sub-folders.

Some performance bottlenecks we might still have when uploading:

@JammingBen
Copy link
Contributor

I'm closing here as the upcoming version 8.0.0 will have a massive performance boost when uploading a folder that includes many sub-folders.

Feel free to re-open or create a new issue if the problem persists.

@github-project-automation github-project-automation bot moved this from Qualification to Done in Infinite Scale Team Board Dec 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type:Bug Something isn't working
Projects
Archived in project
Status: Qualification
Development

No branches or pull requests

4 participants