🐞 Bug: Installation Broke `libc.so` Or Introduced A Wrong One.
Bug: Installation broke libc.so
or introduced a wrong one
Describe the bug
If installed at 2ddf51775a36ee1b01be62d4a5d63d35651329e9, the installation process will make a broken /usr/local/lib64/libc.so
and every command will be failed due to the wrong path.
To Reproduce
Steps to reproduce the behavior:
- Environment: The command was executed in the crosh environment.
- Command: The command executed was
bash <(curl -L git.io/vddgY) && . ~/.bashrc
. - Output: The output of the command is shown below:
crosh> shell
bash: /usr/local/etc/profile: No such file or directory
chronos@brunch / $ bash <(curl -L git.io/vddgY) && . ~/.bashrc
/usr/local is not empty, would you like it to be cleared?
This will delete ALL files in /usr/local!
Continue?
1) Yes
2) No
#?
1
Password:
Welcome to Chromebrew!
Please enter the developer mode password.
Password:
Set up the local package repo...
# # # -=O=-
Creating device.json.
Downloading Bootstrap packages:
lz4 zlib xzutils zstd zlib_ng crew_mvdir ruby git ca_certificates libyaml openssl patchelf glibc_lib237 gmp
Downloading lz4...
######################################################################################################################################################## 100.0%
Verifying lz4...
lz4-1.10.0-chromeos-x86_64.tar.xz: OK
Verification of lz4 succeeded.
XZ: system
ZSTD: system
Extracting lz4 ...
Installing lz4 ...
Adding new information on lz4 1.10.0 to device.json...
Downloading zlib...
######################################################################################################################################################## 100.0%
Verifying zlib...
zlib-1.3.1-1-chromeos-x86_64.tar.xz: OK
Verification of zlib succeeded.
XZ: system
ZSTD: system
Extracting zlib ...
Installing zlib ...
Adding new information on zlib 1.3.1-1 to device.json...
Downloading xzutils...
######################################################################################################################################################## 100.0%
Verifying xzutils...
xzutils-5.8.1-chromeos-x86_64.tar.xz: OK
Verification of xzutils succeeded.
XZ: system
ZSTD: system
Extracting xzutils ...
Installing xzutils ...
Adding new information on xzutils 5.8.1 to device.json...
Downloading zstd...
######################################################################################################################################################## 100.0%
Verifying zstd...
zstd-1.5.7-chromeos-x86_64.tar.xz: OK
Verification of zstd succeeded.
XZ: system
ZSTD: system
Extracting zstd ...
Installing zstd ...
Adding new information on zstd 1.5.7 to device.json...
Downloading zlib_ng...
######################################################################################################################################################## 100.0%
Verifying zlib_ng...
zlib_ng-2.2.4-chromeos-x86_64.tar.zst: OK
Verification of zlib_ng succeeded.
XZ: system
ZSTD: system
Extracting zlib_ng ...
Installing zlib_ng ...
Adding new information on zlib_ng 2.2.4 to device.json...
Downloading crew_mvdir...
######################################################################################################################################################## 100.0%
Verifying crew_mvdir...
crew_mvdir-0.2-2-chromeos-x86_64.tar.zst: OK
Verification of crew_mvdir succeeded.
XZ: system
ZSTD: system
Extracting crew_mvdir ...
Installing crew_mvdir ...
Adding new information on crew_mvdir 0.2-2 to device.json...
Downloading ruby...
######################################################################################################################################################## 100.0%
Verifying ruby...
ruby-3.4.3-chromeos-x86_64.tar.zst: OK
Verification of ruby succeeded.
XZ: system
ZSTD: system
Extracting ruby ...
Installing ruby ...
Adding new information on ruby 3.4.3 to device.json...
Downloading git...
######################################################################################################################################################## 100.0%
Verifying git...
git-2.49.0-chromeos-x86_64.tar.zst: OK
Verification of git succeeded.
XZ: system
ZSTD: system
Extracting git ...
Installing git ...
Adding new information on git 2.49.0 to device.json...
Downloading ca_certificates...
######################################################################################################################################################## 100.0%
Verifying ca_certificates...
ca_certificates-20241223-5b78b93-chromeos-x86_64.tar.zst: OK
Verification of ca_certificates succeeded.
XZ: system
ZSTD: system
Extracting ca_certificates ...
Installing ca_certificates ...
Adding new information on ca_certificates 20241223-5b78b93 to device.json...
Downloading libyaml...
######################################################################################################################################################## 100.0%
Verifying libyaml...
libyaml-0.2.5-chromeos-x86_64.tar.xz: OK
Verification of libyaml succeeded.
XZ: system
ZSTD: system
Extracting libyaml ...
Installing libyaml ...
Adding new information on libyaml 0.2.5 to device.json...
Downloading openssl...
######################################################################################################################################################## 100.0%
Verifying openssl...
openssl-3.5.0-chromeos-x86_64.tar.zst: OK
Verification of openssl succeeded.
XZ: system
ZSTD: system
Extracting openssl ...
Installing openssl ...
Adding new information on openssl 3.5.0 to device.json...
Downloading patchelf...
######################################################################################################################################################## 100.0%
Verifying patchelf...
patchelf-0.18.0-a0f5433-chromeos-x86_64.tar.zst: OK
Verification of patchelf succeeded.
XZ: system
ZSTD: system
Extracting patchelf ...
Installing patchelf ...
Adding new information on patchelf 0.18.0-a0f5433 to device.json...
Downloading glibc_lib237...
######################################################################################################################################################## 100.0%
Verifying glibc_lib237...
glibc_lib237-2.37-patchelf2-chromeos-x86_64.tar.zst: OK
Verification of glibc_lib237 succeeded.
XZ: system
ZSTD: system
Extracting glibc_lib237 ...
Installing glibc_lib237 ...
/usr/bin/coreutils: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /usr/bin/coreutils)
/usr/bin/coreutils: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /lib64/libselinux.so.1)
An error occured during the installation :/
chronos@brunch / $ bash <(curl -L git.io/vddgY) && . ~/.bashrc
bash: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by bash)
bash: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib64/libreadline.so.8)
chronos@brunch / $ curl: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib64/libunistring.so.2)
curl: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib64/libkrb5.so.3)
curl: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib64/libk5crypto.so.3)
curl: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib64/libcom_err.so.2)
curl: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib64/libkrb5support.so.0)
^C
chronos@brunch / $ sudo rm -rf /usr/local/*
/usr/bin/coreutils: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /usr/bin/coreutils)
/usr/bin/coreutils: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /lib64/libselinux.so.1)
chronos@brunch / $ sudo rm -rf /usr/local/*
/usr/bin/coreutils: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /usr/bin/coreutils)
/usr/bin/coreutils: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /lib64/libselinux.so.1)
chronos@brunch / $ sudo -i
-bash: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by -bash)
-bash: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /usr/lib64/libreadline.so.8)
chronos@brunch / $ busybox
bash: busybox: command not found
grep: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by grep)
chronos@brunch / $
**
Bug: Installation broke libc.so
or introduced a wrong one
Q: What is the issue with the installation process?
A: The installation process is breaking the libc.so
file or introducing a wrong one, which is causing every command to fail.
Q: What is the expected behavior of the installation process?
A: The expected behavior is that the installation process should complete successfully without breaking any files or introducing wrong ones.
Q: What are the steps to reproduce the issue?
A: To reproduce the issue, follow these steps:
- Environment: The command was executed in the crosh environment.
- Command: The command executed was
bash <(curl -L git.io/vddgY) && . ~/.bashrc
. - Output: The output of the command is shown above.
Q: What is the error message that is displayed?
A: The error message that is displayed is:
/usr/bin/coreutils: /usr/local/lib64/libc.so.6: version
GLIBC_2.38' not found (required by /usr/bin/coreutils)
/usr/bin/coreutils: /usr/local/lib64/libc.so.6: version GLIBC_2.38' not found (required by /lib64/libselinux.so.1)
Q: What is the impact of this issue?
A: The impact of this issue is that every command will fail due to the broken libc.so
file or the wrong one that is introduced.
Q: How can this issue be resolved?
A: To resolve this issue, the installation process needs to be fixed immediately.
Q: What are the system information details?
A: The system information details are:
chronos@brunch / $ crew sysinfo -v
bash: crew: command not found
grep: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by grep)
chronos@brunch / $ cat /etc/lsb-release
/usr/bin/coreutils: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /usr/bin/coreutils)
/usr/bin/coreutils: /usr/local/lib64/libc.so.6: version `GLIBC_2.38' not found (required by /lib64/libselinux.so.1)
chronos@brunch / $
Q: What is the additional context about the problem?
A: The additional context about the problem is that the installation process is breaking the libc.so
file or introducing a wrong one, which is causing every command to fail.
Q: What needs to be done to fix this issue?
A: To fix this issue, the installation process needs to be fixed immediately.
Q: What are the next steps to resolve this issue?
A: The next steps to resolve this issue are:
- Fix the installation process: The installation process needs to be fixed immediately to prevent any further issues.
- Verify the system information: The system information needs to be verified to ensure that the issue is resolved.
- Test the commands: The commands need to be tested to ensure that they are working correctly.
By following these steps, the issue can be resolved, and the system can be restored to its normal functioning state