Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View


Tags: Architectures Platforms default
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

Architectures Platforms default
наб
zfsprops.8: fix mispluralisation in "Default values is"

Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>

Pull-request: #11509 part 1/1
Brian Behlendorf
cppcheck: integrete cppcheck

In order for cppcheck to perform a proper analysis it needs to be
aware of how the sources are compiled (source files, include
paths/files, extra defines, etc).  All the needed information is
available from the Makefiles and can be leveraged with a generic
cppcheck Makefile target.  So let's add one.

Additional minor changes:

* Removing the cppcheck-suppressions.txt file.  With cppcheck 2.3
  and these changes it appears to no longer be needed.  Some inline
  suppressions were also removed since they appear not to be
  needed.  We can add them back if it turns out they're needed
  for older versions of cppcheck.

* Added the ax_count_cpus m4 macro to detect at configure time how
  many processors are available in order to run multiple cppcheck
  jobsa

* "PHONY =" line moved in to the Rules.am file which is included
  at the top of all Makefile.am's.  This is just convenient becase
  it allows us to use the += syntax to add phony targets.

* One upside of this integration worth mentioning is it now allows
  `make cppcheck` to be run in any directory to check that subtree.

* For the moment, cppcheck is not run against the FreeBSD specific
  kernel sources.  The cppcheck-FreeBSD target will need to be
  implemented and testing on FreeBSD to support this.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>

Pull-request: #11508 part 5/5
Brian Behlendorf
cppcheck: return value always 0

Identical condition and return expression 'rc', return value is
always 0.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>

Pull-request: #11508 part 4/5
Brian Behlendorf
cppcheck: remove redundant ASSERTs

The ASSERT that the passed pointer isn't NULL appears after the
pointer has already been dereferenced.  Remove the redundant check.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>

Pull-request: #11508 part 3/5
Brian Behlendorf
cppcheck: resolve double free

The double free reported for the realloc() failure branch is a
false positive.  It should be resolved in cppcheck 2.4 but for
the benefit of older versions we supress the warning.

    https://trac.cppcheck.net/ticket/9292

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>

Pull-request: #11508 part 2/5
Brian Behlendorf
cppcheck: zpool_main.c possible null pointer dereference

Explicitly check for NULL to satisfy cppcheck that "val" can never
be NULL when passed to printf().  This looks like a false positive
since is_blank_str() can never take the false conditional branch
when passed a NULL.  But there's no harm in adding the extra check.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>

Pull-request: #11508 part 1/5
Arshad Hussain
vdev_id: Add error message when $CONFIG is missing

It was observed that vdev_id exists silently when
the $CONFIG file is missing.

This patch adds error message in case vdev_id is
called without default $CONFIG or '-c'. This makes
end user observe the exit message more easily.

Before Patch:
~~~~~~~~~~~~~
$ ./cmd/vdev_id/vdev_id
$

After Patch:
~~~~~~~~~~~~
$ ./cmd/vdev_id/vdev_id
Error: Config file "/etc/zfs/vdev_id.conf" not found
$

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Closes #11498
Colm
Fix two minor lint errors (cppcheck)

Fix two minor errors reported by cppcheck:

In module/zfs/abd.c (abd_get_offset_impl), add non-NULL
assertion to prevent NULL dereference warning.

In module/zfs/arc.c (l2arc_write_buffers), change 'try'
variable to 'pass' to avoid C++ reserved word.

Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Colm Buckley <colm@tuatha.org>
Closes #11507
Lorenz Hüdepohl
dracut: Support /usr/bin as 'systemctl' path

On openSUSE the initrd has systemctl in /usr/bin, check this path as
well.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Richard Laager <rlaager@wiktel.com>
Signed-off-by: Lorenz Hüdepohl <dev@stellardeath.org>
Closes #11487
  • Fedora 33 x86_64 (TEST): built zfs failed -  stdio
Antonio Russo
Install zgenhostid to sbindir

zgenhostid(8) is used to modify or create /etc/hostid.  This
administrative tool is currently installed to bindir.  System utilities
are typically placed in sbin.

Modify the installation directory for zgenhostid.  Additionally, track
this change in its use in dracut and the rpm installation.

Authored-by: наб <nabijaczleweli@nabijaczleweli.xyz>
Authored-by: Antonio Russo <aerusso@aerusso.net>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Antonio Russo <aerusso@aerusso.net>
Closes #11485
sterlingjensen
Re-apply path sanitizer, as mount(8) still mangles it

Prior to util-linux 2.36.2, if a file or directory in the
current working directory was named 'dataset' then mount(8)
would prepend the current working directory to the dataset.

Eventually, we should be able to drop this workaround.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Sterling Jensen <sterlingjensen@users.noreply.github.com>
Closes #11295
Closes #11462
Antonio Russo
ZTS: avoid piping to special devices

As described in #11445, the kernel interface kernel_{read,write} no
longer act on special devices.  In the ZTS, zfs send and receive are
tested by piping to these devices, leading to spurious failures (for
positive tests) and may mask errors (for negative tests).

Until a more permanent mechanism to address this deficiency is
developed, clean up the output from the ZTS by avoiding directly piping
to or from /dev/null and /dev/zero.

For /dev/zero input, simply use a pipe: `cat </dev/zero |` .

However, for /dev/null output, the shell semantics for pipe failures
means that zfs send error codes will be masked by the successful
`| cat >/dev/null` command execution.  In that case, use a temporary
file under $TEST_BASE_DIR for output in favor.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Attila Fülöp <attila@fueloep.org>
Signed-off-by: Antonio Russo <aerusso@aerusso.net>
Closes #11478
Antonio Russo
ZTS: avoid race to unmount in zfs_rollback_001

The zfs_rollback_001 test modifies files in a temporary, test dataset
repeatedly.  Before each iteration, any preexisting dataset is removed,
after unmounted with umount -f, if necessary.

Add a short delay after the forced unmount, avoiding a race that can
prevent zfs destroy from succeeding, leading to a test failure.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Antonio Russo <aerusso@aerusso.net>
Closes #11451
Matthew Ahrens
assertion failed in arc_wait_for_eviction()

If the system is very low on memory (specifically,
`arc_free_memory() < arc_sys_free/2`, i.e. less than 1/16th of RAM
free), `arc_evict_state_impl()` will defer wakups.  In this case, the
arc_evict_waiter_t's remain on the list, even though `arc_evict_count`
has been incremented past their `aew_count`.

The problem is that `arc_wait_for_eviction()` assumes that if there are
waiters on the list, the count they are waiting for has not yet been
reached.  However, the deferred wakeups may violate this, causing
`ASSERT(last->aew_count > arc_evict_count)` to fail.

This commit resolves the issue by having new waiters use the greater of
`arc_evict_count` and the last `aew_count`.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Wilson <gwilson@delphix.com>
Reviewed-by: George Amanakis <gamanakis@gmail.com>
Signed-off-by: Matthew Ahrens <mahrens@delphix.com>
Closes #11285
Closes #11397
Matthew Macy
FreeBSD: minor_t needs to be signed so that -1 is recognized as such

zfsdev_close sets zs_minor to -1 to avoid duplicate calls to
destroy. This doesn't mix well with the current u_int used.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>
Closes #11437
Alexander Motin
Relax special_small_blocks assertion.

Follow up for commit 624222a, value asserted <= SPA_OLD_MAXBLOCKSIZE
instead of SPA_MAXBLOCKSIZE as it should be after the previous change.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Closes #11501
Matthew Macy
Add basic io_uring test

Provide a basic test coverage for io_uring I/O.

Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>
Closes #11497
Ryan Moeller
FreeBSD: upstream changes to VFS interface

Set VIRF_MOUNTPOINT flag on snapshot mountpoint.

Authored-by: Mateusz Guzik <mjg@FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ryan Moeller <ryan@iXsystems.com>
Closes #11458
Matt Macy
FreeBSD: fix HEAD build, conditionally remove FDSYNC defines

Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>
Closes #11458
Colm Buckley
Fix two minor lint errors (cppcheck).

Fix two minor errors reported by cppcheck:

In module/zfs/abd.c (abd_get_offset_impl), add non-NULL
assertion to prevent NULL dereference warning.

In module/zfs/arc.c (l2arc_write_buffers), change 'try'
variable to 'pass' to avoid C++ reserved word.

Signed-off-by: Colm Buckley <colm@tuatha.org>

Pull-request: #11507 part 1/1
Ryan Moeller
ZTS: Use swapctl to list swap devices on FreeBSD

Signed-off-by: Ryan Moeller <ryan@iXsystems.com>

Pull-request: #11503 part 1/1
Alan Somers
Speed up "zpool import" in the presence of many zvols

By default, FreeBSD does not allow zpools to be backed by zvols (that
can be changed with the "vfs.zfs.vol.recursive" sysctl). When that
sysctl is set to 0, the kernel does not attempt to read zvols when
looking for vdevs. But the zpool command still does. This change brings
the zpool command into line with the kernel's behavior. It speeds "zpool
import" when an already imported pool has many zvols, or a zvol with
many snapshots.

https://svnweb.freebsd.org/base?view=revision&revision=357235
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241083
https://reviews.freebsd.org/D22077

Obtained from: FreeBSD
PR: 241083
Reported by: Martin Birgmeier <d8zNeCFG@aon.at>
Sponsored by: Axcient
Signed-off-by: Alan Somers <asomers@gmail.com>

Pull-request: #11502 part 1/1
Matthew Ahrens
add test

Pull-request: #11489 part 2/2
Matthew Ahrens
RAIDZ2/3 fails to heal silently corrupted parity w/2+ bad disks

When scrubbing, (non-sequential) resilvering, or correcting a checksum
error using RAIDZ parity, ZFS should heal any incorrect RAIDZ parity by
overwriting it.  For example, if P disks are silently corrupted (P being
the number of failures tolerated; e.g. RAIDZ2 has P=2), `zpool scrub`
should detect and heal all the bad state on these disks, including
parity.  This way if there is a subsequent failure we are fully
protected.

With RAIDZ2 or RAIDZ3, a block can have silent damage to a parity
sector, and also damage (silent or known) to a data sector.  In this
case the parity should be healed but it is not.

The problem can be noticed by scrubbing the pool twice.  Assuming there
was no damage concurrent with the scrubs, the first scrub should fix all
silent damage, and the second scrub should be "clean" (`zpool status`
should not report checksum errors on any disks).  If the bug is
encountered, then the second scrub will repair the silently-damaged
parity that the first scrub failed to repair, and these checksum errors
will be reported after the second scrub.  Since the first scrub repaired
all the damaged data, the bug can not be encountered during the second
scrub, so subsequent scrubs (more than two) are not necessary.

The root cause of the problem is some code that was inadvertently added
to `raidz_parity_verify()` by the DRAID changes.  The incorrect code
causes the parity healing to be aborted if there is damaged data
(`rc_error != 0`) or the data disk is not present (`!rc_tried`).  These
checks are not necessary, because we only call `raidz_parity_verify()`
if we have the correct data (which may have been reconstructed using
parity, and which was verified by the checksum).

This commit fixes the problem by removing the incorrect checks in
`raidz_parity_verify()`.

Signed-off-by: Matthew Ahrens <mahrens@delphix.com>

Pull-request: #11489 part 1/2
Alan Somers
ZFS: add mutex protection to metaslab_class_t.mc_historgram

The mc_histogram fields were unprotected when that code was first
written in "Illumos 4976-4984 - metaslab improvements" (OpenZFS
f3a7f6610f2df0217ba3b99099019417a954b673).  The lock wasn't added until
3dfb57a35e8cbaa7c424611235d669f3c575ada1, though it's unclear exactly
which fields it's supposed to protect.  In any case, it wasn't until
vdev_load was parallelized that any code attempted concurrent access to
those fields.

Signed-off-by:  Alan Somers <asomers@gmail.com>

Pull-request: #11470 part 5/5
Alan Somers
fixup to "ZFS: Use a taskqueue to parallelize vdev_validate"

It's safe for multiple threads to call vdev_label_read_config as long as
they access separate vdevs, because it only touches one vdev's config.
Check the lock in the same way as the similarly parallelized vdev_open.

Signed-off-by: Alan Somers <asomers@gmail.com>

Pull-request: #11470 part 4/5
Alan Somers
ZFS: Use a taskqueue to parallelize vdev_validate

The runtime of vdev_validate is dominated by the disk accesses in
vdev_label_read_config.  Speed it up by validating all vdevs in
parallel.

Sponsored by: Axcient
Signed-off-by: Alan Somers <asomers@gmail.com>

Pull-request: #11470 part 3/5
Alan Somers
zfs: read all disk labels concurrently in vdev_label_read_config

This is similar to what we already do in vdev_geom_read_config.

Sponsored by: Axcient
Signed-off-by: Alan Somers <asomers@gmail.com>

Pull-request: #11470 part 2/5
Alan Somers
Parallelize vdev_load

metaslab_init is the slowest part of importing a mature pool, and it
must be repeated hundreds of times for each top-level vdev.  But its
speed is dominated by a few serialized disk accesses.  That can lead to
import times of > 1 hour for pools with many top-level vdevs on spinny
disks.

Speed up the import by using a taskqueue to parallelize vdev_load across
all top-level vdevs.

Sponsored by: Axcient
Signed-off-by: Alan Somers <asomers@gmail.com>

Pull-request: #11470 part 1/5
Colm Buckley
Delete superfluous abi file.

Signed-off-by: Colm Buckley <colm@tuatha.org>

Pull-request: #11468 part 8/8
Colm Buckley
Add "features" property for zpool feature sets [2021]

Property to allow sets of features to be specified;
influences the behavior of 'zpool upgrade' and 'zpool create'.
Initial man page changes included.

Brief synopsis:

zpool create -o features=all|none|file[,file...] pool vdev...

features = all : request that all features be enabled
features = none : request that no features be enabled
features = file[,file...] : read features from the specified files.
Only features present in *all* files will be enabled on the resulting
pool.

Only affects zpool create, zpool upgrade and zpool status.

ABI changes in libzfs:

* New function "zpool_load_features" to load and parse feature files.
* Add "zpool_features_status_t" typedef for feature parse status.
* Add ZPOOL_PROP_FEATURES to the pool properties enum
* Add ZPOOL_STATUS_FEAT_ERR to the pool status enum

Signed-off-by: Colm Buckley <colm@tuatha.org>

Pull-request: #11468 part 1/1
Colm Buckley
Add "features" property for zpool feature sets [2021]

Property to allow sets of features to be specified;
influences the behavior of 'zpool upgrade' and 'zpool create'.
Initial man page changes included.

Brief synopsis:

zpool create -o features=all|none|file[,file...] pool vdev...

features = all : request that all features be enabled
features = none : request that no features be enabled
features = file[,file...] : read features from the specified files.
Only features present in *all* files will be enabled on the resulting
pool.

Only affects zpool create, zpool upgrade and zpool status.

ABI changes in libzfs:

* New function "zpool_load_features" to load and parse feature files.
* Add "zpool_features_status_t" typedef for feature parse status.
* Add ZPOOL_PROP_FEATURES to the pool properties enum
* Add ZPOOL_STATUS_FEAT_ERR to the pool status enum

Signed-off-by: Colm Buckley <colm@tuatha.org>

Pull-request: #11468 part 1/1
  • Kernel.org Built-in x86_64 (BUILD): cloning zfs -  stdio
Colm Buckley
Add "features" property for zpool feature sets [2021]

Property to allow sets of features to be specified;
influences the behavior of 'zpool upgrade' and 'zpool create'.
Initial man page changes included.

(This is a clean rebase against master as of 2021-01-15.)

Brief synopsis:

zpool create -o features=all|none|file[,file...] pool vdev...

features = all : request that all features be enabled
features = none : request that no features be enabled
features = file[,file...] : read features from the specified files.
Only features present in *all* files will be enabled on the resulting
pool.

Only affects zpool create, zpool upgrade and zpool status.

ABI changes in libzfs:

* Added function "zpool_load_features" to load and parse feature files.
* Added ZPOOL_PROP_FEATURES to the pool properties enum
* Added ZPOOL_STATUS_FEAT_ERR to the pool status enum

Signed-off-by: Colm Buckley <colm@tuatha.org>

Pull-request: #11468 part 1/1
Colm Buckley
Updating ABI files after integrating upstream changes.

Signed-off-by: Colm Buckley <colm@tuatha.org>

Pull-request: #11468 part 2/2
Colm Buckley
Add "features" property for zpool feature sets [2021]

Property to allow sets of features to be specified;
influences the behavior of 'zpool upgrade' and 'zpool create'.
Initial man page changes included.

(This is a clean rebase against master as of 2021-01-15.)

Brief synopsis:

zpool create -o features=all|none|file[,file...] pool vdev...

features = all : request that all features be enabled
features = none : request that no features be enabled
features = file[,file...] : read features from the specified files.
Only features present in *all* files will be enabled on the resulting
pool.

Only affects zpool create, zpool upgrade and zpool status.

Signed-off-by: Colm Buckley <colm@tuatha.org>

Pull-request: #11468 part 1/2
matt
Async dmu support

- Integrate with zvol and vnops

- Add asynchronous rangelock acquisition.
o Make rangelock acquisition strictly FCFS while
  eliminating potential recursion when executing
  acquisition callbacks
o Add debug support for dumping held rangelocks.
- Add async read write to ztest
- add taskq ctor and dtor callbacks
- Add arc_watch support to FreeBSD kmod.

Initially based on old code from SpectraLogic.

Co-authored-by: Will Andrews <wca@FreeBSD.org>
Co-authored-by: Matt Macy <mmacy@FreeBSD.org>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>

Requires-builders: centos7,centos8,centostream8,fedora33,ubuntu20,freebsd12,freebsd13,coverage

Pull-request: #10377 part 1/1
matt
Async dmu support

- Integrate with zvol and vnops

- Add asynchronous rangelock acquisition.
o Make rangelock acquisition strictly FCFS while
  eliminating potential recursion when executing
  acquisition callbacks
o Add debug support for dumping held rangelocks.
- Add async read write to ztest
- add taskq ctor and dtor callbacks
- Add arc_watch support to FreeBSD kmod.

Initially based on old code from SpectraLogic.

Co-authored-by: Will Andrews <wca@FreeBSD.org>
Co-authored-by: Matt Macy <mmacy@FreeBSD.org>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>

Pull-request: #10377 part 1/1
Matt Macy
Async dmu support

- Integrate with zvol and vnops

- Add asynchronous rangelock acquisition.
o Make rangelock acquisition strictly FCFS while
  eliminating potential recursion when executing
  acquisition callbacks
o Add debug support for dumping held rangelocks.
- Add async read write to ztest
- add taskq ctor and dtor callbacks
- Add arc_watch support to FreeBSD kmod.

Initially based on old code from SpectraLogic.

Co-authored-by: Will Andrews <wca@FreeBSD.org>
Co-authored-by: Matt Macy <mmacy@FreeBSD.org>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>

Pull-request: #10377 part 1/1
Matt Macy
Async dmu support

- Integrate with zvol and vnops

- Add asynchronous rangelock acquisition.
o Make rangelock acquisition strictly FCFS while
  eliminating potential recursion when executing
  acquisition callbacks
o Add debug support for dumping held rangelocks.
- Add async read write to ztest
- add taskq ctor and dtor callbacks
- Add arc_watch support to FreeBSD kmod.

Initially based on old code from SpectraLogic.

Co-authored-by: Will Andrews <wca@FreeBSD.org>
Co-authored-by: Matt Macy <mmacy@FreeBSD.org>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>

Pull-request: #10377 part 1/1
Matthew Ahrens
fix receive of DRR_WRITE_EMBEDDED

Pull-request: #8853 part 61/61