There is a bug in libunwind in both 18.04 and 20.04 on arm64 where when linked with libunwind instead of catching an exception, the program crashes. This was first seen on mcrouter, but attached is a small reproducer where `main_unwind` will crash. The libunwind shipping with 22.04 doesn't appear to have this problem, nor do unmodified upstream versions (including the 1.2.1 which is the 18.04 and 20.04 version).
Attached is a small reproducer that demonstrates the problem.
Ubuntu 22.04:
```
$ ./main
int throws lib
int caught main
$ ./main_unwind
int throws lib
int caught main
```
Ubuntu 20.04:
```
$ ./main
int throws lib
int caught main
$ ./main_unwind
terminate called after throwing an instance of 'int'
terminate called recursively
Aborted (core dumped)
```
There is a bug in libunwind in both 18.04 and 20.04 on arm64 where when linked with libunwind instead of catching an exception, the program crashes. This was first seen on mcrouter, but attached is a small reproducer where `main_unwind` will crash. The libunwind shipping with 22.04 doesn't appear to have this problem, nor do unmodified upstream versions (including the 1.2.1 which is the 18.04 and 20.04 version).
Attached is a small reproducer that demonstrates the problem.
Ubuntu 22.04:
```
$ ./main
int throws lib
int caught main
$ ./main_unwind
int throws lib
int caught main
```
Ubuntu 20.04:
```
$ ./main
int throws lib
int caught main
$ ./main_unwind
terminate called after throwing an instance of 'int'
terminate called recursively
Aborted (core dumped)
```