jupyter-xeus / xeus-octave

Jupyter kernel for GNU Octave
https://xeus-octave.readthedocs.io/
GNU General Public License v3.0
57 stars 10 forks source link

problem with launching on binder (mybinder.org) #104

Closed skotssd closed 1 year ago

skotssd commented 1 year ago

Description

Thank you for the xeus-octave work. I am a chemist, not a computer scientist, so having "smart" people work on these free tools (for my education and research) is wonderful. Much appreciated.

I have used xeus-octave since January 2023 for teaching in my class. I host my stuff on github and use mybinder.org to generate links for the students to access. There have been no problems .. until I made some changes and then uploaded to github and then of course the image on docker was updated. Now ... it fails to connect to the xoctave kernel. it tries and then says no kernel.

I did a git clone and took the .binder folder from this repository and uploaded it as a "fresh machine" to mybinder. Same error (no kernel after trying to connect). The binder image provided here works still, but of course that is running an image generated some time ago and hosted on mybinder.org.

For comparision, the local version of xeus-octave on my computer works fine and runs all the local repo files of what I push to github. I made a conda environment to put xeus-octave in along with jupyter. So I use jupyter lab on my machine with xoctave kernel no problem. I made that environment back in January and have not upgraded anything since. I don't want to upgrade in fear that something will break.

What I Did


I thought maybe the kernel update was the problem ... I see it was updated 4 days ago.  So I downgraded to 0.0.8 but it did not resolvet the issue.```
skotssd commented 1 year ago

As a follow up .... I just made a fresh conda environment for xeus-octave. This new environment has the same issues the mybinder.org instance! I am using arch linux and not debian. I do not know if this information is helpful for troubleshooting or not.

thanks. Scott

rapgenic commented 1 year ago

Hi @skotssd,

Thank you for your bug report! I have verified what you have noticed, and it seems a problem with the generation or the conda package after the latest fix.

I'm investigating what happened, I'll post here when I have more information

skotssd commented 1 year ago

Thank you @rapgenic !!! VERY much appreciated.

rapgenic commented 1 year ago

@skotssd I have rebuilt the packages, and they work for me now.

Could you try again in binder/a new environment?

skotssd commented 1 year ago

It worked in a new local environment!

but does not work on mybinder.org. Same thing as before, no kernel.

But maybe mybinder takes awhile to "catch up" ? To the changes you posted? I will try again shortly and see if I get a better result.

thank you so much @rapgenic . Very much appreciated.

Scott

@skotssd I have rebuilt the packages, and they work for me now.

Could you try again in binder/a new environment?

rapgenic commented 1 year ago

Same thing as before, no kernel.

Could you try posting the content of the ~/.jupyter-server-log.txt file? (You can open a terminal inside jupyterlab from the top menu File > New > Terminal and type cat ~/.jupyter-server-log.txt).

But maybe mybinder takes awhile to "catch up" ? To the changes you posted? I will try again shortly and see if I get a better result.

Maybe try adding a blank line at the end of the environment.yml file, to force binder to recreate the container, if it is a caching problem, this could solve it

skotssd commented 1 year ago

thank you @rapgenic . I added the extra line at the end of environment.yml. Did not make a difference. Mybinder still does not work. Error is still "no kernel".

so I followed your instructions to see the jupyter-server-log. I will paste that output here. I hope you can see a clue. thank you for your efforts in this. VERY much appreciated.

jovyan@jupyter-skotssd-2dgeochemicalscripts-2d1ddf3tcz:~$ cat ~/.jupyter-server-log.txt
Launching jupyter-lab
[I 2023-03-19 20:34:32.174 ServerApp] jupyter_offlinenotebook | extension was successfully linked.
[I 2023-03-19 20:34:32.174 ServerApp] jupyter_resource_usage | extension was successfully linked.
[W 2023-03-19 20:34:32.177 LabApp] 'base_url' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
[W 2023-03-19 20:34:32.177 LabApp] 'token' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
[W 2023-03-19 20:34:32.177 LabApp] 'trust_xheaders' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
[W 2023-03-19 20:34:32.177 LabApp] 'allow_origin' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
[W 2023-03-19 20:34:32.177 LabApp] 'allow_origin_pat' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
[I 2023-03-19 20:34:32.181 ServerApp] jupyterlab | extension was successfully linked.
[W 2023-03-19 20:34:32.184 NotebookApp] 'extra_template_paths' was found in both NotebookApp and ServerApp. This is likely a recent change. This config will only be set in NotebookApp. Please check if you should also config these traits in ServerApp for your purpose.
[W 2023-03-19 20:34:32.184 NotebookApp] 'jinja_template_vars' was found in both NotebookApp and ServerApp. This is likely a recent change. This config will only be set in NotebookApp. Please check if you should also config these traits in ServerApp for your purpose.
[W 2023-03-19 20:34:32.184 NotebookApp] 'allow_origin' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
[W 2023-03-19 20:34:32.184 NotebookApp] 'shutdown_no_activity_timeout' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
[W 2023-03-19 20:34:32.184 NotebookApp] 'tornado_settings' has moved from NotebookApp to ServerApp. This config will be passed to ServerApp. Be sure to update your config before our next release.
[I 2023-03-19 20:34:32.188 ServerApp] nbclassic | extension was successfully linked.
[I 2023-03-19 20:34:32.189 ServerApp] Writing Jupyter server cookie secret to /home/jovyan/.local/share/jupyter/runtime/jupyter_cookie_secret
[I 2023-03-19 20:34:32.785 ServerApp] nteract_on_jupyter | extension was found and enabled by notebook_shim. Consider moving the extension to Jupyter Server's extension paths.
[I 2023-03-19 20:34:32.785 ServerApp] nteract_on_jupyter | extension was successfully linked.
[I 2023-03-19 20:34:32.786 ServerApp] notebook_shim | extension was successfully linked.
[I 2023-03-19 20:34:32.828 ServerApp] notebook_shim | extension was successfully loaded.
[I 2023-03-19 20:34:32.828 ServerApp] jupyter_offlinenotebook | extension was successfully loaded.
[I 2023-03-19 20:34:32.829 ServerApp] jupyter_resource_usage | extension was successfully loaded.
[I 2023-03-19 20:34:32.830 LabApp] JupyterLab extension loaded from /srv/conda/envs/notebook/lib/python3.10/site-packages/jupyterlab
[I 2023-03-19 20:34:32.830 LabApp] JupyterLab application directory is /srv/conda/envs/notebook/share/jupyter/lab
[I 2023-03-19 20:34:32.835 ServerApp] jupyterlab | extension was successfully loaded.
[I 2023-03-19 20:34:32.845 ServerApp] nbclassic | extension was successfully loaded.
[I 2023-03-19 20:34:32.845 ServerApp] nteract extension loaded from /srv/conda/envs/notebook/lib/python3.10/site-packages/nteract_on_jupyter
[I 2023-03-19 20:34:32.847 ServerApp] nteract_on_jupyter | extension was successfully loaded.
[I 2023-03-19 20:34:32.847 ServerApp] Will shut down after 600 seconds with no kernels or terminals.
[I 2023-03-19 20:34:32.848 ServerApp] Serving notebooks from local directory: /home/jovyan
[I 2023-03-19 20:34:32.848 ServerApp] Jupyter Server 1.23.5 is running at:
[I 2023-03-19 20:34:32.848 ServerApp] http://jupyter-skotssd-2dgeochemicalscripts-2d1ddf3tcz:8888/user/skotssd-geochemicalscripts-1ddf3tcz/lab?token=...
[I 2023-03-19 20:34:32.848 ServerApp]  or http://127.0.0.1:8888/user/skotssd-geochemicalscripts-1ddf3tcz/lab?token=...
[I 2023-03-19 20:34:32.848 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 2023-03-19 20:34:32.872 ServerApp] No web browser found: could not locate runnable browser.
[I 2023-03-19 20:34:33.748 ServerApp] 302 GET /user/skotssd-geochemicalscripts-1ddf3tcz/ (10.0.5.33) 0.69ms
[I 2023-03-19 20:34:33.984 ServerApp] 302 GET /user/skotssd-geochemicalscripts-1ddf3tcz/?token=TvlqIhrFSEK3zPZEgr7Cag (99.253.78.122) 0.78ms
[I 2023-03-19 20:34:37.696 LabApp] Build is up to date
[I 2023-03-19 20:34:42.374 ServerApp] Writing notebook-signing key to /home/jovyan/.local/share/jupyter/notebook_secret
[W 2023-03-19 20:34:42.377 ServerApp] Notebook FEEM/generateFEEMplots.ipynb is not trusted
[I 2023-03-19 20:34:42.909 ServerApp] Kernel started: 0320d59e-73b0-41a3-b13f-66a0560b9575
[I 2023-03-19 20:34:42.909 ServerApp] Culling kernels with idle durations > 600 seconds at 60 second intervals ...
[I 2023-03-19 20:34:42.909 ServerApp] Culling kernels even with connected clients
/srv/conda/envs/notebook/bin/xoctave: symbol lookup error: /srv/conda/envs/notebook/bin/../lib/libxeus-zmq.so.1: undefined symbol: _ZN4xeus12xpub_messageC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8nlohmann10basic_jsonISt3mapSt6vectorS6_blmdSaNS9_14adl_serializerESC_IhSaIhEEEESG_SG_SG_SC_ISC_IcS5_ESaISH_EE
[W 2023-03-19 20:34:44.132 ServerApp] Could not destroy zmq context for <jupyter_client.asynchronous.client.AsyncKernelClient object at 0x7fdc68e2fdc0>
[I 2023-03-19 20:34:45.897 ServerApp] AsyncIOLoopKernelRestarter: restarting kernel (1/5), new random ports
/srv/conda/envs/notebook/bin/xoctave: symbol lookup error: /srv/conda/envs/notebook/bin/../lib/libxeus-zmq.so.1: undefined symbol: _ZN4xeus12xpub_messageC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8nlohmann10basic_jsonISt3mapSt6vectorS6_blmdSaNS9_14adl_serializerESC_IhSaIhEEEESG_SG_SG_SC_ISC_IcS5_ESaISH_EE
[I 2023-03-19 20:34:48.911 ServerApp] AsyncIOLoopKernelRestarter: restarting kernel (2/5), new random ports
/srv/conda/envs/notebook/bin/xoctave: symbol lookup error: /srv/conda/envs/notebook/bin/../lib/libxeus-zmq.so.1: undefined symbol: _ZN4xeus12xpub_messageC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8nlohmann10basic_jsonISt3mapSt6vectorS6_blmdSaNS9_14adl_serializerESC_IhSaIhEEEESG_SG_SG_SC_ISC_IcS5_ESaISH_EE
[I 2023-03-19 20:34:51.925 ServerApp] AsyncIOLoopKernelRestarter: restarting kernel (3/5), new random ports
/srv/conda/envs/notebook/bin/xoctave: symbol lookup error: /srv/conda/envs/notebook/bin/../lib/libxeus-zmq.so.1: undefined symbol: _ZN4xeus12xpub_messageC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8nlohmann10basic_jsonISt3mapSt6vectorS6_blmdSaNS9_14adl_serializerESC_IhSaIhEEEESG_SG_SG_SC_ISC_IcS5_ESaISH_EE
[I 2023-03-19 20:34:54.938 ServerApp] AsyncIOLoopKernelRestarter: restarting kernel (4/5), new random ports
/srv/conda/envs/notebook/bin/xoctave: symbol lookup error: /srv/conda/envs/notebook/bin/../lib/libxeus-zmq.so.1: undefined symbol: _ZN4xeus12xpub_messageC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8nlohmann10basic_jsonISt3mapSt6vectorS6_blmdSaNS9_14adl_serializerESC_IhSaIhEEEESG_SG_SG_SC_ISC_IcS5_ESaISH_EE
[I 2023-03-19 20:34:57.953 ServerApp] AsyncIOLoopKernelRestarter: restarting kernel (5/5), new random ports
/srv/conda/envs/notebook/bin/xoctave: symbol lookup error: /srv/conda/envs/notebook/bin/../lib/libxeus-zmq.so.1: undefined symbol: _ZN4xeus12xpub_messageC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8nlohmann10basic_jsonISt3mapSt6vectorS6_blmdSaNS9_14adl_serializerESC_IhSaIhEEEESG_SG_SG_SC_ISC_IcS5_ESaISH_EE
[W 2023-03-19 20:35:00.968 ServerApp] AsyncIOLoopKernelRestarter: restart failed
[W 2023-03-19 20:35:00.968 ServerApp] Kernel 0320d59e-73b0-41a3-b13f-66a0560b9575 died, removing from map.
[I 2023-03-19 20:35:18.561 ServerApp] New terminal with automatic name: 1
jovyan@jupyter-skotssd-2dgeochemicalscripts-2d1ddf3tcz:~$ 
rapgenic commented 1 year ago

/srv/conda/envs/notebook/bin/xoctave: symbol lookup error: /srv/conda/envs/notebook/bin/../lib/libxeus-zmq.so.1: undefined symbol: _ZN4xeus12xpub_messageC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN8nlohmann10basic_jsonISt3mapSt6vectorS6_blmdSaNS9_14adl_serializerESC_IhSaIhEEEESG_SG_SG_SC_ISC_IcS5_ESaISH_EE

This is the same error I verified with the previous version and supposedly fixed.

Please run in the terminal the command conda list xeus-octave and send me the output.

skotssd commented 1 year ago

thank you. here is the out put ....

jovyan@jupyter-skotssd-2dgeochemicalscripts-2dcx9otixj:~$ conda list xeus-octave 
packages in environment at /srv/conda/envs/notebook:

Name                    Version                   Build  Channel
xeus-octave               0.1.0                he98adf6_5    conda-forge
jovyan@jupyter-skotssd-2dgeochemicalscripts-2dcx9otixj:~$ 

hope that helps.

thanks Scott

rapgenic commented 1 year ago

That's unfortunate, you have the last version, which suggests that the problem is not fixed...

There's one more output that could be useful, please run just conda list and post here the output

rapgenic commented 1 year ago

Hi @skotssd,

I was able to find your repository and do some testing on my own. The problem was with one of our dependencies, which binder wouldn't update for some reason.

I'm not sure the problem is fixed yet, but I found a workaround that is working for me.

Please use the following environment.yml file, which pins a specific version of the problematic dependency:

name: xeus-octave
channels:
  - conda-forge
dependencies:
  # Workaround
  - xeus-zmq=1.0.2=h0541b36_2    
  - xeus-octave==0.1.0
  # For Plotly graphical toolkit
  - plotly
  # Runtime dependency for Octave ``symbolic`` package.
  - sympy
  # For compiling the Octave ``control`` and ``signal`` packages
  - compilers
  - make
skotssd commented 1 year ago

YES !!! thank you @rapgenic your workaround works!!!

thank you for your detective work! This is so much appreciated ! xeus-octave is so much better for my purposes than octave. I appreciate your help so much.

I will use this workaround for sure.

If you need anything from me in order to develop a more sustainable solution please let me know. I am happy to help in anyway I can.

Again, thank you so much. Your efforts are so much appreciated.

Scott

SylvainCorlay commented 1 year ago

Closing as fixed. This combination shoul also not be possible anymore with conda-forge.