conda-forge / miniforge

A conda-forge distribution.
https://conda-forge.org/miniforge
Other
5.76k stars 306 forks source link

`conda.exe constructor --extract-tarball` reamains stuck forever #548

Open tashrifbillah opened 5 months ago

tashrifbillah commented 5 months ago

Solution to issue cannot be found in the documentation.

Issue

I am on CentOS 9 Stream. I downloaded a new installer. I ran:

$ ./Miniforge3-Linux-x86_64.sh -b -p conda3
PREFIX=/path/to/conda3
Unpacking payload ...

It remained stuck here forever. I killed it after 12 hours through the PID:

$ ps aux | grep conda
ab123      11444  0.5  0.1 247744 14040 pts/1    Dl+  13:41   0:00 /path/to/conda3/conda.exe constructor --extract-tarball --prefix /path/to/conda3

I have proper read write permission at /path/to/conda3. What can I do?

Installed packages

None

Environment info

None
jaimergp commented 5 months ago

Can you run the installer with bash -x and post the output?

tashrifbillah commented 5 months ago

Linking https://github.com/conda/conda/issues/9345

tashrifbillah commented 5 months ago

Hi @jaimergp , sorry about the delay. Here it is:

+ set -eu
+ export OLD_LD_LIBRARY_PATH=
+ OLD_LD_LIBRARY_PATH=
+ unset LD_LIBRARY_PATH
+ echo Miniforge3-Linux-x86_64.sh
+ grep '\.sh$'
+ export INSTALLER_NAME=Miniforge3
+ INSTALLER_NAME=Miniforge3
+ export INSTALLER_VER=23.11.0-0
+ INSTALLER_VER=23.11.0-0
+ export INSTALLER_PLAT=linux-64
+ INSTALLER_PLAT=linux-64
+ export INSTALLER_TYPE=SH
+ INSTALLER_TYPE=SH
+++ dirname Miniforge3-Linux-x86_64.sh
++ DIRNAME=.
++ cd .
++ pwd
+ THIS_DIR=/path/to/
++ basename Miniforge3-Linux-x86_64.sh
+ THIS_FILE=Miniforge3-Linux-x86_64.sh
+ THIS_PATH=/path/to/Miniforge3-Linux-x86_64.sh
+ PREFIX=/home/ab123/miniforge3
+ BATCH=0
+ FORCE=0
+ KEEP_PKGS=1
+ SKIP_SCRIPTS=0
+ TEST=0
+ REINSTALL=0
+ USAGE='
usage: Miniforge3-Linux-x86_64.sh [options]

Installs Miniforge3 23.11.0-0

-b           run install in batch mode (without manual intervention),
             it is expected the license terms (if any) are agreed upon
-f           no error if install prefix already exists
-h           print this help message and exit
-p PREFIX    install prefix, defaults to /home/ab123/miniforge3, must not contain spaces.
-s           skip running pre/post-link/install scripts
-u           update an existing installation
-t           run package tests after installation (may install conda-build)
'
+ getopts bifhkp:sut x
+ case "$x" in
+ BATCH=1
+ getopts bifhkp:sut x
+ case "$x" in
+ PREFIX=conda3
+ getopts bifhkp:sut x
+ CLEAR_AFTER_TEST=0
+ '[' 0 = 1 ']'
+ '[' 1 = 0 ']'
+ case "$PREFIX" in
+ '[' 0 = 0 ']'
+ '[' -e conda3 ']'
+ '[' 0 = 1 ']'
+ mkdir -p conda3
++ cd conda3
++ pwd
++ sed s@//@/@
+ PREFIX=/path/to/conda3
+ export PREFIX
+ printf 'PREFIX=%s\n' /path/to/conda3
PREFIX=/path/to/conda3
++ grep -anm 1 '^@@END_HEADER@@' /path/to/Miniforge3-Linux-x86_64.sh
++ sed 's/:.*//'
+ last_line=493
++ head -n 493 /path/to/Miniforge3-Linux-x86_64.sh
++ wc -c
++ sed 's/ //g'
+ boundary0=17712
+ boundary1=15952728
+ boundary2=84233048
++ extract_range 17712 84233048
++ blk_siz=16384
++ dd1_beg=17712
++ dd3_end=84233048
++ md5sum -
++ dd1_end=32768
++ dd1_cnt=15056
++ dd2_end=5141
++ dd2_beg=2
++ dd2_cnt=5139
++ dd3_beg=84230144
++ dd3_cnt=2904
++ dd if=/path/to/Miniforge3-Linux-x86_64.sh bs=1 skip=17712 count=15056
++ dd if=/path/to/Miniforge3-Linux-x86_64.sh bs=16384 skip=2 count=5139
++ dd if=/path/to/Miniforge3-Linux-x86_64.sh bs=1 skip=84230144 count=2904
+ MD5='8c264d06b76b1ffbc1d335e587cb73ac  -'
+ echo '8c264d06b76b1ffbc1d335e587cb73ac  -'
+ grep 8c264d06b76b1ffbc1d335e587cb73ac
+ cd /path/to/conda3
+ unset PYTHON_SYSCONFIGDATA_NAME _CONDA_PYTHON_SYSCONFIGDATA_NAME
+ CONDA_EXEC=/path/to/conda3/conda.exe
+ extract_range 17712 15952728
+ blk_siz=16384
+ dd1_beg=17712
+ dd3_end=15952728
+ dd1_end=32768
+ dd1_cnt=15056
+ dd2_end=973
+ dd2_beg=2
+ dd2_cnt=971
+ dd3_beg=15941632
+ dd3_cnt=11096
+ dd if=/path/to/Miniforge3-Linux-x86_64.sh bs=1 skip=17712 count=15056
+ dd if=/path/to/Miniforge3-Linux-x86_64.sh bs=16384 skip=2 count=971
+ dd if=/path/to/Miniforge3-Linux-x86_64.sh bs=1 skip=15941632 count=11096
+ chmod +x /path/to/conda3/conda.exe
+ export TMP_BACKUP=
+ TMP_BACKUP=
+ export TMP=/path/to/conda3/install_tmp
+ TMP=/path/to/conda3/install_tmp
+ mkdir -p /path/to/conda3/install_tmp
+ printf 'Unpacking payload ...\n'
Unpacking payload ...
+ extract_range 15952728 84233048
+ blk_siz=16384
+ dd1_beg=15952728
+ dd3_end=84233048
+ dd1_end=15958016
+ dd1_cnt=5288
+ dd2_end=5141
+ dd2_beg=974
+ dd2_cnt=4167
+ dd3_beg=84230144
+ dd3_cnt=2904
+ /path/to/conda3/conda.exe constructor --extract-tarball --prefix /path/to/conda3
+ dd if=/path/to/Miniforge3-Linux-x86_64.sh bs=1 skip=15952728 count=5288
+ dd if=/path/to/Miniforge3-Linux-x86_64.sh bs=16384 skip=974 count=4167
+ dd if=/path/to/Miniforge3-Linux-x86_64.sh bs=1 skip=84230144 count=2904
tashrifbillah commented 5 months ago

Just putting up a comparison--the official miniconda installer worked fine:

https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

jaimergp commented 5 months ago

Miniforge uses micromamba as their conda.exe, while Miniconda relies on conda-standalone. The logs show that the payload is correctly extracted, but micromamba is failing to process it.

I need to take a look at the current installers and debug the bundled micromamba to see how we can debug further.

tashrifbillah commented 5 months ago

Thank you. I can help with testing if you have updates.