-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Illegal instruction with x86-64 jemalloc on Rosetta #2014
Comments
If I rebuild jemalloc with
Traceback:
Disassembly:
|
I don't have an M1 to test on, but while I work on trying to finagle some ssh access, is there an easy repro you could share? |
Ok, first, you should make sure that a x86-64
The last command should probably crash with a "illegal instruction". |
I do not know if it helps but Rosetta does not translate AVX* instructions. |
When trying to debug, I didn't see a AVX instruction but a |
yes |
Here's the full commands to do what @pitrou suggested. However this did not create a crash on an M3 Macbook. arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"\n
arch -x86_64 /bin/zsh
/usr/local/bin/brew install cmake
git clone https://github.com/apache/arrow.git
cd arrow/cpp
mkdir build
cd build
/usr/local/bin/cmake .. -DCMAKE_BUILD_TYPE=Debug -DARROW_BUILD_TESTS=ON -DARROW_DEPENDENCY_SOURCE=BUNDLED
make -j4
file ./debug/arrow-misc-test # you should see x86_64 in the output
./debug/arrow-misc-test
|
In Apache Arrow we bundle a private build of jemalloc 5.2.1. When we compile a x86-64 version of Arrow on a Apple M1 machine and then run the resulting code using Rosetta, the process crashes at startup:
Traceback:
The disassembly shows a
ud2
instruction:The text was updated successfully, but these errors were encountered: