Go to file
Rob Norris dec697ad68 libspl/assert: add lock around assertion output
If multiple threads trip an assertion at the same moment (quite common),
they can be printing at the same time, and their output gets messy.

This adds a simple lock around the whole thing, to prevent a second task
printing assert output before the first has finished.

Additionally, if libspl_assert_ok is not set, abort() is called without
dropping the lock, so that any other asserting tasks will be killed
before starting any output, rather than only getting part-way through.
This is a tradeoff; it's assumed that multiple threads asserting at the
same moment are likely the same fault in different instances of a
thread, and so there won't be any more useful information from the other
tasks anyway.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <robn@despairlabs.com>
Sponsored-by: https://despairlabs.com/sponsor/
Closes #16140
2024-05-01 10:51:54 -07:00
.github Move nodes into correct subgraphs 2024-01-29 09:16:02 -08:00
cmd vdev probe to slow disk can stall mmp write checker 2024-04-29 14:35:53 -07:00
config libspl/assert: show process/task details in assert output 2024-05-01 10:51:49 -07:00
contrib Python 3.12 deprecated python3-distutils 2024-04-25 13:40:09 -07:00
etc etc/init.d: decide which variant to use at build time. 2024-04-08 16:52:24 -07:00
include libzpool: set thread names 2024-05-01 10:51:44 -07:00
lib libspl/assert: add lock around assertion output 2024-05-01 10:51:54 -07:00
man vdev probe to slow disk can stall mmp write checker 2024-04-29 14:35:53 -07:00
module zio: try to execute TYPE_NULL ZIOs on the current task 2024-04-29 15:57:32 -07:00
rpm zfs-kmod: fix empty rpm requires/conflicts 2024-04-22 17:55:41 -07:00
scripts zts: add a debug option to get full test output 2024-04-16 09:13:01 -07:00
tests vdev probe to slow disk can stall mmp write checker 2024-04-29 14:35:53 -07:00
udev udev: correctly handle partition #16 and later 2024-03-21 16:38:24 -07:00
.cirrus.yml CI: add FreeBSD build with Cirrus CI 2023-10-06 08:50:26 -07:00
.editorconfig
.gitignore Packaging: Auto-generate changelog during configure (#15528) 2023-11-16 08:58:47 -08:00
.gitmodules
.mailmap AUTHORS: refresh with recent new contributors 2024-04-11 14:49:57 -07:00
AUTHORS AUTHORS: refresh with recent new contributors 2024-04-11 14:49:57 -07:00
autogen.sh Ubuntu 22.04 integration: ShellCheck 2022-11-18 11:24:48 -08:00
CODE_OF_CONDUCT.md Documentation corrections 2022-12-22 11:34:28 -08:00
configure.ac Packaging: Auto-generate changelog during configure (#15528) 2023-11-16 08:58:47 -08:00
copy-builtin
COPYRIGHT
LICENSE
Makefile.am
META Linux 6.8 compat: META (#16099) 2024-04-17 09:29:21 -07:00
NEWS
NOTICE
README.md FreeBSD: Fix the build on FreeBSD 12 2023-11-27 12:58:03 -08:00
RELEASES.md
TEST
zfs.release.in

img

OpenZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community. This repository contains the code for running OpenZFS on Linux and FreeBSD.

codecov coverity

Official Resources

Installation

Full documentation for installing OpenZFS on your favorite operating system can be found at the Getting Started Page.

Contribute & Develop

We have a separate document with contribution guidelines.

We have a Code of Conduct.

Release

OpenZFS is released under a CDDL license. For more details see the NOTICE, LICENSE and COPYRIGHT files; UCRL-CODE-235197

Supported Kernels

  • The META file contains the officially recognized supported Linux kernel versions.
  • Supported FreeBSD versions are any supported branches and releases starting from 12.4-RELEASE.