jupyter / docker-stacks

Ready-to-run Docker images containing Jupyter applications

Home Page:https://jupyter-docker-stacks.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[BUG] - None of the current images that support Julia can be used for data science

nathancarter opened this issue · comments

What docker image(s) are you using?

datascience-notebook

Host OS system and architecture running docker image

Ubuntu 22.04 / aarch64

What Docker command are you running?

I am using the image as the base for a VS Code devcontainer, so I do not run the docker command directly myself.

How to Reproduce the problem?

In the image run Julia, then try using CSV, as shown in this bug report on CSV.jl. Julia 1.8.* seems to be able to load CSV.jl correctly, but Julia 1.9.* cannot compile it. Without CSV support, it is very difficulty to use Julia for data science.

Command output

See full command output at the link given above.

Expected behavior

The CSV.jl file should be usable, since it is so foundational for data science.

Actual behavior

The CSV.jl file does not successfully compile on Julia 1.9.*. (Frankly, it's astounding that a Julia release can even be put out with this problem.)

Anything else?

See bug report linked to above for full output and error messages.

Latest Docker version

  • I've updated my Docker version to the latest available, and the issue still persists

@nathancarter Thank you for this issue, I guess other Julia users of our images will be able to find the problem easily.
Do you know if this is an issue of CSV.jl or Julia itself?

I'm not sure what we can actually do on our side, to be honest.
My advice would be to use jupyter/datascience-notebook:julia-1.8.5 image, which as you say in the issue you mention, doesn't have such a problem.

If you want to use the latest version of other packages, you can use the latest version of our image(s) and then call install scripts with desired julia version.
https://github.com/jupyter/docker-stacks/blob/main/datascience-notebook/Dockerfile#L28-L34
You will need to delete files created by existing Julia installation and set correctly JULIA_VERSION env variable (it's used here).

Your output at JuliaData/CSV.jl#1105 contains __libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line).
ℹ️ This (x86_64-linux-gnu) may be an indication that something is wrong with the arm64 docker image.

@mathbunnyru Yes, I have been using the 1.8.5 image, as you suggested.

@benz0li I have both a Mac (ARM) and a PC (x86), so there is a small chance that I screwed up the architecture, but the project in which I encountered this problem is one I always do on my PC, because there are other aspects of the project that need the x86 architecture. So I'm pretty sure I was doing this on x86! I can rerun it if you need me to.

@nathancarter can you please try the following:

  1. Install latest Docker from here: https://docs.docker.com/engine/install/ubuntu/
  2. apt update && apt upgrade
  3. docker pull jupyter/datascience-notebook

And then try once again to run your command.

I can not reproduce with the linux/arm64 image:


Host

$ docker run -it --rm -p 8888:8888 jupyter/datascience-notebook:julia-1.9.1
Entered start.sh with args: jupyter lab
Executing the command: jupyter lab
[I 2023-08-09 04:32:21.173 ServerApp] Package jupyterlab took 0.0000s to import
[I 2023-08-09 04:32:21.178 ServerApp] Package jupyter_lsp took 0.0047s to import
[W 2023-08-09 04:32:21.178 ServerApp] 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.
[I 2023-08-09 04:32:21.179 ServerApp] Package jupyter_server_mathjax took 0.0005s to import
[I 2023-08-09 04:32:21.202 ServerApp] Package jupyter_server_proxy took 0.0234s to import
[I 2023-08-09 04:32:21.204 ServerApp] Package jupyter_server_terminals took 0.0018s to import
[I 2023-08-09 04:32:21.217 ServerApp] Package jupyterlab_git took 0.0123s to import
[I 2023-08-09 04:32:21.218 ServerApp] Package nbclassic took 0.0008s to import
[W 2023-08-09 04:32:21.219 ServerApp] A `_jupyter_server_extension_points` function was not found in nbclassic. 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.
[I 2023-08-09 04:32:21.219 ServerApp] Package nbdime took 0.0000s to import
[I 2023-08-09 04:32:21.219 ServerApp] Package notebook took 0.0000s to import
[I 2023-08-09 04:32:21.220 ServerApp] Package notebook_shim took 0.0000s to import
[W 2023-08-09 04:32:21.220 ServerApp] 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.
[I 2023-08-09 04:32:21.220 ServerApp] jupyter_lsp | extension was successfully linked.
[I 2023-08-09 04:32:21.222 ServerApp] jupyter_server_mathjax | extension was successfully linked.
[I 2023-08-09 04:32:21.222 ServerApp] jupyter_server_proxy | extension was successfully linked.
[I 2023-08-09 04:32:21.223 ServerApp] jupyter_server_terminals | extension was successfully linked.
[I 2023-08-09 04:32:21.225 ServerApp] jupyterlab | extension was successfully linked.
[I 2023-08-09 04:32:21.225 ServerApp] jupyterlab_git | extension was successfully linked.
[I 2023-08-09 04:32:21.227 ServerApp] nbclassic | extension was successfully linked.
[I 2023-08-09 04:32:21.227 ServerApp] nbdime | extension was successfully linked.
[I 2023-08-09 04:32:21.229 ServerApp] notebook | extension was successfully linked.
[I 2023-08-09 04:32:21.229 ServerApp] Writing Jupyter server cookie secret to /home/jovyan/.local/share/jupyter/runtime/jupyter_cookie_secret
[I 2023-08-09 04:32:21.325 ServerApp] notebook_shim | extension was successfully linked.
[I 2023-08-09 04:32:21.333 ServerApp] notebook_shim | extension was successfully loaded.
[I 2023-08-09 04:32:21.334 ServerApp] jupyter_lsp | extension was successfully loaded.
[I 2023-08-09 04:32:21.334 ServerApp] jupyter_server_mathjax | extension was successfully loaded.
[I 2023-08-09 04:32:21.339 ServerApp] jupyter_server_proxy | extension was successfully loaded.
[I 2023-08-09 04:32:21.339 ServerApp] jupyter_server_terminals | extension was successfully loaded.
[I 2023-08-09 04:32:21.340 LabApp] JupyterLab extension loaded from /opt/conda/lib/python3.11/site-packages/jupyterlab
[I 2023-08-09 04:32:21.340 LabApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 2023-08-09 04:32:21.341 LabApp] Extension Manager is 'pypi'.
[I 2023-08-09 04:32:21.342 ServerApp] jupyterlab | extension was successfully loaded.
[I 2023-08-09 04:32:21.343 ServerApp] jupyterlab_git | extension was successfully loaded.

  _   _          _      _
 | | | |_ __  __| |__ _| |_ ___
 | |_| | '_ \/ _` / _` |  _/ -_)
  \___/| .__/\__,_\__,_|\__\___|
       |_|
                                                                           
Read the migration plan to Notebook 7 to learn about the new features and the actions to take if you are using extensions.

https://jupyter-notebook.readthedocs.io/en/latest/migrate_to_notebook7.html

Please note that updating to Notebook 7 might break some of your extensions.

[I 2023-08-09 04:32:21.344 ServerApp] nbclassic | extension was successfully loaded.
[I 2023-08-09 04:32:21.367 ServerApp] nbdime | extension was successfully loaded.
[I 2023-08-09 04:32:21.368 ServerApp] notebook | extension was successfully loaded.
[I 2023-08-09 04:32:21.368 ServerApp] Serving notebooks from local directory: /home/jovyan
[I 2023-08-09 04:32:21.368 ServerApp] Jupyter Server 2.7.0 is running at:
[I 2023-08-09 04:32:21.368 ServerApp] http://82220da93dbb:8888/lab?token=53951246095e2298976f235c036e498fd10eacfc855c181b
[I 2023-08-09 04:32:21.368 ServerApp]     http://127.0.0.1:8888/lab?token=53951246095e2298976f235c036e498fd10eacfc855c181b
[I 2023-08-09 04:32:21.368 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 2023-08-09 04:32:21.369 ServerApp] 
    
    To access the server, open this file in a browser:
        file:///home/jovyan/.local/share/jupyter/runtime/jpserver-7-open.html
    Or copy and paste one of these URLs:
        http://82220da93dbb:8888/lab?token=53951246095e2298976f235c036e498fd10eacfc855c181b
        http://127.0.0.1:8888/lab?token=53951246095e2298976f235c036e498fd10eacfc855c181b
[I 2023-08-09 04:32:21.825 ServerApp] Skipped non-installed server(s): bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server

Container

(base) jovyan@82220da93dbb:~$ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.9.1 (2023-06-07)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> versioninfo()
Julia Version 1.9.1
Commit 147bdf428cd (2023-06-07 08:27 UTC)
Platform Info:
  OS: Linux (aarch64-linux-gnu)
  CPU: 6 × unknown
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.6 (ORCJIT, generic)
  Threads: 1 on 6 virtual cores
Environment:
  JULIA_PKGDIR = /opt/julia
  JULIA_DEPOT_PATH = /opt/julia
  JULIA_IMAGE_THREADS = 1

(@v1.9) pkg> add CSV
    Updating registry at `/opt/julia/registries/General.toml`
   Resolving package versions...
   Installed WeakRefStrings ── v1.4.2
   Installed SentinelArrays ── v1.4.0
   Installed InlineStrings ─── v1.4.0
   Installed PooledArrays ──── v1.4.2
   Installed WorkerUtilities ─ v1.6.1
   Installed FilePathsBase ─── v0.9.20
   Installed CSV ───────────── v0.10.11
    Updating `/opt/julia/environments/v1.9/Project.toml`
  [336ed68f] + CSV v0.10.11
    Updating `/opt/julia/environments/v1.9/Manifest.toml`
  [336ed68f] + CSV v0.10.11
  [48062228] + FilePathsBase v0.9.20
  [842dd82b] + InlineStrings v1.4.0
  [2dfb63ee] + PooledArrays v1.4.2
  [91c51154] + SentinelArrays v1.4.0
  [ea10d353] + WeakRefStrings v1.4.2
  [76eceee3] + WorkerUtilities v1.6.1
  [9fa8497b] + Future
Precompiling project...
  66 dependencies successfully precompiled in 33 seconds
  1 dependency had warnings during precompilation:
┌ Pluto [c3e4b0f8-55cb-11ea-2926-15256bba5781]
│  ┌ Info: 
│  │ 
│  │     Welcome to Pluto v0.19.27 🎈
│  │     Start a notebook server using:
│  │ 
│  │   julia> Pluto.run()
│  │ 
│  │     Have a look at the FAQ:
│  │     https://github.com/fonsp/Pluto.jl/wiki
│  └ 
└  

@nathancarter What command do you use to start the container? Any (bind) mounts?

@nathancarter could you please verify once again you still have the issue?

I'm in a bit of a busy season at work but when I have a minute I want to reduce this to an MWE that I can share. I'll post here as soon as I have a chance to reproduce the problem or discover that it was something else, and let you know what it was.

@nathancarter Julia 1.9.3 was released and our images already include it.
Could you please check if you still have an issue?

I'm closing this issue as it hasn't been reproduced (including the author of the issue).
@nathancarter please, feel free to comment here and I will reopen the issue if you still have it.