Skip to content

Opening file from explorer causes trouble when used behind a reverse proxy (2.1698 release) #1294

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

Closed
lukasmasuch opened this issue Jan 24, 2020 · 12 comments
Assignees
Labels
waiting-for-info Waiting for more information from submitter

Comments

@lukasmasuch
Copy link

lukasmasuch commented Jan 24, 2020

  • code-server version: 2.1698-vsc1.41.1
  • OS Version: Ubuntu 18.04
  • Extension: vscode-python(2020.1.58038)

Description

If the code server is opened without providing a folder via URL parameter, everything is working fine. However, in case the folder parameter is used and the file is opened via the Explorer, the python extension doesn't seem to be able to fully interact with the (python-) file (underlines are missing, formatter is not working...):

Screenshot at Jan 24 13-50-59

However, if the file is opened via File -> Open, a new tab is created and everything is working fine:

Screenshot at Jan 24 13-51-22

Based on the tab labels, it seems like that opening files via File -> Open is using absolute paths while the explorer uses a relative path (which is causing problems with the python extension). This problem does not happen with the older code-server versions (e.g. 2.1692-vsc1.39.2). I also looked into the logs, but wasn't able to find anything suspicious.

To summarize:

  • Older code-server version -> working
  • Opening code-server without folder parameter -> working
  • Opening code-server with folder parameter:
    • Open python file with File -> Open -> working
    • Open python file from explorer -> not working
@nhooyr nhooyr added the bug Something isn't working label Jan 27, 2020
@nhooyr
Copy link
Contributor

nhooyr commented Jan 27, 2020

Will test and get back to you soon.

@nhooyr nhooyr self-assigned this Jan 27, 2020
@nhooyr
Copy link
Contributor

nhooyr commented Feb 3, 2020

Not sure what's going on here. I get no underline no matter what. Are there any errors in the console?

@nhooyr nhooyr added waiting-for-info Waiting for more information from submitter and removed needs-investigation bug Something isn't working labels Feb 3, 2020
@lukasmasuch
Copy link
Author

lukasmasuch commented Feb 3, 2020

Thanks for investigating! The underlines are warning/errors from python lintings and that can depend on the python extension settings within VS code. I think the better way of debugging or reproducing this issue is by checking if opening the file via the explorer (file browser) and, subsequently, opening the same file via File -> Open will produce two tabs with the same content (issue) or only one (how it should be).

I also did a bit more investigation and discovered that the issue actually has nothing specific to do with the python extension itself and will, most likely, cause problems with other functionalities and extensions as well. Also, the issue only appears when the VS Code instance is accessed from a base URL (e.g. via a reverse proxy).

Here is an update on the setups I have tested that are working, and the setup which is causing trouble:

  • Older code-server version -> working
  • Opening code server without a URL path (e.g. via reverse proxy) -> working
  • Opening code-server without folder parameter -> working
  • Opening code-server with a base path and folder parameter:
    • Open a file with File -> Open -> working
    • Open a file from explorer -> not working (File opens in a new tab and causes trouble with functionalities that work on the file, e.g. linting...). Here are some errors logged in the Log (Window) section:

image

image

image

@lukasmasuch lukasmasuch changed the title Python extension not working when opening file from explorer (2.1698 release) Opening file from explorer causes trouble when used behind a reverse proxy (2.1698 release) Feb 3, 2020
@lukasmasuch
Copy link
Author

I also renamed the issue since I believe that it is much more related to the usage of code-server behind a reverse proxy, and not explicitly related to the python extension.

@nhooyr
Copy link
Contributor

nhooyr commented Feb 3, 2020

@code-asher

@orditeck
Copy link

orditeck commented Feb 9, 2020

I have the same issue. I also use a reverse proxy.
Without the reverse proxy (Caddy), it works.

2.1692-vsc1.39.2 works with the reverse proxy though.

@orditeck
Copy link

orditeck commented Feb 9, 2020

Hmm...

I've been doing some test.
It does work using my reverse proxy.

It's when using the ?folder= argument in URL that it doesn't work, reverse proxy or not. @lukasmasuch, could you check it out?

My guess is that it has something to do with the workspaces. I've been experiencing something else that I meant to look into: with 2.1692 (vsc1.39.2), ?folder= always worked. Since 2.1698 (vsc1.41.1), sometimes the ?folder= argument isn't considered at all, it just loads the last opened project no matter what.

@lukasmasuch, try this when your bug happens: open the File Menu, select Open, and open the folder of the project you want to work on. It should fix your issue.

@code-asher
Copy link
Member

code-asher commented Feb 10, 2020 via email

@lukasmasuch
Copy link
Author

lukasmasuch commented Feb 11, 2020

@orditeck @code-asher Thanks for looking into this issue! I put some more time into figuring out an easy way to replicate the issue. And it actually seems like a general problem within code-server and not related to the reverse proxy:

  1. Start code-server via the latest Docker image:
docker run -it -p 8123:8080 codercom/code-server --auth none /home/coder/project
  1. Visit: http://localhost:8123/?folder=/home/coder/project
  2. Create a new file within the opened project/folder inside VS Code, e.g.: Explorer -> New File -> test.txt -> at that point you should have one open editor tab in VS Code with the created file.
    image
  3. Open the same file via the menu: Menu -> File -> Open -> test.txt -> at that point another editor tab with the same file should be open:
    image
    image
    And this is the issue. The expected behavior would be that no new editor tab is opened for the same (already opened) file. Having two tabs with the same file causes some errors within the VS Code logs. Also, the tab opened via the explorer (the tab which was opened in step 3) does seem to cause various problems with vs-code extensions (e.g., python -> formatting, linting...). As stated above, this only happens when the ?folder= parameter is used. Older versions also do not seem to have this issue.

@code-asher
Copy link
Member

code-asher commented Feb 12, 2020 via email

@code-asher
Copy link
Member

It's apparently related to #1351. So http://localhost:8080/?folder=vscode-remote%3A%2F%2Flocalhost%3A8080%2Fhome%2Fcoder%2Fproject works but http://localhost:8008/?folder=/home/coder/project doesn't. That explains why I couldn't replicate earlier since I was using the folder picker which uses the former.

So I'll be looking through how they use it and try making it work for both the new format and the old format.

@lukasmasuch
Copy link
Author

@code-asher Thanks for fixing the issue 👍I really appreciate this work! I will test it once a binary is available.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
waiting-for-info Waiting for more information from submitter
Projects
None yet
Development

No branches or pull requests

4 participants