[OpenWrt-Devel] [PATCH 0/2] musl: fix locking synchronization bug

Matthias Schiffer mschiffer at universe-factory.net
Sat May 23 15:55:19 EDT 2020

This imports the proposed patch series [2] for the critical locking
synchronization bug recently found in musl [1].

As [3] recommends, this is done in 2 steps: The first patch contains only
the bugfix itself, which should be safe to backport to 19.07 and older
right away. Note that the issue doesn't seem to hit older OpenWrt
releases in practice - it was discovered due to frequent crashes of
fastd in Gluon since we updated to OpenWrt 19.07 - so a new 18.06.x
release seems not as urgent as 19.07.x.

The second patch contains the rest of the patch series, which is:

- a fix for a related, but less critical bug
- a small optimization related to the fixes
- a fixed version of the lock-skipping to restore a potential
  performance regression caused by the first patch for programs that are
  singlethreaded most of the time.

I propose to apply the full series to OpenWrt master, as there are no
obvious issues, and the performance regression fix can get better
testing this way.

I have also pushed this to my staging tree [4].

[1] https://www.openwall.com/lists/musl/2020/05/22/3
[2] https://www.openwall.com/lists/musl/2020/05/22/10
[3] https://twitter.com/musllibc/status/1263955586540089344
[4] https://git.openwrt.org/?p=openwrt/staging/neoraider.git;a=summary

Matthias Schiffer (2):
  musl: fix locking synchronization bug
  musl: restore lock skipping for mostly-singlethreaded programs, and
    related patches

 ...ist-unlink-in-pthread_exit-after-all.patch | 51 +++++++++++
 ...hreads_minus_1-as-relaxed-atomic-for.patch | 69 ++++++++++++++
 ...own-size-of-some-libc-struct-members.patch | 25 ++++++
 ...pping-for-processes-that-return-to-s.patch | 90 +++++++++++++++++++
 4 files changed, 235 insertions(+)
 create mode 100644 toolchain/musl/patches/500-0001-reorder-thread-list-unlink-in-pthread_exit-after-all.patch
 create mode 100644 toolchain/musl/patches/500-0002-don-t-use-libc.threads_minus_1-as-relaxed-atomic-for.patch
 create mode 100644 toolchain/musl/patches/500-0003-cut-down-size-of-some-libc-struct-members.patch
 create mode 100644 toolchain/musl/patches/500-0004-restore-lock-skipping-for-processes-that-return-to-s.patch


openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list