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

Lazily calculate signed URLs for menu items #10329

Closed
cyberduck opened this issue May 20, 2018 · 2 comments · Fixed by #14221
Closed

Lazily calculate signed URLs for menu items #10329

cyberduck opened this issue May 20, 2018 · 2 comments · Fixed by #14221
Assignees
Labels
azure Azure Protocol Implementation enhancement interface User Interface openstack OpenStack Swift Protocol Implementation s3 AWS S3 Protocol Implementation
Milestone

Comments

@cyberduck
Copy link
Collaborator

d54b6f7 created the issue

Current Behavior

Copy URL shows the URL text for each and every file selected. If there are too many files selected, this could freeze, hang or crash Cyberduck. To recover, I have to use Task Manager to kill Cyberduck process and run the application again.

-Expected Behavior*

Copy URL should show the URL text for the first file only. Even if there are many files selected, the menu should appear fast and not freeze application.

-Note:* This may appear related to the Amazon S3 bucket's special "Pre-signed URL" which could take a long time to generate for multiple files, especially with 3 different versions. Suggest it to be generated for first file only, and when the option to copy it is selected, then use an async progress dialog to generate for all selected files and copy to clipboard.

There could also be an option to show generic fixed fake examples in the menu, instead of generating the real examples from the selected files. This will ensure the menu appears instantly, and the real URLs need only be generated for the selected format after the selection was made.

@cyberduck
Copy link
Collaborator Author

66ea58d commented

Also occurring on other platforms (Mac OS X, Linux) and I can confirm it is on account of pre-signed URL generation from S3.

@gfody
Copy link

gfody commented Feb 2, 2023

I encountered this today.
Cyberduck version 8.5.5 (39213) from the App store: WindowsApps\iterate.37637C3DE32E5_8.5.5.0_x64__gr99yradmgg3r\Cyberduck.exe
Windows 10 Enterprise version 21H1 (19043.2364)

repro:

  1. I highlighted about 700 items in an S3 bucket intending to right-click-delete (I know I could've just pressed DEL but I was already mousing)
  2. as I slowly moved my cursor down the menu items (towards Delete which is nearish the bottom for some reason), Cyberduck hung at "Copy URL" (UI thread locked, not pumping window messages, "this process is not responding")
  3. I left it and switched to different app to work on something else for about 5 minutes (my system did not seem to be impacted by whatever Cyberduck was doing besides the mild inconvenience of the hung context menu being always-on-top of everything)
  4. Cyberduck recovered and so I attempted to right-click-delete my files again, this time being careful to avoid the "Copy URL" item when I accidentally moused over it again
  5. I switched away again but this time in the other app I noticed that context menus would not render until I hovered over each item as if I was having to manually trigger their paint handlers
  6. I noted the following metrics for the cyberduck process in taskmgr prior to killing it: Memory (active private working set): 158mb, Handles: 1800, Threads: 30, GDI objects: 200 (none of these seem particularly onerous to me compared to the other stuff running, CPU usage negligible)
  7. gdi menus would not render properly until restarting explorer
  8. metro menus would not render properly until I logged out and back in

The following versions might not be relevant but it wouldn't surprise me if either or both were required to reproduce my experience with high fidelity:

  • Intel ARC770 graphics driver version 31.0.101.4032 (3840x2160x10-bit@120.0Hz, RGB, HDR)
  • MacType 1.2021.621.2 (registry mode)

@dkocher dkocher added s3 AWS S3 Protocol Implementation azure Azure Protocol Implementation openstack OpenStack Swift Protocol Implementation labels Feb 10, 2023
@dkocher dkocher linked a pull request Feb 10, 2023 that will close this issue
@dkocher dkocher added this to the 8.5.6 milestone Feb 10, 2023
dkocher added a commit that referenced this issue Feb 13, 2023
ylangisc added a commit that referenced this issue Feb 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
azure Azure Protocol Implementation enhancement interface User Interface openstack OpenStack Swift Protocol Implementation s3 AWS S3 Protocol Implementation
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants