security/dogtag-pki: Fix incomplete javac classpath
base/tomcat-9.0 compiles against pki-common, whose classes carry
@JsonInclude, but does not list jackson-annotations, so javac cannot
resolve the annotation. Every other subproject already lists the jar.
Sponsored by: Netzkommune GmbH
security/dogtag-pki: Fix incomplete javac classpath
base/tomcat-9.0 compiles against pki-common, whose classes carry
@JsonInclude, but does not list jackson-annotations, so javac cannot
resolve the annotation. Every other subproject already lists the jar.
Sponsored by: Netzkommune GmbH
devel/jackson-databind: Update to 2.22.2
Closes twelve vulnerabilities: @JsonView and @JsonIgnore could be
by-passed in several ways, polymorphic type validation was incomplete,
and deserialization reached out to DNS and arbitrary URL schemes.
Security: 0cb401f9-9f19-11f1-a655-3497f65b111b
Changes: https://github.com/FasterXML/jackson-databind/blob/2.x/release-notes/VERSION-2.x
Sponsored by: Netzkommune GmbH
devel/jackson-databind: Update to 2.22.2
Closes twelve vulnerabilities: @JsonView and @JsonIgnore could be
by-passed in several ways, polymorphic type validation was incomplete,
and deserialization reached out to DNS and arbitrary URL schemes.
Security: 0cb401f9-9f19-11f1-a655-3497f65b111b
Changes: https://github.com/FasterXML/jackson-databind/blob/2.x/release-notes/VERSION-2.x
Sponsored by: Netzkommune GmbH
security/vuxml: Document jackson vulnerabilities
jackson-databind before 2.22.2 by-passes @JsonView and @JsonIgnore in
several ways and validates polymorphic types incompletely, jackson-core
before 2.22.2 can be driven past StreamReadConstraints.
Security: 0cb401f9-9f19-11f1-a655-3497f65b111b
Security: 0cb42b4a-9f19-11f1-a655-3497f65b111b
Sponsored by: Netzkommune GmbH
security/vuxml: Document jackson vulnerabilities
jackson-databind before 2.22.2 by-passes @JsonView and @JsonIgnore in
several ways and validates polymorphic types incompletely, jackson-core
before 2.22.2 can be driven past StreamReadConstraints.
Security: 0cb401f9-9f19-11f1-a655-3497f65b111b
Security: 0cb42b4a-9f19-11f1-a655-3497f65b111b
Sponsored by: Netzkommune GmbH
devel/jackson-annotations: Update to 2.22
Adds @JsonApplyView to switch the active JsonView on submodels,
@JsonSerializeAs and @JsonDeserializeAs, JsonTypeInfo.As.NOTHING, and
writeTypeIdForDefaultImpl to suppress the type id of default types.
@JsonIncludeProperties gained an order property, @JsonFormat a radix
property, and @JacksonInject an optional flag for values that need not
be present.
2.20 raised the baseline from Java 6 to Java 8 and started shipping
SBOMs.
Changes: https://github.com/FasterXML/jackson-annotations/blob/2.x/release-notes/VERSION-2.x
Sponsored by: Netzkommune GmbH
devel/jackson-annotations: Update to 2.22
Adds @JsonApplyView to switch the active JsonView on submodels,
@JsonSerializeAs and @JsonDeserializeAs, JsonTypeInfo.As.NOTHING, and
writeTypeIdForDefaultImpl to suppress the type id of default types.
@JsonIncludeProperties gained an order property, @JsonFormat a radix
property, and @JacksonInject an optional flag for values that need not
be present.
2.20 raised the baseline from Java 6 to Java 8 and started shipping
SBOMs.
Changes: https://github.com/FasterXML/jackson-annotations/blob/2.x/release-notes/VERSION-2.x
Sponsored by: Netzkommune GmbH
libspl: consult ZFS_HOSTID on FreeBSD as well
get_system_hostid() returns gethostid() on FreeBSD, so ZFS_HOSTID has
no effect there, while on Linux it overrides the SPL hostid. zloop.sh
exports it for the iterations which need a hostid, and the ztest(1)
ENVIRONMENT VARIABLES section describes it without restricting it to
one platform, so both should read it.
Check ZFS_HOSTID first and fall back to gethostid(), parsing and
masking the value exactly as the Linux implementation does. A value
which parses as zero is ignored there, so it is ignored here too.
Drop the "On Linux" qualifier from the -M description in ztest(1),
which this change makes untrue.
Suggested-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Michael Heller <michael.heller at gmail.com>
Closes #18918
Closes #18964
CI: run zloop with multihost testing enabled
Pass -M so the zloop workflow exercises multihost on a fraction of
its iterations.
Drop the zgenhostid call added by eb5c93fa8. It was there so ztest
could import a pool it had enabled multihost on, and zloop.sh now
supplies a hostid through ZFS_HOSTID for the iterations that need
one.
Suggested-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Michael Heller <michael.heller at gmail.com>
Closes #18918
Closes #18964
zloop.sh: add -M to run some iterations with multihost
Add an option to exercise multihost testing. It is off by default,
so a local zloop run needs no hostid and behaves as before.
When it is given, one iteration in five passes -M to ztest. Running
every iteration that way would cost the loop the dozen or so
operations ztest suppresses under -M, among them the zdb consistency
check. Skipping that check also makes those iterations finish about
twice as quickly, so a time limited loop completes proportionally
more of them. A raidz expansion iteration is left alone because
ztest forces -M off for one.
ztest needs a non-zero hostid to set the multihost property. Export
ZFS_HOSTID for the iterations that use -M rather than creating
/etc/hostid: the ZTS mmp test group skips itself when that file
exists, so creating it would disable that group on the same machine.
Suggested-by: Brian Behlendorf <behlendorf1 at llnl.gov>
[4 lines not shown]
ztest: create the pool with multihost enabled under -M
The -M option advertised simulating a pool imported on a remote host,
but nothing under it enabled multihost. The only writes to
spa_multihost were in ztest_mmp_enable_disable(), the function -M
disabled, so with that removed -M merely suppresses the operations
that conflict with multihost testing.
Add the multihost property to the pool ztest creates under -M. The
property persists, so subsequent imports run the MMP activity check,
which is the point of the option.
Setting it requires a non-zero hostid, since spa_prop_validate()
returns ENOTSUP without one. ztest creates its pool with VERIFY0(),
so -M on a host with no hostid would abort in ztest_init() rather
than explain itself. Check the hostid while processing options and
exit with a message instead.
Suppress the MMP write-failure suspension for such a run. ztest sets
[18 lines not shown]
ZTS: retry the zvol_misc_fua exports while the volume is busy
zvol_misc_fua exports and re-imports the pool for each of its two
blk-mq cases while the volume device exists, so an export can race with
the udev rule which opens it and fail with "pool is busy".
zvol_misc_trim has the same structure and already uses log_must_busy for
its exports.
Do the same here, so a transiently open device does not fail the test.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Michael Heller <75820586+mkhllr at users.noreply.github.com>
Closes #18970
scan: count skipped blocks as examined
dsl_scan_scrub_cb() passes a block outside the scan's txg range to
count_block_skipped() and returns before scn_examined is touched, so
scn_skipped can exceed scn_examined and the resume in dsl_scan_init()
wraps: zpool status reports 16.0E issued. The deferred resilver check
in dsl_scan_sync() reads the same counter, and a wrapped value never
falls below zfs_resilver_defer_percent, so a resilver that should
restart early stays deferred.
Count those blocks as examined as well as skipped; they were traversed,
and the two counters have to cover the same blocks. scn_phys is on
disk, so keep clamping the resume for pools an older version skewed,
and clamp scn_to_examine - scn_skipped, which wraps the same way.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Nick Price <nprice at FreeBSD.org>
Closes #18928
zstream: remove the enqueue mutex
The current zstream code uses an enqueue mutex to avoid the possibility
of enqueue notifications being dropped.
Unfortunately, the enqueue mutex is highly contested. Workers must hold
it while searching queues for work, while enqueuers must acquire it to
complete their enqueues. This contention results in a nontrivial
performance cost.
This PR removes the enqueue mutex and replaces it with a separate
dispatch thread. It also adds a lazy 100 microseconds between an
enqueue and the signal that wakes up a thread to service it. This
coalescing of notifications encourages larger batch sizes and reduces
the number of worker loops.
Other changes:
- There's now a pool-level count of unclaimed items that's maintained
[29 lines not shown]