Comment 15 for bug 1999104

Revision history for this message
Matthew Ruffell (mruffell) wrote :

Performing verification for Focal.

I started two instances on AWS, one c6g.medium (arm64) and a t2.micro (amd64).

I went through the reproducer listed in the testcase with libunwind-dev 1.2.1-9build1 from -release.

$ wget https://bugs.launchpad.net/ubuntu/+source/libunwind/+bug/1999104/+attachment/5635122/+files/libunwind.tar.gz
$ sudo apt install -y build-essential libunwind-dev
$ tar xvf libunwind.tar.gz && cd test
test/
test/lib.hpp
test/main.cpp
test/lib.cpp
test/Makefile
~/test$ make all
g++ -g -shared-libgcc -shared -fPIC -std=c++11 -o libtest.so lib.cpp
g++ -g -shared-libgcc -o main -L. -Wl,-rpath,. main.cpp -ltest
g++ -g -shared-libgcc -o main_unwind -L. -Wl,-rpath,. main.cpp -ltest -lunwind

On arm64:

~/test$ ./main
int throws lib
int caught main
~/test$ ./main_unwind
terminate called after throwing an instance of 'int'
terminate called recursively
Aborted (core dumped)

On amd64:

~/test$ ./main
int throws lib
int caught main
~/test$ ./main_unwind
int throws lib
int caught main

As expected, we see arm64 abort the execution of the reproducer.

I then installed 1.2.1-9ubuntu0.1 from -proposed and rebuilt the reproducers:

$ make clean
$ make all
g++ -g -shared-libgcc -shared -fPIC -std=c++11 -o libtest.so lib.cpp
g++ -g -shared-libgcc -o main -L. -Wl,-rpath,. main.cpp -ltest
g++ -g -shared-libgcc -o main_unwind -L. -Wl,-rpath,. main.cpp -ltest -lunwind

On arm64:

$ ./main
int throws lib
int caught main
$ ./main_unwind
int throws lib
int caught main

On amd64:

~/test$ ./main
int throws lib
int caught main
~/test$ ./main_unwind
int throws lib
int caught main

We see that 1.2.1-9ubuntu0.1 from -proposed does not abort, and instead runs as expected. There is no change in behaviour on amd64. The package in -proposed fixes the problem, happy to mark as verified for Focal.