User:Sam/Memorable bugs I like to reference
I often want to refer to bugs which are notable in some way (wild UB cases, bizarre in some way, or related to a certain topic). Here's a rolling list of them.
Bugs found by Portage's native file copying
Portage has a C extension (src/portage_util_file_copy_reflink_linux.c) controlled by native-extensions to use copy-on-write (CoW) if possible when merging files from the image directory to the live filesystem.
It has a history of finding bugs in kernels and filesystems because of how extensively the CoW syscalls get stresstested when doing many thousands of merges a day collectively if you consider the number of users on various filesystems in Gentoo.
- Bug in btrfs's btrfs_file_llseek
- Broken seek on glusterfs
- ZFS and Portage bug combined
- bug #635002
- Portage side: bug #635126
- ZFS side: https://github.com/openzfs/zfs/issues/3125
- ZFS sendfile with Linux 5.10
- ZFS sendfile with Linux 5.16
- bug #761499 (sort of, these bugs tend to end up getting reused by people hitting different issues a while later...)
- https://github.com/openzfs/zfs/issues/12971
- ZFS SEEK_DATA failed sometimes
- coreutils-9's default --reflink=auto ended up leading to Go getting mangled (and segfaulting) when merging to the live filesystem
- https://github.com/openzfs/zfs/issues/11900
- https://github.com/openzfs/zfs/issues/11900#issuecomment-927568640
- https://github.com/openzfs/zfs/pull/12745
- ZFS CoW failing again
- A comeback of https://github.com/openzfs/zfs/issues/11900 mentioned above.
- bug #917224
- https://github.com/openzfs/zfs/issues/15526
- ZFS CoW failing again again
- A comeback of the previous issues with Go.
- https://github.com/openzfs/zfs/issues/15933
Notable bugs found by arch testing
Many of the bugs in this list could've affected any platform or architecture, and it just happened to work in other places. The idea is to try demonstrate the value of portability and testing on various systems in Gentoo.
(Of course, things which fail on niche architectures/platforms often violate some generic C rule or other, but many of the things listed here for are definitely and unambiguously broken on e.g. amd64 and it's just lucky nobody else hit it first.
Think e.g. "a crash happens on arm by chance, but it can easily happen on amd64 with X input, and it revealed missing bounds checks." or similar.)
- net-vpn/ocserv had a buffer overflow in get_cert_name, bug #721570 (CVE-2020-12823)
Being proactive
We often end up finding bugs by testing new software before it's released. Sometimes we end up finding things which other distros (who have already done a mass rebuild for the new release) have missed, too.
- GCC 13
- We started testing with GCC 13 very early in Gentoo for loong support, see the various early blockers added to bug #865117. Working on these ended up making us ready for unleashing GCC 13 as early as possible once it was released and also helped the general FOSS porting effort as we upstreamed patches for issues we found.
- ICE building Python 3.12
- riscv build failure on musl
- Unable to build kernel (this ended up being a kernel bug but a workaround was applied in GCC too)
- -fchecking ICE
General bugs
List of general bugs we've found through testing but just in the wild rather than when specifically testing a pre-release.
TODO