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

One frame running phase for every workspace start #8990

Closed
mustard-mh opened this issue Mar 29, 2022 · 8 comments · Fixed by #9004
Closed

One frame running phase for every workspace start #8990

mustard-mh opened this issue Mar 29, 2022 · 8 comments · Fixed by #9004
Assignees
Labels

Comments

@mustard-mh
Copy link
Contributor

mustard-mh commented Mar 29, 2022

Bug description

One frame running phase for every workspace start

This is part because of the time diff between contentAvailable and ideReady

This PR #8313 will wait until contentAvailable to get .gitpod.yml file to parse extensions and download extensions via URL first, and then start IDE

So ideReady will always be after contentAvailable, but after contentAvailable, workspace phase turns to Running.

We can verify it here https://gitpod.io/#github.com/mustard-mh/test/tree/hw/large-file which will download some large files

vscode:
  extensions:
    - http://ipv4.download.thinkbroadband.com/1GB.zip
    - http://212.183.159.230/1GB.zip
    - https://speed.hetzner.de/10GB.bin
Image
iShot2022-03-29 15 50 04

Steps to reproduce

Start a workspace

Anything else?

No response

@mustard-mh mustard-mh self-assigned this Mar 29, 2022
@mustard-mh mustard-mh moved this to Scheduled in 🚀 IDE Team Mar 29, 2022
@mustard-mh
Copy link
Contributor Author

mustard-mh commented Mar 29, 2022

Some options:

  1. Add another phase like Waiting IDE
  2. Change time to trigger Running phase
  3. Change the behavior of code-helper to Plan A [ide] use code flag to install extensions #8313 (comment)
    This will still have running phase, but not stuck in here to wait until extensions are downloaded. Will behavior like we used to be

Any suggestions?

cc @akosyakov @jeanp413 @JohannesLandgraf

@akosyakov
Copy link
Member

@mustard-mh I believe there should be already Opening Workspace... phase in the start page code. Could you check why don't we display it in such case?

Change the behavior of code-helper to Plan A #8313 (comment)
This will still have running phase, but not stuck in here to wait until extensions are downloaded. Will behavior like we used to be

I don't think it is relevant the supervisor frontend is always wait till both IDE and content are ready to display.

@akosyakov akosyakov added the priority: highest (user impact) Directly user impacting label Mar 29, 2022
@mustard-mh
Copy link
Contributor Author

mustard-mh commented Mar 29, 2022

I don't think it is relevant the supervisor frontend is always wait till both IDE and content are ready to display.

@akosyakov We can verify it here https://gitpod.io/#github.com/mustard-mh/test/tree/hw/large-file which will download some large files

If we start code first, then IDE is ready first(user can access workspace now), and then wait contentAvailabel and install extensions

@akosyakov
Copy link
Member

akosyakov commented Mar 29, 2022

We should have proper loading screen when something delays IDE startup (and we used to have it), regardless of optimization to startup of concrete IDE.

To decide whether we need to optimize we should have a look at diff between content and IDE readiness in analytics. If there is no significant delay in collected data then it does not make sense to invest time in optimization now.

@mustard-mh
Copy link
Contributor Author

@akosyakov Opening Workspace... It was removed by this PR #8125. Revert this works, it'll display this if IDE ready stuck in something

@mustard-mh mustard-mh moved this from Scheduled to In Review in 🚀 IDE Team Mar 29, 2022
@akosyakov
Copy link
Member

@mustard-mh did you investigate why it was changed like that and what will be broken instead by reverting?

@geropl
Copy link
Member

geropl commented Mar 30, 2022

What could help is a special case here: https://github.com/gitpod-io/gitpod/pull/8125/files#diff-d897e36a784992a6a4d3b76c09147a96375add6c80bd14dca49657dcff06b3a7R396-R417

So far we only separate between "dontAutostart" and everything else. But "dontAutostart" is always true when runsInFrame!

The problem is that this code serves multiple purposes:

  1. Display state on (fresh) start (in-frame and on dashboard!)
  2. Display state on restart, and offer button to open IDE (in-frame only)

We need to find a way distinguish the former two cases from the latter.

@mustard-mh
Copy link
Contributor Author

Have no idea why we need to check runsInFrame, isn't it always running in an iframe?

based on this, I revert it. cc @akosyakov

But seems we need to display Open Workspace with URL that contains not_found, so I changed this PR to add new props notFound

PS. @geropl not_found have bug too, #8986, it's running but users need to click Open Workspace to make it works

@mustard-mh mustard-mh moved this from In Review to Awaiting Deployment in 🚀 IDE Team Apr 7, 2022
@mustard-mh mustard-mh moved this from Awaiting Deployment to Done in 🚀 IDE Team Apr 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants