Skip to content

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

Closed

Description

@lukasmasuch
  • 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

Activity

  1. nhooyr commented on Jan 27, 2020

    @nhooyr
    Contributor

    Will test and get back to you soon.

  2. self-assigned this
    on Jan 27, 2020
  3. nhooyr commented on Feb 3, 2020

    @nhooyr
    Contributor

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

  4. added
    waiting-for-infoWaiting for more information from submitter
    and removed
    bugSomething isn't working
    on Feb 3, 2020
  5. lukasmasuch commented on Feb 3, 2020

    @lukasmasuch
    Author

    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

  6. 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)[/+] on Feb 3, 2020
  7. lukasmasuch commented on Feb 3, 2020

    @lukasmasuch
    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.

  8. nhooyr commented on Feb 3, 2020

    @nhooyr
    Contributor
  9. orditeck commented on Feb 9, 2020

    @orditeck

    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.

  10. orditeck commented on Feb 9, 2020

    @orditeck

    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.

  11. code-asher commented on Feb 10, 2020

    @code-asher
    Member
  12. lukasmasuch commented on Feb 11, 2020

    @lukasmasuch
    Author

    @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.
  13. code-asher commented on Feb 12, 2020

    @code-asher
    Member
  14. code-asher commented on Feb 12, 2020

    @code-asher
    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.

  15. lukasmasuch commented on Feb 12, 2020

    @lukasmasuch
    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

Metadata

Metadata

Assignees

Labels

waiting-for-infoWaiting for more information from submitter

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions