jpmorganchase / jupyter-fs

A filesystem-like contents manager for multiple backends in Jupyter
Apache License 2.0
200 stars 36 forks source link

Empty pane even after refresh #187

Closed grallewellyn closed 10 months ago

grallewellyn commented 10 months ago

Describe the bug I specify my documents in the settings editor on jupyterlab or in my jupyter_server_config.json, and the file tab shows up, but no files are shown. My jupyter_server_config.json is configured as specified in the README

consoleErrorsJupyterfs_2

Console contains errors shown on right (seem a little similar to patched issue #129) and terminal contains error

File "/Users/xxx/anaconda3/envs/jupyterfs361_031/lib/python3.10/site-packages/tornado/web.py", line 1786, in _execute
        result = await result
      File "/Users/xxx/anaconda3/envs/jupyterfs361_031/lib/python3.10/site-packages/jupyter_server/services/contents/handlers.py", line 150, in get
        self.contents_manager.get(
      File "/Users/xxx/anaconda3/envs/jupyterfs361_031/lib/python3.10/site-packages/jupyterfs/pathutils.py", line 87, in _wrapper
        result = getattr(mgr, method_name)(mgr_path, *args, **kwargs)
    TypeError: FSManager.get() got an unexpected keyword argument 'md5'

To Reproduce Steps to reproduce the behavior:

  1. Create a new conda environment
  2. Install jupyterlab 3.6.1 with conda and jupyter-fs 0.3.1 or jupyterlab 4.0.9 and jupyter-fs 0.4.1
  3. Launch jupyterlab
  4. Add to resources to settings editor jupyter-fs
    "resources": [
    {
        "name": "mytest",
        "url": "osfs:///Users/xxx/documents"
    },

    and save

  5. File tab appears, but no files are appearing

Note I tried all these versions: jupyterlab 3.0.0, 3.6.1, 3.6.6, 4.0.0, or 4.0.9 with conda and then jupyter-fs 0.4.1, 0.4.0, 0.3.1, 0.3.0, 0.0.5 with pip I also tried the approach with a dockerfile in #129 and the approach in #144 but those didn't work Another console error I saw with different versions was

jlab_core.js?v=...:1 Uncaught (in promise) Error: Unhandled error
    at i.create (jlab_core.js?v=...:1:1264201)
    at async m.get (jlab_core.js?v=...:1:1209115)
    at async E.get (contents_proxy.js:15:30)
    at async G.nodeInit (treefinder.js:146:15)

Expected behavior See list of files in my documents when I switch to that file browser tab

Desktop:

timkpaine commented 10 months ago

Can you use jupyterlab==4.0.9 and jupyter-fs==0.4.1, older versions may not be fully compatible and we're unlikely to back port any fixes at this stage. If you see the error, please provide the first JS console error that occurs (that looks relevant) and also the relevant server logs, you've given a few here but would be good to have more.

Its also useful to know your combination of config files, for me I use:

~/.jupyter/server_config.json

{
  "ServerApp": {
    "contents_manager_class": "jupyterfs.metamanager.MetaManager"
  }
}

~/.jupyter/jupyter_server_config.d/jupyterfs.json

{
  "ServerApp": {
    "jpserver_extensions": {
      "jupyterfs.extension": true
    }
  }
}

Its also useful to see the output of: jupyter lab extension list jupyter serverextension list

grallewellyn commented 10 months ago

If I use jupyterlab 4.0.9 and jupyter-fs 0.4.1, below are my console logs after launching, adding my documents in settings editor, then clicking on the file browser that appears (these console logs repeat a couple times)

jupyterlab4_redacted2

But then I tested a new conda environment with the same versions (jupyterlab 4.0.9 and jupyter-fs 0.4.1) and jupyter-fs started working and showing me folder contents, I am not sure what changed I was once able to get a conda environment with jupyterlab 4.0.9 and jupyter-fs 0.4.1 working by downgrading to jupyter_server 2.10.1

I don't see any other relevant server logs

I was using the config file jupyter_server_config.json with this configuration:

{
  "ServerApp": {
    "contents_manager_class": "jupyterfs.metamanager.MetaManager",
    "jpserver_extensions": {
      "jupyterfs.extension": true
    }
  }
}

But when I try your configuration, I get a Failed to refresh widgets! console error and no file browser tab appears

jupyter lab extension list gives

Config dir: /Users/xxx/.jupyter
    jupyterfs.extension enabled
    - Validating jupyterfs.extension...
Package jupyterfs.extension took 0.0632s to import
      jupyterfs.extension 0.4.1 OK

Config dir: /Users/xxx/anaconda3/envs/jupyterfs409_041/etc/jupyter
    jupyter_lsp enabled
    - Validating jupyter_lsp...
Package jupyter_lsp took 0.0112s to import
A `_jupyter_server_extension_points` function was not found in jupyter_lsp. Instead, a `_jupyter_server_extension_paths` function was found and will be used for now. This function name will be deprecated in future releases of Jupyter Server.
      jupyter_lsp 2.2.0 OK
    jupyter_server_terminals enabled
    - Validating jupyter_server_terminals...
Package jupyter_server_terminals took 0.0047s to import
      jupyter_server_terminals 0.4.4 OK
    jupyterfs.extension enabled
    - Validating jupyterfs.extension...
Package jupyterfs.extension took 0.0000s to import
      jupyterfs.extension 0.4.1 OK
    jupyterlab enabled
    - Validating jupyterlab...
Package jupyterlab took 0.0000s to import
      jupyterlab 4.0.9 OK
    notebook_shim enabled
    - Validating notebook_shim...
Package notebook_shim took 0.0000s to import
A `_jupyter_server_extension_points` function was not found in notebook_shim. Instead, a `_jupyter_server_extension_paths` function was found and will be used for now. This function name will be deprecated in future releases of Jupyter Server.
      notebook_shim  OK

Config dir: /usr/local/etc/jupyter

jupyter server extension list gives

Config dir: /Users/xxx/.jupyter
    jupyterfs.extension enabled
    - Validating jupyterfs.extension...
Package jupyterfs.extension took 0.0601s to import
      jupyterfs.extension 0.4.1 OK

Config dir: /Users/xxx/anaconda3/envs/jupyterfs409_041/etc/jupyter
    jupyter_lsp enabled
    - Validating jupyter_lsp...
Package jupyter_lsp took 0.0099s to import
A `_jupyter_server_extension_points` function was not found in jupyter_lsp. Instead, a `_jupyter_server_extension_paths` function was found and will be used for now. This function name will be deprecated in future releases of Jupyter Server.
      jupyter_lsp 2.2.0 OK
    jupyter_server_terminals enabled
    - Validating jupyter_server_terminals...
Package jupyter_server_terminals took 0.0047s to import
      jupyter_server_terminals 0.4.4 OK
    jupyterfs.extension enabled
    - Validating jupyterfs.extension...
Package jupyterfs.extension took 0.0000s to import
      jupyterfs.extension 0.4.1 OK
    jupyterlab enabled
    - Validating jupyterlab...
Package jupyterlab took 0.0572s to import
      jupyterlab 4.0.9 OK
    notebook_shim enabled
    - Validating notebook_shim...
Package notebook_shim took 0.0000s to import
A `_jupyter_server_extension_points` function was not found in notebook_shim. Instead, a `_jupyter_server_extension_paths` function was found and will be used for now. This function name will be deprecated in future releases of Jupyter Server.
      notebook_shim  OK

Config dir: /usr/local/etc/jupyter

Even though I can sometimes get this working with jupyterlab 4.0.9, our project isn't ready to update to jupyterlab 4 yet so we would ideally get jupyter-fs 0.4.1 or 0.3.1 working with jupyterlab 3.6

timkpaine commented 10 months ago

Ok closing this issue as it seems to work as expected, can discuss jlab 3 support in #188