-
Notifications
You must be signed in to change notification settings - Fork 75
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
Inquiry about Binder usage for University/Canadian Government training sessions with Jupyter Notebooks and Terminal interactions #3210
Comments
This is definitely fine, it's part of JupyterLab! If it crashes this is either because it's using too many resources, or it may have triggered our anti-malware/anti-cryptomining defences. Let us know if there's a particular command that you think is incorrectly triggering our detection
Yes
This should be fine
We had a significant reduction in donated compute capacity last year which severely limited what we could offer. We've brought on some new donated capacity in the past month, but be aware there's still a risk of there being insufficient resources. |
Thank you for all the answers, much appreciated.
Thank you so much for this. I am using this Binder session as our base environment, and when I execute a simple command like the following in the JupyterLab's Terminal: $ gcc The terminal session crashes (the Binder session would still run): Click to expand the terminal output messages+++ micromamba shell hook -s posix -r /srv/conda
++ eval '#' Copyright '(C)' 2012 Anaconda, Inc '#' SPDX-License-Identifier: BSD-3-Clause '__mamba_exe()' '(' '"/usr/local/bin/micromamba"' '"${@}"' ')' '__mamba_hashr()' '{' if '[' -n '"${ZSH_VERSION:+x}"' '];' then '\rehash' elif '[' -n '"${POSH_VERSION:+x}"' '];' then : '#' pass else '\hash' -r fi '}' '__mamba_xctivate()' '{' '\local' ask_mamba 'ask_mamba="$(PS1="${PS1:-}"' __mamba_exe shell '"${@}"' --shell 'bash)"' '||' '\return' '\eval' '"${ask_mamba}"' __mamba_hashr '}' '__mamba_wrap()' '{' '\local' 'cmd="${1-__missing__}"' case '"${cmd}"' in 'activate|reactivate|deactivate)' __mamba_xctivate '"${@}"' ';;' 'install|update|upgrade|remove|uninstall)' __mamba_exe '"${@}"' '||' '\return' __mamba_xctivate reactivate ';;' 'self-update)' __mamba_exe '"${@}"' '||' '\return' '#' remove leftover backup file on Windows if '[' -f '"/usr/local/bin/micromamba.bkup"' '];' then rm -f '"/usr/local/bin/micromamba.bkup"' fi ';;' '*)' __mamba_exe '"${@}"' ';;' esac '}' '#' We need to define a function with the same name as the executable to be called by the user. '#' There is no way to register it dynamically without relying on hacks or eval. '__exe_name="$(basename' '"/usr/local/bin/micromamba")"' '__exe_name="${__exe_name%.*}"' case '"${__exe_name}"' in 'micromamba)' 'micromamba()' '{' __mamba_wrap '"$@"' '}' ';;' 'mamba)' 'mamba()' '{' __mamba_wrap '"$@"' '}' ';;' '*)' echo '"Error' unknown MAMBA_EXE: '\"/usr/local/bin/micromamba\",' filename must be mamba or 'micromamba"' '1>&2' ';;' esac if '[' -z '"${CONDA_SHLVL+x}"' '];' then '\export' CONDA_SHLVL=0 '\export' 'PATH="${MAMBA_ROOT_PREFIX}/condabin:${PATH}"' '#' 'We'\''re' not allowing PS1 to be unbound. It must at least be set. '#' However, 'we'\''re' not exporting it, which can cause problems when starting a second shell '#' via a first shell '(i.e.' starting zsh from 'bash).' if '[' -z '"${PS1+x}"' '];' then PS1= fi fi
++ for name in conda mamba
++ CONDA_PROFILE=/srv/conda/etc/profile.d/conda.sh
++ echo 'Activating profile: /srv/conda/etc/profile.d/conda.sh'
Activating profile: /srv/conda/etc/profile.d/conda.sh
++ test -f /srv/conda/etc/profile.d/conda.sh
++ . /srv/conda/etc/profile.d/conda.sh
+++ export CONDA_EXE=/srv/conda/bin/conda
+++ CONDA_EXE=/srv/conda/bin/conda
+++ export _CE_M=
+++ _CE_M=
+++ export _CE_CONDA=
+++ _CE_CONDA=
+++ export CONDA_PYTHON_EXE=/srv/conda/bin/python
+++ CONDA_PYTHON_EXE=/srv/conda/bin/python
+++ '[' -z x ']'
++ for name in conda mamba
++ CONDA_PROFILE=/srv/conda/etc/profile.d/mamba.sh
++ echo 'Activating profile: /srv/conda/etc/profile.d/mamba.sh'
Activating profile: /srv/conda/etc/profile.d/mamba.sh
++ test -f /srv/conda/etc/profile.d/mamba.sh
++ . /srv/conda/etc/profile.d/mamba.sh
+++ export MAMBA_ROOT_PREFIX=/srv/conda
+++ MAMBA_ROOT_PREFIX=/srv/conda
++++ /srv/conda/bin/mamba shell hook --shell posix
+++ __mamba_setup='
# Copyright (C) 2012 Anaconda, Inc
# SPDX-License-Identifier: BSD-3-Clause
__mamba_exe() (
"/srv/conda/bin/mamba" "${@}"
)
__mamba_hashr() {
if [ -n "${ZSH_VERSION:+x}" ]; then
\rehash
elif [ -n "${POSH_VERSION:+x}" ]; then
: # pass
else
\hash -r
fi
}
__mamba_xctivate() {
\local ask_mamba
ask_mamba="$(PS1="${PS1:-}" __mamba_exe shell "${@}" --shell bash)" || \return
\eval "${ask_mamba}"
__mamba_hashr
}
__mamba_wrap() {
\local cmd="${1-__missing__}"
case "${cmd}" in
activate|reactivate|deactivate)
__mamba_xctivate "${@}"
;;
install|update|upgrade|remove|uninstall)
__mamba_exe "${@}" || \return
__mamba_xctivate reactivate
;;
self-update)
__mamba_exe "${@}" || \return
# remove leftover backup file on Windows
if [ -f "/srv/conda/bin/mamba.bkup" ]; then
rm -f "/srv/conda/bin/mamba.bkup"
fi
;;
*)
__mamba_exe "${@}"
;;
esac
}
# We need to define a function with the same name as the executable to be called by the user.
# There is no way to register it dynamically without relying on hacks or eval.
__exe_name="$(basename "/srv/conda/bin/mamba")"
__exe_name="${__exe_name%.*}"
case "${__exe_name}" in
micromamba)
micromamba() {
__mamba_wrap "$@"
}
;;
mamba)
mamba() {
__mamba_wrap "$@"
}
;;
*)
echo "Error unknown MAMBA_EXE: \"/srv/conda/bin/mamba\", filename must be mamba or micromamba" 1>&2
;;
esac
if [ -z "${CONDA_SHLVL+x}" ]; then
\export CONDA_SHLVL=0
\export PATH="${MAMBA_ROOT_PREFIX}/condabin:${PATH}"
# We'\''re not allowing PS1 to be unbound. It must at least be set.
# However, we'\''re not exporting it, which can cause problems when starting a second shell
# via a first shell (i.e. starting zsh from bash).
if [ -z "${PS1+x}" ]; then
PS1=
fi
fi'
+++ '[' 0 -eq 0 ']'
+++ eval '
# Copyright (C) 2012 Anaconda, Inc
# SPDX-License-Identifier: BSD-3-Clause
__mamba_exe() (
"/srv/conda/bin/mamba" "${@}"
)
__mamba_hashr() {
if [ -n "${ZSH_VERSION:+x}" ]; then
\rehash
elif [ -n "${POSH_VERSION:+x}" ]; then
: # pass
else
\hash -r
fi
}
__mamba_xctivate() {
\local ask_mamba
ask_mamba="$(PS1="${PS1:-}" __mamba_exe shell "${@}" --shell bash)" || \return
\eval "${ask_mamba}"
__mamba_hashr
}
__mamba_wrap() {
\local cmd="${1-__missing__}"
case "${cmd}" in
activate|reactivate|deactivate)
__mamba_xctivate "${@}"
;;
install|update|upgrade|remove|uninstall)
__mamba_exe "${@}" || \return
__mamba_xctivate reactivate
;;
self-update)
__mamba_exe "${@}" || \return
# remove leftover backup file on Windows
if [ -f "/srv/conda/bin/mamba.bkup" ]; then
rm -f "/srv/conda/bin/mamba.bkup"
fi
;;
*)
__mamba_exe "${@}"
;;
esac
}
# We need to define a function with the same name as the executable to be called by the user.
# There is no way to register it dynamically without relying on hacks or eval.
__exe_name="$(basename "/srv/conda/bin/mamba")"
__exe_name="${__exe_name%.*}"
case "${__exe_name}" in
micromamba)
micromamba() {
__mamba_wrap "$@"
}
;;
mamba)
mamba() {
__mamba_wrap "$@"
}
;;
*)
echo "Error unknown MAMBA_EXE: \"/srv/conda/bin/mamba\", filename must be mamba or micromamba" 1>&2
;;
esac
if [ -z "${CONDA_SHLVL+x}" ]; then
\export CONDA_SHLVL=0
\export PATH="${MAMBA_ROOT_PREFIX}/condabin:${PATH}"
# We'\''re not allowing PS1 to be unbound. It must at least be set.
# However, we'\''re not exporting it, which can cause problems when starting a second shell
# via a first shell (i.e. starting zsh from bash).
if [ -z "${PS1+x}" ]; then
PS1=
fi
fi'
+++++ basename /srv/conda/bin/mamba
++++ __exe_name=mamba
++++ __exe_name=mamba
++++ case "${__exe_name}" in
++++ '[' -z x ']'
+++ unset __mamba_setup
++ [[ /srv/conda/envs/notebook != \/\s\r\v\/\c\o\n\d\a\/\e\n\v\s\/\n\o\t\e\b\o\o\k ]]
++ mamba activate /srv/conda/envs/notebook
++ __mamba_wrap activate /srv/conda/envs/notebook
++ local cmd=activate
++ case "${cmd}" in
++ __mamba_xctivate activate /srv/conda/envs/notebook
++ local ask_mamba
+++ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+++ __mamba_exe shell activate /srv/conda/envs/notebook --shell bash
+++ /srv/conda/bin/mamba shell activate /srv/conda/envs/notebook --shell bash
++ ask_mamba='PS1='\''(notebook) ${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '\''
export PATH='\''/srv/conda/envs/notebook/bin:/home/jovyan/.local/bin:/srv/conda/condabin:/home/jovyan/.local/bin:/srv/conda/bin:/srv/npm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'\''
export CONDA_SHLVL='\''1'\''
export CONDA_PROMPT_MODIFIER='\''(notebook) '\'''
++ eval 'PS1='\''(notebook) ${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '\''
export PATH='\''/srv/conda/envs/notebook/bin:/home/jovyan/.local/bin:/srv/conda/condabin:/home/jovyan/.local/bin:/srv/conda/bin:/srv/npm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'\''
export CONDA_SHLVL='\''1'\''
export CONDA_PROMPT_MODIFIER='\''(notebook) '\'''
+++ PS1='(notebook) ${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+++ export PATH=/srv/conda/envs/notebook/bin:/home/jovyan/.local/bin:/srv/conda/condabin:/home/jovyan/.local/bin:/srv/conda/bin:/srv/npm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+++ PATH=/srv/conda/envs/notebook/bin:/home/jovyan/.local/bin:/srv/conda/condabin:/home/jovyan/.local/bin:/srv/conda/bin:/srv/npm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+++ export CONDA_SHLVL=1
+++ CONDA_SHLVL=1
+++ export 'CONDA_PROMPT_MODIFIER=(notebook) '
+++ CONDA_PROMPT_MODIFIER='(notebook) '
++ __mamba_hashr
++ '[' -n '' ']'
++ '[' -n '' ']'
++ hash -r
+ unset i
+ '[' -n '5.1.16(1)-release' ']'
+ '[' -f /home/jovyan/.bashrc ']'
+ . /home/jovyan/.bashrc
++ case $- in
++ HISTCONTROL=ignoreboth
++ shopt -s histappend
++ HISTSIZE=1000
++ HISTFILESIZE=2000
++ shopt -s checkwinsize
++ '[' -x /usr/bin/lesspipe ']'
+++ SHELL=/bin/sh
+++ lesspipe
++ eval 'export LESSOPEN="| /usr/bin/lesspipe %s";
export LESSCLOSE="/usr/bin/lesspipe %s %s";'
+++ export 'LESSOPEN=| /usr/bin/lesspipe %s'
+++ LESSOPEN='| /usr/bin/lesspipe %s'
+++ export 'LESSCLOSE=/usr/bin/lesspipe %s %s'
+++ LESSCLOSE='/usr/bin/lesspipe %s %s'
++ '[' -z '' ']'
++ '[' -r /etc/debian_chroot ']'
++ case "$TERM" in
++ color_prompt=yes
++ '[' -n '' ']'
++ '[' yes = yes ']'
++ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
++ unset color_prompt force_color_prompt
++ case "$TERM" in
++ PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
++ '[' -x /usr/bin/dircolors ']'
++ test -r /home/jovyan/.dircolors
+++ dircolors -b
++ eval 'LS_COLORS='\''rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'\'';
export LS_COLORS'
+++ LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'
+++ export LS_COLORS
++ alias 'ls=ls --color=auto'
++ alias 'grep=grep --color=auto'
++ alias 'fgrep=fgrep --color=auto'
++ alias 'egrep=egrep --color=auto'
++ alias 'll=ls -alF'
++ alias 'la=ls -A'
++ alias 'l=ls -CF'
++ alias 'alert=notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
++ '[' -f /home/jovyan/.bash_aliases ']'
++ shopt -oq posix
++ '[' -f /usr/share/bash-completion/bash_completion ']'
++ '[' -f /etc/bash_completion ']'
+ '[' -d /home/jovyan/bin ']'
+ '[' -d /home/jovyan/.local/bin ']'
+ PATH=/home/jovyan/.local/bin:/srv/conda/envs/notebook/bin:/home/jovyan/.local/bin:/srv/conda/condabin:/home/jovyan/.local/bin:/srv/conda/bin:/srv/npm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
jovyan@jupyter-kasra-keshavarz-maf-env-basic-k5kfs7wp:~$ gcc
gcc: fatal error: no input files
compilation terminated. However, if I do jovyan@jupyter-kasra-keshavarz-maf-env-basic-k5kfs7wp:~$ script terminal.log The terminal session works just fine, and I can run routine commands such as the |
It's a bug! jupyterhub/repo2docker#1405 As a temporary workaround you can run |
Awesome, thank you so much 😊. I've got all the answers to my question so I close this issue, but feel free to open, if there is a need. |
Hello Binder Team,
We are a research team at the University of Calgary in the field of Hydrology (https://github.com/CH-Earth), and we are planning to conduct a training session for some of our partners with the Government of Canada along with some provincial folks using your platform. The training will involve 15-20 participants, and we intend to use Jupyter Notebook sessions along with terminal interactions to educate our partners on how to use our tools effectively.
Here is the repository we used last time for a similar training:
CH-Earth/community-modelling-workflow-training (binder branch). We are currently updating it to work seamlessly with Binder.
We have a few questions regarding our planned usage:
Terminal Usage: Is it acceptable to use the terminal for lightweight experiments within Binder sessions? During my testing, the terminal crashes immediately when running a few commands. Is this a problem specific to my session, or is it a general policy restriction with Binder sessions?
Session Type: Is a session like this (Jupyter Notebooks + terminal interactions + University/Government settings) acceptable for Binder?
Duration: The training session will likely take 3 hours in total. Is this duration acceptable for a Binder session?
Additional Information: Is there anything else we should know or consider when planning this training session?
I'd greatly appreciate your feedback.
Cheers
The text was updated successfully, but these errors were encountered: