På lørdag 4. juli 2026 kl. 13:21, skrev Volker Schlecht
<[email protected]>:

> Here's an update to the previous proposal that does away with the need to
> maintain *any* forked versions of upstream projects. That should make future
> updates less involved.
>
> It also simplifies the README: The default configuration is installed in
> ${SYSCONFDIR}/niri so it's not something that needs to be handled manually
> anymore.
>
> On 7/1/26 7:07 PM, Volker Schlecht wrote:
> > Here's an update to wayland/niri that I have been running happily for a 
> > couple
> > of weeks now:
> >
> > * Update to latest upstream release
> >
> > * enable dbus feature, and add RUN_DEPENDS on x11/dbus
> >
> > * replace startniri.sh by niri-session to match the upstream script of the
> >    same name. That brings us closer to how niri works on Linux
> >
> > * use dbus-run-session to start the niri session, which takes care of the
> >    necessary environment variables
> >
> > * install the default xdg-desktop-portal configuration
> >
> > * enable pipewire support and screencast support
> >
> > * add a RUN_DEPENDS on wayland/swaylock, since it's used by the default 
> > config
> >
> > * remove the patch to use wofi in the default config, since we have fuzzel 
> > now
> >    (upstream default); change RUN_DEPENDS accordingly
> >
> > * remove the render node from the default configuration (it's not needed 
> > since
> >    the last port update)
> >
> > * @sample the default configuration
> >
> > * Fix License (It's GPLv3 or later)
> >
> > Most of the patches needed can now be handled in the port itself, but
> > unfortunately Smithay still needs to be patched upstream - the diff pulls it
> > from my github repo for testing purposes.
> >
> > Testing and feedback welcome :)
> >
>

Looks like this subsequent diff continued.

// rm'd wayland/niri and then redownloaded it with cvs -q -PdAC

// Applied new patch
$ cd /usr/ports/wayland/niri/ && patch -l -p0 -E < /tmp/niri-26.04.diff

// Built, packaged, tests, checks
$ cd /usr/ports/wayland/niri/ && make clean build package test ; make 
port-lib-depends-check check-shlib-syms

===>  Regression tests for niri-26.04
warning: `panic` setting is ignored for `bench` profile
       Fresh pkg-config v0.3.33
       Fresh winnow v1.0.1
       Fresh toml_parser v1.1.2+spec-1.1.0
       Fresh toml_datetime v1.1.1+spec-1.1.0
       Fresh heck v0.5.0
       Fresh once_cell v1.21.4
       Fresh errno v0.3.14
       Fresh autocfg v1.5.0
       Fresh target-lexicon v0.13.3
       Fresh serde_spanned v1.1.1
       Fresh toml v1.1.2+spec-1.1.0
       Fresh cfg-expr v0.20.7
       Fresh rustix v1.1.4
       Fresh version-compare v0.2.1
       Fresh system-deps v7.0.8
       Fresh shlex v1.3.0
       Fresh version_check v0.9.5
       Fresh find-msvc-tools v0.1.9
       Fresh cc v1.2.60
       Fresh pin-project-lite v0.2.17
       Fresh serde_derive v1.0.228
       Fresh memchr v2.8.0
       Fresh slab v0.4.12
       Fresh toml_edit v0.25.11+spec-1.1.0
       Fresh futures-io v0.3.32
       Fresh proc-macro-crate v3.5.0
       Fresh futures-core v0.3.32
       Fresh smallvec v1.15.1
       Fresh crossbeam-utils v0.8.21
       Fresh serde_core v1.0.228
       Fresh dlib v0.5.3
       Fresh enumflags2_derive v0.7.12
       Fresh memoffset v0.9.1
       Fresh polling v3.11.0
       Fresh parking v2.2.1
       Fresh wayland-sys v0.31.11
       Fresh zvariant_derive v5.9.2
       Fresh concurrent-queue v2.5.0
       Fresh scoped-tls v1.0.1
       Fresh downcast-rs v1.2.1
       Fresh wayland-backend v0.3.15
       Fresh serde v1.0.228
       Fresh quick-xml v0.39.2
       Fresh tracing-core v0.1.36
       Fresh unicode-ident v1.0.24
       Fresh cfg_aliases v0.2.1
       Fresh proc-macro2 v1.0.106
       Fresh wayland-scanner v0.31.10
       Fresh tracing-attributes v0.1.31
       Fresh glob v0.3.3
       Fresh quote v1.0.45
       Fresh tracing v0.1.44
       Fresh event-listener v5.4.1
       Fresh async-task v4.7.1
       Fresh event-listener-strategy v0.5.4
       Fresh syn v2.0.117
       Fresh getrandom v0.3.4
       Fresh futures-lite v2.6.1
       Fresh thiserror-impl v1.0.69
       Fresh cfg-if v1.0.4
       Fresh winnow v0.7.15
       Fresh minimal-lexical v0.2.1
       Fresh nom v7.1.3
       Fresh zvariant_utils v3.3.0
       Fresh libloading v0.8.9
       Fresh thiserror v1.0.69
       Fresh wayland-client v0.31.14
       Fresh zerocopy v0.8.48
       Fresh libc v0.2.185
       Fresh enumflags2 v0.7.12
       Fresh unicode-width v0.2.2
       Fresh endi v1.1.1
       Fresh annotate-snippets v0.11.5
       Fresh itertools v0.13.0
       Fresh zvariant v5.9.2
       Fresh clang-sys v1.8.1
       Fresh glib-sys v0.21.5
       Fresh libm v0.2.16
       Fresh cexpr v0.6.0
       Fresh rustc-hash v2.1.2
       Fresh bitflags v2.11.1
       Fresh bindgen v0.72.1
       Fresh num-traits v0.2.19
       Fresh async-io v2.6.0
       Fresh rustix v0.38.44
       Fresh zbus_names v4.3.1
       Fresh wayland-server v0.31.13
       Fresh signal-hook-registry v1.4.8
       Fresh atomic-waker v1.1.2
       Fresh piper v0.2.5
       Fresh async-signal v0.2.14
       Fresh gobject-sys v0.21.5
       Fresh async-channel v2.5.0
       Fresh async-lock v3.4.2
       Fresh quick-xml v0.38.4
       Fresh futures-macro v0.3.32
       Fresh bytemuck_derive v1.10.2
       Fresh utf8parse v0.2.2
       Fresh futures-task v0.3.32
       Fresh futures-util v0.3.32
       Fresh anstyle-parse v1.0.0
       Fresh bytemuck v1.25.0
       Fresh zbus_xml v5.1.0
       Fresh async-process v2.5.0
       Fresh blocking v1.6.2
       Fresh typenum v1.19.0
       Fresh wayland-protocols v0.32.12
       Fresh zbus_macros v5.13.2
       Fresh async-executor v1.14.0
       Fresh async-broadcast v0.7.2
       Fresh uuid v1.23.1
       Fresh ordered-stream v0.2.0
       Fresh serde_repr v0.1.20
       Fresh async-trait v0.1.89
       Fresh anstyle-query v1.1.5
       Fresh hex v0.4.3
       Fresh colorchoice v1.0.5
       Fresh anstyle v1.0.14
       Fresh is_terminal_polyfill v1.70.2
       Fresh anstream v1.0.0
       Fresh zbus v5.13.2
       Fresh generic-array v0.14.7
       Fresh zbus-lockstep-macros v0.5.2
       Fresh zbus-lockstep v0.5.2
       Fresh ahash v0.8.12
       Fresh getrandom v0.4.2
       Fresh drm-sys v0.8.1
       Fresh drm-fourcc v2.2.0
       Fresh rand_core v0.9.5
       Fresh thiserror-impl v2.0.18
       Fresh is-terminal v0.4.17
       Fresh strsim v0.11.1
       Fresh static_assertions v1.1.0
       Fresh xkeysym v0.2.1
       Fresh clap_lex v1.1.0
       Fresh regex-syntax v0.8.10
       Fresh clap_builder v4.6.0
       Fresh atspi-common v0.9.0
       Fresh thiserror v2.0.18
       Fresh drm-ffi v0.9.1
       Fresh tempfile v3.27.0
       Fresh gio-sys v0.21.5
       Fresh khronos_api v3.1.0
       Fresh futures-executor v0.3.32
       Fresh calloop v0.13.0
       Fresh ppv-lite86 v0.2.21
       Fresh futures-channel v0.3.32
       Fresh glib-macros v0.21.5
       Fresh aho-corasick v1.1.4
       Fresh clap_derive v4.6.1
       Fresh memmap2 v0.9.10
       Fresh fastrand v2.4.1
       Fresh xml-rs v0.8.28
       Fresh cursor-icon v1.2.0
       Fresh semver v1.0.28
       Fresh xcursor v0.3.10
       Fresh log v0.4.29
       Fresh gl_generator v0.14.0
       Fresh wayland-cursor v0.31.14
       Fresh wayland-csd-frame v0.3.0
       Fresh phf_generator v0.13.1
       Fresh clap v4.6.1
       Fresh regex-automata v0.4.14
       Fresh glib v0.21.5
       Fresh rand_chacha v0.9.0
       Fresh calloop-wayland-source v0.3.0
       Fresh drm v0.14.1
       Fresh nix v0.31.2
       Fresh proc-macro-error-attr v1.0.4
       Fresh uncased v0.9.10
       Fresh libudev-sys v0.1.4
       Fresh io-lifetimes v1.0.11
       Fresh syn v1.0.109
       Fresh crypto-common v0.1.7
       Fresh block-buffer v0.10.4
       Fresh wayland-protocols-wlr v0.3.12
       Fresh gethostname v1.1.0
       Fresh smawk v0.3.2
       Fresh unicode-width v0.1.14
       Fresh unicode-linebreak v0.1.5
       Fresh is_ci v1.2.0
       Fresh siphasher v1.0.2
       Fresh foldhash v0.1.5
       Fresh as-raw-xcb-connection v1.0.1
       Fresh simd-adler32 v0.3.9
       Fresh x11rb-protocol v0.13.2
       Fresh allocator-api2 v0.2.21
       Fresh hashbrown v0.14.5
       Fresh x11rb v0.13.2
       Fresh hashbrown v0.15.5
       Fresh phf_shared v0.13.1
       Fresh supports-color v2.1.0
       Fresh textwrap v0.15.2
       Fresh heck v0.4.1
       Fresh smithay-client-toolkit v0.19.2
       Fresh digest v0.10.7
       Fresh proc-macro-error v1.0.4
       Fresh udev v0.9.3
       Fresh calloop v0.14.4
       Fresh rand v0.9.4
       Fresh pango-sys v0.21.5
       Fresh cairo-sys-rs v0.21.5
       Fresh libseat-sys v0.2.0
       Fresh x11-dl v2.21.0
       Fresh phf_macros v0.13.1
       Fresh paste v1.0.15
       Fresh pixman-sys v0.1.0
       Fresh zmij v1.0.21
       Fresh input-sys v1.19.0
       Fresh gbm-sys v0.4.0
       Fresh atspi-proxies v0.9.0
       Fresh xkbcommon-dl v0.4.2
       Fresh supports-unicode v2.1.0
       Fresh supports-hyperlinks v2.1.0
       Fresh libspa-sys v0.9.2
       Fresh wayland-protocols-plasma v0.3.12
       Fresh approx v0.4.0
       Fresh profiling-procmacros v1.0.17
       Fresh miette-derive v5.10.0
       Fresh terminal_size v0.1.17
       Fresh percent-encoding v2.3.2
       Fresh equivalent v1.0.2
       Fresh smol_str v0.2.2
       Fresh accesskit v0.21.1
       Fresh owo-colors v3.5.0
       Fresh raw-window-handle v0.6.2
       Fresh cpufeatures v0.2.17
       Fresh adler2 v2.0.1
       Fresh hashbrown v0.17.0
       Fresh unicode-segmentation v1.13.2
       Fresh dpi v0.1.2
       Fresh itoa v1.0.18
       Fresh serde_json v1.0.149
       Fresh winit v0.30.13
       Fresh convert_case v0.8.0
       Fresh indexmap v2.14.0
       Fresh miniz_oxide v0.8.9
       Fresh sha2 v0.10.9
       Fresh miette v5.10.0
       Fresh accesskit_consumer v0.31.0
       Fresh profiling v1.0.17
       Fresh cgmath v0.18.0
       Fresh atspi-connection v0.9.0
       Fresh gbm v0.18.0
       Fresh input v0.10.0
       Fresh libdisplay-info-sys v0.3.0
       Fresh pixman v0.2.1
       Fresh phf v0.13.1
       Fresh libseat v0.2.4
       Fresh knuffel-derive v3.2.0
       Fresh nix v0.30.1
       Fresh tracy-client-sys v0.28.0
       Fresh crc32fast v1.5.0
       Fresh chumsky v0.9.3
       Fresh gio v0.21.5
       Fresh xkbcommon v0.9.0
       Fresh wayland-protocols-misc v0.3.12
       Fresh wayland-egl v0.32.11
       Fresh crossbeam-epoch v0.9.18
       Fresh nom v8.0.0
       Fresh libdisplay-info-derive v0.1.1
       Fresh cookie-factory v0.3.3
       Fresh atomic_float v1.1.0
       Fresh option-ext v0.2.0
       Fresh lazy_static v1.5.0
       Fresh appendlist v1.4.0
       Fresh aliasable v0.1.3
       Fresh base64 v0.21.7
       Fresh knuffel v3.2.0
       Fresh smithay v0.7.0 (/usr/ports/pobj/niri-26.04/smithay)
warning: unused import: `os::unix::io::AsFd`
  --> /usr/ports/pobj/niri-26.04/smithay/src/wayland/drm_syncobj/mod.rs:44:5
   |
44 |     os::unix::io::AsFd,
   |     ^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `device`
  --> /usr/ports/pobj/niri-26.04/smithay/src/wayland/drm_syncobj/mod.rs:69:33
   |
69 | pub fn supports_syncobj_eventfd(device: &DrmDeviceFd) -> bool {
   |                                 ^^^^^^ help: if this is intentional, 
prefix it with an underscore: `_device`
   |
   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: missing documentation for a method
   --> 
/usr/ports/pobj/niri-26.04/smithay/src/wayland/drm_syncobj/sync_point.rs:136:5
    |
136 |     pub fn eventfd(&self) -> io::Result<Arc<OwnedFd>> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
note: the lint level is defined here
   --> /usr/ports/pobj/niri-26.04/smithay/src/lib.rs:2:9
    |
  2 | #![warn(missing_docs, missing_debug_implementations, rust_2018_idioms)]
    |         ^^^^^^^^^^^^

warning: `smithay` (lib) generated 3 warnings (run `cargo fix --lib -p smithay` 
to apply 1 suggestion)
       Fresh sharded-slab v0.1.7
       Fresh dirs-sys v0.5.0
       Fresh libspa v0.9.2
       Fresh libdisplay-info v0.3.0
       Fresh crossbeam-deque v0.8.6
       Fresh pango v0.21.5
       Fresh flate2 v1.1.9
       Fresh tracy-client v0.18.4
       Fresh csscolorparser v0.8.3
       Fresh atspi v0.25.0
       Fresh pipewire-sys v0.9.2
       Fresh pangocairo-sys v0.21.5
       Fresh accesskit_atspi_common v0.14.2
       Fresh niri-ipc v26.4.0 (/usr/ports/pobj/niri-26.04/niri/niri-ipc)
       Fresh anyhow v1.0.102
       Fresh cairo-rs v0.21.5
       Fresh fdeflate v0.3.7
       Fresh matchers v0.2.0
       Fresh regex v1.12.3
       Fresh clap_complete v4.6.2
       Fresh tracing-log v0.2.0
       Fresh thread_local v1.1.9
       Fresh git-version-macro v0.3.9
       Fresh wait-timeout v0.2.1
       Fresh fnv v1.0.7
       Fresh nu-ansi-term v0.50.3
       Fresh quick-error v1.2.3
       Fresh bit-vec v0.8.0
       Fresh bit-set v0.8.0
       Fresh rusty-fork v0.3.1
       Fresh tracing-subscriber v0.3.23
       Fresh git-version v0.3.9
       Fresh clap_complete_nushell v4.6.0
       Fresh niri-config v26.4.0 (/usr/ports/pobj/niri-26.04/niri/niri-config)
       Fresh png v0.18.1
       Fresh pangocairo v0.21.5
       Fresh pipewire v0.9.2
       Fresh accesskit_unix v0.17.2
       Fresh rayon-core v1.13.0
       Fresh smithay-drm-extras v0.1.0 
(/usr/ports/pobj/niri-26.04/smithay/smithay-drm-extras)
       Fresh directories v6.0.0
       Fresh rand_xorshift v0.4.0
       Fresh atomic v0.6.1
       Fresh ordered-float v5.3.0
       Fresh keyframe v1.1.1
       Fresh sd-notify v0.5.0
       Fresh console v0.16.3
       Fresh similar v2.7.0
       Fresh glam v0.32.1
       Fresh xshell-macros v0.2.7
       Fresh arrayvec v0.7.6
       Fresh unarray v0.1.4
       Fresh either v1.15.0
       Fresh rayon v1.12.0
       Fresh proptest v1.11.0
       Fresh xshell v0.2.7
       Fresh insta v1.47.2
       Fresh calloop-wayland-source v0.4.1
       Fresh approx v0.5.1
       Fresh proptest-derive v0.8.0
       Fresh niri v26.4.0 (/usr/ports/pobj/niri-26.04/niri)
    Finished `release` profile [optimized] target(s) in 8.41s
     Running 
`/usr/ports/pobj/niri-26.04/target/release/deps/niri-a1e0eca78d504c6a`

running 195 tests
test animation::clock::tests::rate_change ... ok
test animation::spring::tests::overdamped_spring_duration_panic ... ok
test animation::spring::tests::overdamped_spring_equal_from_to_nan ... ok
test animation::clock::tests::frozen_clock ... ok
test backend::tty::tests::test_calc_cvt ... ok
test backend::tty::tests::test_calculate_drmmode_from_modeline ... ok
test input::tests::bindings_suppress_keys ... ok
test input::tests::comp_mod_handling ... ok
test ipc::client::tests::test_fmt_rounded ... ok
test layout::scrolling::tests::large_fractional_strut ... ok
test layout::scrolling::tests::working_area_starts_at_physical_pixel ... ok
test layout::tests::add_and_remove_output ... ok
test layout::tests::add_window_next_to_only_interactively_moved_without_outputs 
... ok
test layout::tests::animations::clientside_height_change_doesnt_animate ... ok
test layout::tests::animations::clientside_height_change_during_another_y_anim 
... ok
test layout::tests::animations::height_resize_and_back ... ok
test layout::tests::animations::height_resize_and_back_during_another_y_anim 
... ok
test layout::tests::animations::height_resize_and_cancel ... ok
test layout::tests::animations::height_resize_and_cancel_during_another_y_anim 
... ok
test layout::tests::animations::height_resize_animates_next_y ... ok
test dbus::mutter_display_config::tests::test_format_diagonal ... ok
test layout::tests::animations::height_resize_before_another_y_anim_then_cancel 
... ok
test 
layout::tests::animations::height_resize_cancel_with_stationary_second_window 
... ok
test layout::tests::animations::width_resize_and_cancel ... ok
test layout::tests::animations::width_resize_and_cancel_of_column_to_the_left 
... ok
test layout::tests::close_window_empty_ws_above_first ... ok
test layout::tests::config_change_updates_cached_sizes ... ok
test layout::tests::animations::height_resize_before_another_y_anim_then_back 
... ok
test layout::tests::empty_workspaces_dont_move_back_to_original_output ... ok
test layout::tests::expel_pending_left_from_fullscreen_tabbed_column ... ok
test layout::tests::fullscreen::disable_tabbed_mode_in_fullscreen ... ok
test layout::tests::fullscreen::fullscreen ... ok
test layout::tests::fullscreen::fullscreen_to_windowed_fullscreen ... ok
test 
layout::tests::fullscreen::interactive_move_restore_to_floating_animates_view_offset
 ... ok
test 
layout::tests::fullscreen::interactive_move_unfullscreen_to_floating_stops_dnd_scroll
 ... ok
test 
layout::tests::fullscreen::interactive_resize_on_pending_unfullscreen_column 
... ok
test 
layout::tests::fullscreen::move_pending_unfullscreen_window_out_of_active_column
 ... ok
test 
layout::tests::fullscreen::move_unfocused_pending_unfullscreen_window_out_of_active_column
 ... ok
test 
layout::tests::fullscreen::one_window_in_column_becomes_weight_1_after_fullscreen
 ... ok
test layout::tests::fixed_height_takes_max_non_auto_into_account ... ok
test 
layout::tests::fullscreen::removing_only_fullscreen_tile_updates_view_offset 
... ok
test layout::tests::fullscreen::unfullscreen_of_tabbed_preserves_view_pos ... ok
test layout::tests::fullscreen::unfullscreen_preserves_view_pos ... ok
test 
layout::tests::fullscreen::unfullscreen_of_tabbed_via_change_to_normal_preserves_view_pos
 ... ok
test 
layout::tests::fullscreen::unfullscreen_view_offset_not_reset_during_dnd_gesture
 ... ok
test 
layout::tests::fullscreen::unfullscreen_view_offset_not_reset_during_gesture 
... ok
test 
layout::tests::fullscreen::unfullscreen_view_offset_not_reset_during_ongoing_gesture
 ... ok
test layout::tests::fullscreen::unfullscreen_view_offset_not_reset_on_gesture 
... ok
test layout::tests::fullscreen::unfullscreen_view_offset_not_reset_on_consume 
... ok
test 
layout::tests::fullscreen::unfullscreen_view_offset_not_reset_on_quick_double_toggle
 ... ok
test layout::tests::fullscreen::unfullscreen_view_offset_not_reset_on_removal 
... ok
test 
layout::tests::fullscreen::unfullscreen_view_offset_set_on_fullscreening_inactive_tile_in_column
 ... ok
test layout::tests::fullscreen::unfullscreen_window_in_column ... ok
test layout::tests::fullscreen::unfullscreen_with_large_border ... ok
test layout::tests::fullscreen::windowed_fullscreen_to_fullscreen ... ok
test layout::tests::interactive_move_drop_on_other_output_during_animation ... 
ok
test layout::tests::interactive_move_from_workspace_with_layout_config ... ok
test layout::tests::interactive_move_onto_empty_output_ewaf ... ok
test layout::tests::interactive_move_onto_first_empty_workspace ... ok
test layout::tests::interactive_move_onto_last_workspace ... ok
test layout::tests::interactive_move_toggle_floating_ends_dnd_gesture ... ok
test layout::tests::interactive_resize_to_negative ... ok
test layout::tests::large_max_size ... ok
test layout::tests::large_negative_height_change ... ok
test 
layout::tests::move_column_to_workspace_down_focus_false_on_floating_window ... 
ok
test layout::tests::move_column_to_workspace_focus_false_on_floating_window ... 
ok
test layout::tests::interactive_move_onto_empty_output ... ok
test layout::tests::move_column_to_workspace_maximize_and_fullscreen ... ok
test layout::tests::move_column_to_workspace_unfocused_with_multiple_monitors 
... ok
test layout::tests::move_to_workspace_by_idx_does_not_leave_empty_workspaces 
... ok
test layout::tests::move_window_to_different_output ... ok
test layout::tests::move_window_to_empty_workspace_above_first ... ok
test layout::tests::move_window_to_workspace_maximize_and_fullscreen ... ok
test layout::tests::move_window_to_workspace_with_different_active_output ... ok
test layout::tests::move_workspace_to_output ... ok
test layout::tests::move_workspace_to_same_monitor_doesnt_reorder ... ok
test layout::tests::named_workspace_to_output ... ok
test layout::tests::named_workspace_to_output_ewaf ... ok
test 
layout::tests::named_workspaces_dont_update_original_output_on_adding_window 
... ok
test layout::tests::open_right_of_on_different_workspace ... ok
test layout::tests::one_window_in_column_becomes_weight_1 ... ok
test layout::tests::operations_dont_panic ... ok
test layout::tests::operations_from_starting_state_dont_panic ... ok
test layout::tests::output_active_workspace_is_preserved ... ok
test layout::tests::output_active_workspace_is_preserved_with_other_outputs ... 
ok
test layout::tests::preset_column_width_fixed_correct_with_border ... ok
test layout::tests::preset_column_width_reset_after_set_width ... ok
test layout::tests::preset_height_change_removes_preset ... ok
test layout::tests::primary_active_workspace_idx_not_updated_on_output_add ... 
ok
test layout::tests::open_right_of_on_different_workspace_ewaf ... ok
test layout::tests::removing_all_outputs_preserves_empty_named_workspaces ... ok
test layout::tests::removing_output_must_keep_empty_focus_on_primary ... ok
test layout::tests::removing_window_above_preserves_focused_window ... ok
test layout::tests::restore_to_floating_persists_across_fullscreen_maximize ... 
ok
test layout::tests::random_operations_dont_panic ... ok
test layout::tests::set_first_workspace_name_ewaf ... ok
test layout::tests::set_height_fixed_negative ... ok
test layout::tests::set_first_workspace_name ... ok
test layout::tests::set_last_workspace_name ... ok
test layout::tests::set_width_fixed_negative ... ok
test layout::tests::stacking_activate_brings_up_descendants ... ok
test layout::tests::set_window_height_recomputes_to_auto ... ok
test layout::tests::stacking_add_parent_brings_up_child ... ok
test layout::tests::stacking_set_parent_brings_up_child ... ok
test layout::tests::stacking_add_parent_brings_up_descendants ... ok
test layout::tests::start_interactive_move_then_remove_window ... ok
test layout::tests::switch_ewaf_on ... ok
test layout::tests::switch_ewaf_off ... ok
test layout::tests::tabs_with_different_border ... ok
test layout::tests::unmaximize_during_fullscreen_does_not_float ... ok
test layout::tests::window_closed_on_previous_workspace ... ok
test layout::tests::windows_on_other_workspaces_remain_activated ... ok
test layout::tests::workspace_cleanup_during_switch ... ok
test layout::tests::workspace_render_geo_at_fractional_scale ... ok
test layout::tests::workspace_transfer_during_switch ... ok
test layout::tests::workspace_transfer_during_switch_gets_cleaned_up ... ok
test layout::tests::workspaces_update_original_output_on_moving_to_same_monitor 
... ok
test layout::tests::workspaces_update_original_output_on_moving_to_same_output 
... ok
test layout::tests::workspace_transfer_during_switch_from_last ... ok
Failed to create /niri-26.04_writes_to_HOME for shader cache (Permission 
denied)---disabling.
Failed to create /niri-26.04_writes_to_HOME for shader cache (Permission 
denied)---disabling.
test tests::animations::egl_clientside_height_change_doesnt_animate ... ok
test tests::floating::floating_doesnt_store_fullscreen_size ... ok
test tests::animations::egl_height_resize_animates_next_y ... ok
test tests::floating::floating_doesnt_store_maximized_size ... ok
test tests::floating::floating_respects_non_fixed_min_max_rule ... ok
test 
tests::floating::interactive_move_restores_floating_size_when_set_to_floating 
... ok
test tests::floating::interactive_move_unfullscreen_to_floating_restores_size 
... ok
test tests::floating::interactive_move_unmaximize_to_floating_restores_size ... 
ok
test tests::floating::moving_across_workspaces_doesnt_cancel_resize ... ok
test tests::floating::moving_to_floating_doesnt_cancel_resize ... ok
test tests::floating::repeated_size_request ... ok
test tests::floating::resize_during_interactive_move_propagates_to_floating ... 
ok
test tests::floating::resize_in_steps ... ok
test tests::floating::resize_to_different_size ... ok
test tests::floating::resize_to_different_then_same ... ok
test tests::floating::resize_to_same_size ... ok
test tests::floating::restore_floating_size ... ok
test tests::floating::set_window_width_uses_current_height ... ok
test tests::floating::set_window_height_uses_current_width ... ok
test tests::floating::state_change_doesnt_break_use_window_size ... ok
test tests::floating::unfocus_preserves_current_size ... ok
test tests::floating::unfullscreen_to_floating_doesnt_send_extra_configure ... 
ok
test tests::floating::unfullscreen_to_same_size_floating ... ok
test tests::floating::unfullscreen_to_same_size_same_bounds_floating ... ok
test tests::floating::unfullscreen_to_same_size_windowed_fullscreen_floating 
... ok
test tests::floating::unmap_from_floating ... ok
test tests::floating::unmaximize_to_floating_doesnt_send_extra_configure ... ok
test tests::floating::unmaximize_to_same_size_floating ... ok
test tests::floating::unmaximize_to_same_size_same_bounds_floating ... ok
test tests::floating::unmaximize_to_same_size_windowed_fullscreen_floating ... 
ok
test 
tests::fullscreen::interactive_move_unfullscreen_to_scrolling_restores_size ... 
ok
test tests::fullscreen::interactive_move_unmaximize_to_scrolling_restores_size 
... ok
test 
tests::fullscreen::unfullscreen_before_fullscreen_ack_doesnt_prevent_view_offset_save_restore
 ... ok
test tests::fullscreen::windowed_fullscreen ... ok
test tests::fullscreen::windowed_fullscreen_chain ... ok
test tests::layer_shell::margin_overflow ... ok
test tests::layer_shell::multiple_commits_before_mapping ... ok
test tests::layer_shell::simple_top_anchor ... ok
test tests::remove_output::set_fullscreen_on_removed_output_does_not_panic ... 
ok
test tests::layer_shell::unmap_through_null_buffer ... ok
test tests::transactions::column_resize_waits_for_both_windows ... ok
error in client communication (pid 53989)
xdg_surface#10: error 3: must ack the initial configure before attaching buffer
test tests::window_opening::dont_ack_initial_configure - should panic ... ok
test tests::window_opening::simple ... ok
test tests::window_opening::simple_no_workspaces ... ok
test tests::window_opening::fullscreen_maximize ... ok
test tests::window_opening::target_size ... ok
test ui::hotkey_overlay::tests::test_format_bind ... ok
test ui::mru::tests::random_operations_dont_panic ... ok
test ui::mru::tests::remove_last_window_out_of_two ... ok
test utils::region::tests::non_overlapping_output ... ok
test utils::region::tests::test_region_to_non_overlapping_rects ... ok
test utils::scale::tests::guess_monitor_scale_unknown_size ... ok
test utils::scale::tests::test_guess_monitor_scale ... ok
test utils::scale::tests::test_round_scale ... ok
test utils::tests::test_clamp_preferring_top_left ... ok
test utils::watcher::tests::broken_include_still_gets_watched ... ok
test utils::watcher::tests::change_file ... ok
test utils::watcher::tests::change_file_in_linked_dir ... ok
test utils::watcher::tests::change_included_file ... ok
test utils::watcher::tests::change_linked_file ... ok
test utils::watcher::tests::create_dir_and_file ... ok
test utils::watcher::tests::create_file ... ok
test utils::watcher::tests::nested_includes ... ok
test utils::watcher::tests::overwrite_but_dont_change_file ... ok
test utils::watcher::tests::recreate_dir ... ok
test utils::watcher::tests::recreate_file ... ok
test utils::watcher::tests::remove_dir ... ok
test utils::watcher::tests::remove_file ... ok
test utils::watcher::tests::remove_included_file ... ok
test utils::watcher::tests::swap_dir ... ok
test utils::watcher::tests::swap_dir_link ... ok
test utils::watcher::tests::swap_just_link ... ok
test utils::watcher::tests::swap_many_links_regular_like_nix ... FAILED
test utils::watcher::tests::swap_many_regular ... ok
test utils::watcher::tests::touch_file ... ok

thread '<unnamed>' (554026) panicked at src/tests/client.rs:162:47:
called `Result::unwrap()` on an `Err` value: IoError(Os { code: 24, kind: 
Uncategorized, message: "Too many open files" })
stack backtrace:
   0:      0x6657a313835 - 
<<std[fc6f109810c393f0]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace
 as core[d6c71fd35ad5e3c0]::fmt::Display>::fmt
   1:      0x6657a3305d1 - core[d6c71fd35ad5e3c0]::fmt::write
   2:      0x6657a319d8b - <alloc[2a4aeedb65e7e9d2]::vec::Vec<u8> as 
std[fc6f109810c393f0]::io::Write>::write_fmt
   3:      0x6657a2f0b31 - 
std[fc6f109810c393f0]::panicking::default_hook::{closure#0}
   4:      0x6657a30cef6 - std[fc6f109810c393f0]::panicking::default_hook
   5:      0x66579b7f907 - 
test[5de5e50b8b91b6f7]::test_main_with_exit_callback::<test[5de5e50b8b91b6f7]::test_main::{closure#0}>::{closure#0}
   6:      0x6657a30d259 - std[fc6f109810c393f0]::panicking::panic_with_hook
   7:      0x6657a2f0bf9 - 
std[fc6f109810c393f0]::panicking::panic_handler::{closure#0}
   8:      0x6657a2e75ad - 
std[fc6f109810c393f0]::sys::backtrace::__rust_end_short_backtrace::<std[fc6f109810c393f0]::panicking::panic_handler::{closure#0},
 !>
   9:      0x6657a2f1ac1 - __rustc[b1da763420d39311]::rust_begin_unwind
  10:      0x6657a330dc0 - core[d6c71fd35ad5e3c0]::panicking::panic_fmt
  11:      0x6657a330b66 - core[d6c71fd35ad5e3c0]::result::unwrap_failed
  12:      0x66579a259d7 - niri::tests::client::Client::new::hb9799cab7f107440
  13:      0x665796c0724 - 
niri::tests::fixture::Fixture::add_client::h6fd7bc0cc2c2e517
  14:      0x665795c42f7 - core::ops::function::impls::<impl 
core::ops::function::FnMut<A> for &F>::call_mut::h6de222654a20237a
  15:      0x665798efaaf - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  16:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  17:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  18:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  19:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  20:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  21:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  22:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  23:      0x66579b4d1bc - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h64f2f6ba1fa1746b
  24:      0x66579bb8d80 - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  25:      0x66579bb9116 - 
rayon_core::registry::ThreadBuilder::run::hc352a0b7af06c78a
  26:      0x66579bb7a9d - 
std::sys::backtrace::__rust_begin_short_backtrace::ha0c2c1b40a7dd591
  27:      0x66579bb829f - 
core::ops::function::FnOnce::call_once{{vtable.shim}}::h4ff23ff0ed2323f7
  28:      0x6657a312512 - 
<std[fc6f109810c393f0]::sys::thread::unix::Thread>::new::thread_start
  29:      0x667832050d2 - _rthread_start
                               at /usr/src/lib/librthread/rthread.c:99:11
  30:      0x667f7ba435a - __tfork_thread
                               at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87:0

thread '<unnamed>' (519765) panicked at src/tests/fixture.rs:109:65:
called `Result::unwrap()` on an `Err` value: Os { code: 24, kind: 
Uncategorized, message: "Too many open files" }
stack backtrace:
   0:      0x6657a313835 - 
<<std[fc6f109810c393f0]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace
 as core[d6c71fd35ad5e3c0]::fmt::Display>::fmt
   1:      0x6657a3305d1 - core[d6c71fd35ad5e3c0]::fmt::write
   2:      0x6657a319d8b - <alloc[2a4aeedb65e7e9d2]::vec::Vec<u8> as 
std[fc6f109810c393f0]::io::Write>::write_fmt
   3:      0x6657a2f0b31 - 
std[fc6f109810c393f0]::panicking::default_hook::{closure#0}
   4:      0x6657a30cef6 - std[fc6f109810c393f0]::panicking::default_hook
   5:      0x66579b7f907 - 
test[5de5e50b8b91b6f7]::test_main_with_exit_callback::<test[5de5e50b8b91b6f7]::test_main::{closure#0}>::{closure#0}
   6:      0x6657a30d259 - std[fc6f109810c393f0]::panicking::panic_with_hook
   7:      0x6657a2f0bf9 - 
std[fc6f109810c393f0]::panicking::panic_handler::{closure#0}
   8:      0x6657a2e75ad - 
std[fc6f109810c393f0]::sys::backtrace::__rust_end_short_backtrace::<std[fc6f109810c393f0]::panicking::panic_handler::{closure#0},
 !>
   9:      0x6657a2f1ac1 - __rustc[b1da763420d39311]::rust_begin_unwind
  10:      0x6657a330dc0 - core[d6c71fd35ad5e3c0]::panicking::panic_fmt
  11:      0x6657a330b66 - core[d6c71fd35ad5e3c0]::result::unwrap_failed
  12:      0x665796c0970 - 
niri::tests::fixture::Fixture::add_client::h6fd7bc0cc2c2e517
  13:      0x665795c42f7 - core::ops::function::impls::<impl 
core::ops::function::FnMut<A> for &F>::call_mut::h6de222654a20237a
  14:      0x665798efaaf - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  15:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  16:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  17:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  18:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  19:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  20:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  21:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  22:      0x66579bb8d80 - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  23:      0x66579bb9116 - 
rayon_core::registry::ThreadBuilder::run::hc352a0b7af06c78a
  24:      0x66579bb7a9d - 
std::sys::backtrace::__rust_begin_short_backtrace::ha0c2c1b40a7dd591
  25:      0x66579bb829f - 
core::ops::function::FnOnce::call_once{{vtable.shim}}::h4ff23ff0ed2323f7
  26:      0x6657a312512 - 
<std[fc6f109810c393f0]::sys::thread::unix::Thread>::new::thread_start
  27:      0x667832050d2 - _rthread_start
                               at /usr/src/lib/librthread/rthread.c:99:11
  28:      0x667f7ba435a - __tfork_thread
                               at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87:0

thread '<unnamed>' (519765) panicked at src/tests/fixture.rs:109:65:
called `Result::unwrap()` on an `Err` value: Os { code: 24, kind: 
Uncategorized, message: "Too many open files" }
stack backtrace:
   0:      0x6657a313835 - 
<<std[fc6f109810c393f0]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace
 as core[d6c71fd35ad5e3c0]::fmt::Display>::fmt
   1:      0x6657a3305d1 - core[d6c71fd35ad5e3c0]::fmt::write
   2:      0x6657a319d8b - <alloc[2a4aeedb65e7e9d2]::vec::Vec<u8> as 
std[fc6f109810c393f0]::io::Write>::write_fmt
   3:      0x6657a2f0b31 - 
std[fc6f109810c393f0]::panicking::default_hook::{closure#0}
   4:      0x6657a30cef6 - std[fc6f109810c393f0]::panicking::default_hook
   5:      0x66579b7f907 - 
test[5de5e50b8b91b6f7]::test_main_with_exit_callback::<test[5de5e50b8b91b6f7]::test_main::{closure#0}>::{closure#0}
   6:      0x6657a30d259 - std[fc6f109810c393f0]::panicking::panic_with_hook
   7:      0x6657a2f0bf9 - 
std[fc6f109810c393f0]::panicking::panic_handler::{closure#0}
   8:      0x6657a2e75ad - 
std[fc6f109810c393f0]::sys::backtrace::__rust_end_short_backtrace::<std[fc6f109810c393f0]::panicking::panic_handler::{closure#0},
 !>
   9:      0x6657a2f1ac1 - __rustc[b1da763420d39311]::rust_begin_unwind
  10:      0x6657a330dc0 - core[d6c71fd35ad5e3c0]::panicking::panic_fmt
  11:      0x6657a330b66 - core[d6c71fd35ad5e3c0]::result::unwrap_failed
  12:      0x665796c0970 - 
niri::tests::fixture::Fixture::add_client::h6fd7bc0cc2c2e517
  13:      0x665795c42f7 - core::ops::function::impls::<impl 
core::ops::function::FnMut<A> for &F>::call_mut::h6de222654a20237a
  14:      0x665798efaaf - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  15:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  16:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  17:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  18:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  19:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  20:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  21:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  22:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  23:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  24:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  25:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  26:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  27:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  28:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  29:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  30:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  31:      0x66579bb8d80 - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  32:      0x66579bb9116 - 
rayon_core::registry::ThreadBuilder::run::hc352a0b7af06c78a
  33:      0x66579bb7a9d - 
std::sys::backtrace::__rust_begin_short_backtrace::ha0c2c1b40a7dd591
  34:      0x66579bb829f - 
core::ops::function::FnOnce::call_once{{vtable.shim}}::h4ff23ff0ed2323f7
  35:      0x6657a312512 - 
<std[fc6f109810c393f0]::sys::thread::unix::Thread>::new::thread_start
  36:      0x667832050d2 - _rthread_start
                               at /usr/src/lib/librthread/rthread.c:99:11
  37:      0x667f7ba435a - __tfork_thread
                               at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87:0

thread '<unnamed>' (519765) panicked at src/tests/client.rs:162:47:
called `Result::unwrap()` on an `Err` value: IoError(Os { code: 24, kind: 
Uncategorized, message: "Too many open files" })
stack backtrace:
   0:      0x6657a313835 - 
<<std[fc6f109810c393f0]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace
 as core[d6c71fd35ad5e3c0]::fmt::Display>::fmt
   1:      0x6657a3305d1 - core[d6c71fd35ad5e3c0]::fmt::write
   2:      0x6657a319d8b - <alloc[2a4aeedb65e7e9d2]::vec::Vec<u8> as 
std[fc6f109810c393f0]::io::Write>::write_fmt
   3:      0x6657a2f0b31 - 
std[fc6f109810c393f0]::panicking::default_hook::{closure#0}
   4:      0x6657a30cef6 - std[fc6f109810c393f0]::panicking::default_hook
   5:      0x66579b7f907 - 
test[5de5e50b8b91b6f7]::test_main_with_exit_callback::<test[5de5e50b8b91b6f7]::test_main::{closure#0}>::{closure#0}
   6:      0x6657a30d259 - std[fc6f109810c393f0]::panicking::panic_with_hook
   7:      0x6657a2f0bf9 - 
std[fc6f109810c393f0]::panicking::panic_handler::{closure#0}
   8:      0x6657a2e75ad - 
std[fc6f109810c393f0]::sys::backtrace::__rust_end_short_backtrace::<std[fc6f109810c393f0]::panicking::panic_handler::{closure#0},
 !>
   9:      0x6657a2f1ac1 - __rustc[b1da763420d39311]::rust_begin_unwind
  10:      0x6657a330dc0 - core[d6c71fd35ad5e3c0]::panicking::panic_fmt
  11:      0x6657a330b66 - core[d6c71fd35ad5e3c0]::result::unwrap_failed
  12:      0x66579a259d7 - niri::tests::client::Client::new::hb9799cab7f107440
  13:      0x665796c0724 - 
niri::tests::fixture::Fixture::add_client::h6fd7bc0cc2c2e517
  14:      0x665795c42f7 - core::ops::function::impls::<impl 
core::ops::function::FnMut<A> for &F>::call_mut::h6de222654a20237a
  15:      0x665798efaaf - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  16:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  17:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  18:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  19:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  20:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  21:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  22:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  23:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  24:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  25:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  26:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  27:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  28:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  29:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  30:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  31:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  32:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  33:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  34:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  35:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  36:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  37:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  38:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  39:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  40:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  41:      0x66579bb8d80 - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  42:      0x66579bb9116 - 
rayon_core::registry::ThreadBuilder::run::hc352a0b7af06c78a
  43:      0x66579bb7a9d - 
std::sys::backtrace::__rust_begin_short_backtrace::ha0c2c1b40a7dd591
  44:      0x66579bb829f - 
core::ops::function::FnOnce::call_once{{vtable.shim}}::h4ff23ff0ed2323f7
  45:      0x6657a312512 - 
<std[fc6f109810c393f0]::sys::thread::unix::Thread>::new::thread_start
  46:      0x667832050d2 - _rthread_start
                               at /usr/src/lib/librthread/rthread.c:99:11
  47:      0x667f7ba435a - __tfork_thread
                               at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87:0

thread '<unnamed>' (519765) panicked at src/tests/client.rs:162:47:
called `Result::unwrap()` on an `Err` value: IoError(Os { code: 24, kind: 
Uncategorized, message: "Too many open files" })
stack backtrace:
   0:      0x6657a313835 - 
<<std[fc6f109810c393f0]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace
 as core[d6c71fd35ad5e3c0]::fmt::Display>::fmt
   1:      0x6657a3305d1 - core[d6c71fd35ad5e3c0]::fmt::write
   2:      0x6657a319d8b - <alloc[2a4aeedb65e7e9d2]::vec::Vec<u8> as 
std[fc6f109810c393f0]::io::Write>::write_fmt
   3:      0x6657a2f0b31 - 
std[fc6f109810c393f0]::panicking::default_hook::{closure#0}
   4:      0x6657a30cef6 - std[fc6f109810c393f0]::panicking::default_hook
   5:      0x66579b7f907 - 
test[5de5e50b8b91b6f7]::test_main_with_exit_callback::<test[5de5e50b8b91b6f7]::test_main::{closure#0}>::{closure#0}
   6:      0x6657a30d259 - std[fc6f109810c393f0]::panicking::panic_with_hook
   7:      0x6657a2f0bf9 - 
std[fc6f109810c393f0]::panicking::panic_handler::{closure#0}
   8:      0x6657a2e75ad - 
std[fc6f109810c393f0]::sys::backtrace::__rust_end_short_backtrace::<std[fc6f109810c393f0]::panicking::panic_handler::{closure#0},
 !>
   9:      0x6657a2f1ac1 - __rustc[b1da763420d39311]::rust_begin_unwind
  10:      0x6657a330dc0 - core[d6c71fd35ad5e3c0]::panicking::panic_fmt
  11:      0x6657a330b66 - core[d6c71fd35ad5e3c0]::result::unwrap_failed
  12:      0x66579a259d7 - niri::tests::client::Client::new::hb9799cab7f107440
  13:      0x665796c0724 - 
niri::tests::fixture::Fixture::add_client::h6fd7bc0cc2c2e517
  14:      0x665795c42f7 - core::ops::function::impls::<impl 
core::ops::function::FnMut<A> for &F>::call_mut::h6de222654a20237a
  15:      0x665798efaaf - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  16:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  17:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  18:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  19:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  20:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  21:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  22:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  23:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  24:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  25:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  26:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  27:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  28:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  29:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  30:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  31:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  32:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  33:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  34:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  35:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  36:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  37:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  38:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  39:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  40:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  41:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  42:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  43:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  44:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  45:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  46:      0x66579bb8d80 - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  47:      0x66579bb9116 - 
rayon_core::registry::ThreadBuilder::run::hc352a0b7af06c78a
  48:      0x66579bb7a9d - 
std::sys::backtrace::__rust_begin_short_backtrace::ha0c2c1b40a7dd591
  49:      0x66579bb829f - 
core::ops::function::FnOnce::call_once{{vtable.shim}}::h4ff23ff0ed2323f7
  50:      0x6657a312512 - 
<std[fc6f109810c393f0]::sys::thread::unix::Thread>::new::thread_start
  51:      0x667832050d2 - _rthread_start
                               at /usr/src/lib/librthread/rthread.c:99:11
  52:      0x667f7ba435a - __tfork_thread
                               at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87:0

thread '<unnamed>' (519765) panicked at src/tests/client.rs:162:47:
called `Result::unwrap()` on an `Err` value: IoError(Os { code: 24, kind: 
Uncategorized, message: "Too many open files" })
stack backtrace:
   0:      0x6657a313835 - 
<<std[fc6f109810c393f0]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace
 as core[d6c71fd35ad5e3c0]::fmt::Display>::fmt
   1:      0x6657a3305d1 - core[d6c71fd35ad5e3c0]::fmt::write
   2:      0x6657a319d8b - <alloc[2a4aeedb65e7e9d2]::vec::Vec<u8> as 
std[fc6f109810c393f0]::io::Write>::write_fmt
   3:      0x6657a2f0b31 - 
std[fc6f109810c393f0]::panicking::default_hook::{closure#0}
   4:      0x6657a30cef6 - std[fc6f109810c393f0]::panicking::default_hook
   5:      0x66579b7f907 - 
test[5de5e50b8b91b6f7]::test_main_with_exit_callback::<test[5de5e50b8b91b6f7]::test_main::{closure#0}>::{closure#0}
   6:      0x6657a30d259 - std[fc6f109810c393f0]::panicking::panic_with_hook
   7:      0x6657a2f0bf9 - 
std[fc6f109810c393f0]::panicking::panic_handler::{closure#0}
   8:      0x6657a2e75ad - 
std[fc6f109810c393f0]::sys::backtrace::__rust_end_short_backtrace::<std[fc6f109810c393f0]::panicking::panic_handler::{closure#0},
 !>
   9:      0x6657a2f1ac1 - __rustc[b1da763420d39311]::rust_begin_unwind
  10:      0x6657a330dc0 - core[d6c71fd35ad5e3c0]::panicking::panic_fmt
  11:      0x6657a330b66 - core[d6c71fd35ad5e3c0]::result::unwrap_failed
  12:      0x66579a259d7 - niri::tests::client::Client::new::hb9799cab7f107440
  13:      0x665796c0724 - 
niri::tests::fixture::Fixture::add_client::h6fd7bc0cc2c2e517
  14:      0x665795c42f7 - core::ops::function::impls::<impl 
core::ops::function::FnMut<A> for &F>::call_mut::h6de222654a20237a
  15:      0x665798efaaf - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  16:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  17:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  18:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  19:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  20:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  21:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  22:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  23:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  24:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  25:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  26:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  27:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  28:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  29:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  30:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  31:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  32:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  33:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  34:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  35:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  36:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  37:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  38:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  39:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  40:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  41:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  42:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  43:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  44:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  45:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  46:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  47:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  48:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  49:      0x66579bb8d80 - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  50:      0x66579bb9116 - 
rayon_core::registry::ThreadBuilder::run::hc352a0b7af06c78a
  51:      0x66579bb7a9d - 
std::sys::backtrace::__rust_begin_short_backtrace::ha0c2c1b40a7dd591
  52:      0x66579bb829f - 
core::ops::function::FnOnce::call_once{{vtable.shim}}::h4ff23ff0ed2323f7
  53:      0x6657a312512 - 
<std[fc6f109810c393f0]::sys::thread::unix::Thread>::new::thread_start
  54:      0x667832050d2 - _rthread_start
                               at /usr/src/lib/librthread/rthread.c:99:11
  55:      0x667f7ba435a - __tfork_thread
                               at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87:0

thread '<unnamed>' (554026) panicked at src/tests/client.rs:162:47:
called `Result::unwrap()` on an `Err` value: IoError(Os { code: 24, kind: 
Uncategorized, message: "Too many open files" })
stack backtrace:
   0:      0x6657a313835 - 
<<std[fc6f109810c393f0]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace
 as core[d6c71fd35ad5e3c0]::fmt::Display>::fmt
   1:      0x6657a3305d1 - core[d6c71fd35ad5e3c0]::fmt::write
   2:      0x6657a319d8b - <alloc[2a4aeedb65e7e9d2]::vec::Vec<u8> as 
std[fc6f109810c393f0]::io::Write>::write_fmt
   3:      0x6657a2f0b31 - 
std[fc6f109810c393f0]::panicking::default_hook::{closure#0}
   4:      0x6657a30cef6 - std[fc6f109810c393f0]::panicking::default_hook
   5:      0x66579b7f907 - 
test[5de5e50b8b91b6f7]::test_main_with_exit_callback::<test[5de5e50b8b91b6f7]::test_main::{closure#0}>::{closure#0}
   6:      0x6657a30d259 - std[fc6f109810c393f0]::panicking::panic_with_hook
   7:      0x6657a2f0bf9 - 
std[fc6f109810c393f0]::panicking::panic_handler::{closure#0}
   8:      0x6657a2e75ad - 
std[fc6f109810c393f0]::sys::backtrace::__rust_end_short_backtrace::<std[fc6f109810c393f0]::panicking::panic_handler::{closure#0},
 !>
   9:      0x6657a2f1ac1 - __rustc[b1da763420d39311]::rust_begin_unwind
  10:      0x6657a330dc0 - core[d6c71fd35ad5e3c0]::panicking::panic_fmt
  11:      0x6657a330b66 - core[d6c71fd35ad5e3c0]::result::unwrap_failed
  12:      0x66579a259d7 - niri::tests::client::Client::new::hb9799cab7f107440
  13:      0x665796c0724 - 
niri::tests::fixture::Fixture::add_client::h6fd7bc0cc2c2e517
  14:      0x665795c42f7 - core::ops::function::impls::<impl 
core::ops::function::FnMut<A> for &F>::call_mut::h6de222654a20237a
  15:      0x665798efaaf - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  16:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  17:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  18:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  19:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  20:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  21:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  22:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  23:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  24:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  25:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  26:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  27:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  28:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  29:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  30:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  31:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  32:      0x66579b4d1bc - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h64f2f6ba1fa1746b
  33:      0x66579bb8d80 - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  34:      0x66579bb9116 - 
rayon_core::registry::ThreadBuilder::run::hc352a0b7af06c78a
  35:      0x66579bb7a9d - 
std::sys::backtrace::__rust_begin_short_backtrace::ha0c2c1b40a7dd591
  36:      0x66579bb829f - 
core::ops::function::FnOnce::call_once{{vtable.shim}}::h4ff23ff0ed2323f7
  37:      0x6657a312512 - 
<std[fc6f109810c393f0]::sys::thread::unix::Thread>::new::thread_start
  38:      0x667832050d2 - _rthread_start
                               at /usr/src/lib/librthread/rthread.c:99:11
  39:      0x667f7ba435a - __tfork_thread
                               at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87:0

thread '<unnamed>' (519765) panicked at src/tests/client.rs:162:47:
called `Result::unwrap()` on an `Err` value: IoError(Os { code: 24, kind: 
Uncategorized, message: "Too many open files" })
stack backtrace:
   0:      0x6657a313835 - 
<<std[fc6f109810c393f0]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace
 as core[d6c71fd35ad5e3c0]::fmt::Display>::fmt
   1:      0x6657a3305d1 - core[d6c71fd35ad5e3c0]::fmt::write
   2:      0x6657a319d8b - <alloc[2a4aeedb65e7e9d2]::vec::Vec<u8> as 
std[fc6f109810c393f0]::io::Write>::write_fmt
   3:      0x6657a2f0b31 - 
std[fc6f109810c393f0]::panicking::default_hook::{closure#0}
   4:      0x6657a30cef6 - std[fc6f109810c393f0]::panicking::default_hook
   5:      0x66579b7f907 - 
test[5de5e50b8b91b6f7]::test_main_with_exit_callback::<test[5de5e50b8b91b6f7]::test_main::{closure#0}>::{closure#0}
   6:      0x6657a30d259 - std[fc6f109810c393f0]::panicking::panic_with_hook
   7:      0x6657a2f0bf9 - 
std[fc6f109810c393f0]::panicking::panic_handler::{closure#0}
   8:      0x6657a2e75ad - 
std[fc6f109810c393f0]::sys::backtrace::__rust_end_short_backtrace::<std[fc6f109810c393f0]::panicking::panic_handler::{closure#0},
 !>
   9:      0x6657a2f1ac1 - __rustc[b1da763420d39311]::rust_begin_unwind
  10:      0x6657a330dc0 - core[d6c71fd35ad5e3c0]::panicking::panic_fmt
  11:      0x6657a330b66 - core[d6c71fd35ad5e3c0]::result::unwrap_failed
  12:      0x66579a259d7 - niri::tests::client::Client::new::hb9799cab7f107440
  13:      0x665796c0724 - 
niri::tests::fixture::Fixture::add_client::h6fd7bc0cc2c2e517
  14:      0x665795c42f7 - core::ops::function::impls::<impl 
core::ops::function::FnMut<A> for &F>::call_mut::h6de222654a20237a
  15:      0x665798efaaf - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  16:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  17:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  18:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  19:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  20:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  21:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  22:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  23:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  24:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  25:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  26:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  27:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  28:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  29:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  30:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  31:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  32:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  33:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  34:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  35:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  36:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  37:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  38:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  39:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  40:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  41:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  42:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  43:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  44:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  45:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  46:      0x66579bb8d80 - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  47:      0x66579bb9116 - 
rayon_core::registry::ThreadBuilder::run::hc352a0b7af06c78a
  48:      0x66579bb7a9d - 
std::sys::backtrace::__rust_begin_short_backtrace::ha0c2c1b40a7dd591
  49:      0x66579bb829f - 
core::ops::function::FnOnce::call_once{{vtable.shim}}::h4ff23ff0ed2323f7
  50:      0x6657a312512 - 
<std[fc6f109810c393f0]::sys::thread::unix::Thread>::new::thread_start
  51:      0x667832050d2 - _rthread_start
                               at /usr/src/lib/librthread/rthread.c:99:11
  52:      0x667f7ba435a - __tfork_thread
                               at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87:0

thread '<unnamed>' (519765) panicked at src/tests/fixture.rs:99:49:
called `Result::unwrap()` on an `Err` value: Os { code: 24, kind: 
Uncategorized, message: "Too many open files" }
stack backtrace:
   0:      0x6657a313835 - 
<<std[fc6f109810c393f0]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace
 as core[d6c71fd35ad5e3c0]::fmt::Display>::fmt
   1:      0x6657a3305d1 - core[d6c71fd35ad5e3c0]::fmt::write
   2:      0x6657a319d8b - <alloc[2a4aeedb65e7e9d2]::vec::Vec<u8> as 
std[fc6f109810c393f0]::io::Write>::write_fmt
   3:      0x6657a2f0b31 - 
std[fc6f109810c393f0]::panicking::default_hook::{closure#0}
   4:      0x6657a30cef6 - std[fc6f109810c393f0]::panicking::default_hook
   5:      0x66579b7f907 - 
test[5de5e50b8b91b6f7]::test_main_with_exit_callback::<test[5de5e50b8b91b6f7]::test_main::{closure#0}>::{closure#0}
   6:      0x6657a30d259 - std[fc6f109810c393f0]::panicking::panic_with_hook
   7:      0x6657a2f0bf9 - 
std[fc6f109810c393f0]::panicking::panic_handler::{closure#0}
   8:      0x6657a2e75ad - 
std[fc6f109810c393f0]::sys::backtrace::__rust_end_short_backtrace::<std[fc6f109810c393f0]::panicking::panic_handler::{closure#0},
 !>
   9:      0x6657a2f1ac1 - __rustc[b1da763420d39311]::rust_begin_unwind
  10:      0x6657a330dc0 - core[d6c71fd35ad5e3c0]::panicking::panic_fmt
  11:      0x6657a330b66 - core[d6c71fd35ad5e3c0]::result::unwrap_failed
  12:      0x665796c093c - 
niri::tests::fixture::Fixture::add_client::h6fd7bc0cc2c2e517
  13:      0x665795c42f7 - core::ops::function::impls::<impl 
core::ops::function::FnMut<A> for &F>::call_mut::h6de222654a20237a
  14:      0x665798efaaf - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  15:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  16:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  17:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  18:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  19:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  20:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  21:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  22:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  23:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  24:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  25:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  26:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  27:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  28:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  29:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  30:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  31:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  32:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  33:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  34:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  35:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  36:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  37:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  38:      0x66579bb8d80 - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  39:      0x66579bb9116 - 
rayon_core::registry::ThreadBuilder::run::hc352a0b7af06c78a
  40:      0x66579bb7a9d - 
std::sys::backtrace::__rust_begin_short_backtrace::ha0c2c1b40a7dd591
  41:      0x66579bb829f - 
core::ops::function::FnOnce::call_once{{vtable.shim}}::h4ff23ff0ed2323f7
  42:      0x6657a312512 - 
<std[fc6f109810c393f0]::sys::thread::unix::Thread>::new::thread_start
  43:      0x667832050d2 - _rthread_start
                               at /usr/src/lib/librthread/rthread.c:99:11
  44:      0x667f7ba435a - __tfork_thread
                               at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87:0

thread '<unnamed>' (554026) panicked at src/utils/transaction.rs:113:46:
called `Result::unwrap()` on an `Err` value: Os { code: 24, kind: 
Uncategorized, message: "Too many open files" }
stack backtrace:
   0:      0x6657a313835 - 
<<std[fc6f109810c393f0]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace
 as core[d6c71fd35ad5e3c0]::fmt::Display>::fmt
   1:      0x6657a3305d1 - core[d6c71fd35ad5e3c0]::fmt::write
   2:      0x6657a319d8b - <alloc[2a4aeedb65e7e9d2]::vec::Vec<u8> as 
std[fc6f109810c393f0]::io::Write>::write_fmt
   3:      0x6657a2f0b31 - 
std[fc6f109810c393f0]::panicking::default_hook::{closure#0}
   4:      0x6657a30cef6 - std[fc6f109810c393f0]::panicking::default_hook
   5:      0x66579b7f907 - 
test[5de5e50b8b91b6f7]::test_main_with_exit_callback::<test[5de5e50b8b91b6f7]::test_main::{closure#0}>::{closure#0}
   6:      0x6657a30d259 - std[fc6f109810c393f0]::panicking::panic_with_hook
   7:      0x6657a2f0bf9 - 
std[fc6f109810c393f0]::panicking::panic_handler::{closure#0}
   8:      0x6657a2e75ad - 
std[fc6f109810c393f0]::sys::backtrace::__rust_end_short_backtrace::<std[fc6f109810c393f0]::panicking::panic_handler::{closure#0},
 !>
   9:      0x6657a2f1ac1 - __rustc[b1da763420d39311]::rust_begin_unwind
  10:      0x6657a330dc0 - core[d6c71fd35ad5e3c0]::panicking::panic_fmt
  11:      0x6657a330b66 - core[d6c71fd35ad5e3c0]::result::unwrap_failed
  12:      0x66579a26d21 - 
niri::utils::transaction::Transaction::register_deadline_timer::hbc691b2d49152548
  13:      0x6657973b319 - 
smithay::wayland::compositor::add_pre_commit_hook::{{closure}}::hdcd6605b9d6477f4
  14:      0x665796cf1f9 - niri::handlers::compositor::_::<impl 
wayland_server::dispatch::Dispatch<wayland_server::protocol::wl_surface::WlSurface,smithay::wayland::compositor::handlers::SurfaceUserData>
 for niri::niri::State>::request::hcf15e3f061e7829f
  15:      0x665797dc435 - <wayland_server::dispatch::ResourceData<I,U> as 
wayland_backend::sys::server::ObjectData<D>>::request::h45697a4e909792ee
  16:      0x66579980f3e - scoped_tls::ScopedKey<T>::with::h70593d7652f1923a
  17:      0x66579495a04 - 
wayland_backend::sys::server_impl::resource_dispatcher::hc468d9687f5cd48e
  18:      0x66862d41d49 - <unknown>
  19:      0x66862d3a8da - <unknown>
  20:      0x66862d3f6a6 - <unknown>
  21:      0x66579980c97 - scoped_tls::ScopedKey<T>::set::hc17e74426fd109e6
  22:      0x665794967fd - 
wayland_backend::sys::server_impl::InnerBackend<D>::dispatch_all_clients::h4eab22057718e770
  23:      0x665797a2574 - <calloop::sources::generic::Generic<F,E> as 
calloop::sources::EventSource>::process_events::h0d89bf7196577572
  24:      0x665798354f2 - 
<core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as 
calloop::sources::EventDispatcher<Data>>::process_events::hcbff16c7c0534772
  25:      0x6657972e4ec - 
calloop::loop_logic::EventLoop<Data>::dispatch::h8333282cdb8760e1
  26:      0x665797a5795 - <calloop::sources::generic::Generic<F,E> as 
calloop::sources::EventSource>::process_events::hef3913eadb170fc1
  27:      0x66579834762 - 
<core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as 
calloop::sources::EventDispatcher<Data>>::process_events::h78d96562356a51c6
  28:      0x665796c191b - 
niri::tests::fixture::Fixture::roundtrip::h82b5160a9c79e549
  29:      0x665795c5039 - core::ops::function::impls::<impl 
core::ops::function::FnMut<A> for &F>::call_mut::h6de222654a20237a
  30:      0x665798efaaf - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  31:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  32:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  33:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  34:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  35:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  36:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  37:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  38:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  39:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  40:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  41:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  42:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  43:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  44:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  45:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  46:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  47:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  48:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  49:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  50:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  51:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  52:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  53:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  54:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  55:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  56:      0x66579b4d1bc - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h64f2f6ba1fa1746b
  57:      0x66579bb8d80 - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  58:      0x66579bb9116 - 
rayon_core::registry::ThreadBuilder::run::hc352a0b7af06c78a
  59:      0x66579bb7a9d - 
std::sys::backtrace::__rust_begin_short_backtrace::ha0c2c1b40a7dd591
  60:      0x66579bb829f - 
core::ops::function::FnOnce::call_once{{vtable.shim}}::h4ff23ff0ed2323f7
  61:      0x6657a312512 - 
<std[fc6f109810c393f0]::sys::thread::unix::Thread>::new::thread_start
  62:      0x667832050d2 - _rthread_start
                               at /usr/src/lib/librthread/rthread.c:99:11
  63:      0x667f7ba435a - __tfork_thread
                               at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87:0

thread '<unnamed>' (554026) panicked at 
/rustc/ac68faa20c58cbccd01ee7208bf3b6e93a7d7f96/library/core/src/panicking.rs:225:5:
panic in a function that cannot unwind
stack backtrace:
   0:      0x6657a313835 - 
<<std[fc6f109810c393f0]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace
 as core[d6c71fd35ad5e3c0]::fmt::Display>::fmt
   1:      0x6657a3305d1 - core[d6c71fd35ad5e3c0]::fmt::write
   2:      0x6657a31adcb - <std[fc6f109810c393f0]::sys::stdio::unix::Stderr as 
std[fc6f109810c393f0]::io::Write>::write_fmt
   3:      0x6657a2f0b31 - 
std[fc6f109810c393f0]::panicking::default_hook::{closure#0}
   4:      0x6657a30cec2 - std[fc6f109810c393f0]::panicking::default_hook
   5:      0x66579b7f907 - 
test[5de5e50b8b91b6f7]::test_main_with_exit_callback::<test[5de5e50b8b91b6f7]::test_main::{closure#0}>::{closure#0}
   6:      0x6657a30d259 - std[fc6f109810c393f0]::panicking::panic_with_hook
   7:      0x6657a2f0c2b - 
std[fc6f109810c393f0]::panicking::panic_handler::{closure#0}
   8:      0x6657a2e75ad - 
std[fc6f109810c393f0]::sys::backtrace::__rust_end_short_backtrace::<std[fc6f109810c393f0]::panicking::panic_handler::{closure#0},
 !>
   9:      0x6657a2f1ac1 - __rustc[b1da763420d39311]::rust_begin_unwind
  10:      0x6657a330c21 - core[d6c71fd35ad5e3c0]::panicking::panic_nounwind_fmt
  11:      0x6657a330b8f - core[d6c71fd35ad5e3c0]::panicking::panic_nounwind
  12:      0x6657a330d37 - 
core[d6c71fd35ad5e3c0]::panicking::panic_cannot_unwind
  13:      0x66579495909 - 
wayland_backend::sys::server_impl::resource_dispatcher::hc468d9687f5cd48e
  14:      0x66862d41d49 - <unknown>
  15:      0x66862d3a8da - <unknown>
  16:      0x66862d3f6a6 - <unknown>
  17:      0x66579980c97 - scoped_tls::ScopedKey<T>::set::hc17e74426fd109e6
  18:      0x665794967fd - 
wayland_backend::sys::server_impl::InnerBackend<D>::dispatch_all_clients::h4eab22057718e770
  19:      0x665797a2574 - <calloop::sources::generic::Generic<F,E> as 
calloop::sources::EventSource>::process_events::h0d89bf7196577572
  20:      0x665798354f2 - 
<core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as 
calloop::sources::EventDispatcher<Data>>::process_events::hcbff16c7c0534772
  21:      0x6657972e4ec - 
calloop::loop_logic::EventLoop<Data>::dispatch::h8333282cdb8760e1
  22:      0x665797a5795 - <calloop::sources::generic::Generic<F,E> as 
calloop::sources::EventSource>::process_events::hef3913eadb170fc1
  23:      0x66579834762 - 
<core::cell::RefCell<calloop::sources::DispatcherInner<S,F>> as 
calloop::sources::EventDispatcher<Data>>::process_events::h78d96562356a51c6
  24:      0x665796c191b - 
niri::tests::fixture::Fixture::roundtrip::h82b5160a9c79e549
  25:      0x665795c5039 - core::ops::function::impls::<impl 
core::ops::function::FnMut<A> for &F>::call_mut::h6de222654a20237a
  26:      0x665798efaaf - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  27:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  28:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  29:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  30:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  31:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  32:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  33:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  34:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  35:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  36:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  37:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  38:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  39:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  40:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  41:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  42:      0x66579b4cbea - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h2538df575a0450d4
  43:      0x66579bb8c5a - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  44:      0x66579bb7585 - 
rayon_core::join::join_recover_from_panic::h50460bcb05f64cf4
  45:      0x6657997f8be - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  46:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  47:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  48:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  49:      0x6657997f7b2 - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  50:      0x665798efb6c - 
rayon::iter::plumbing::bridge_producer_consumer::helper::h272a87f1710274e4
  51:      0x6657997f6ac - 
rayon_core::join::join_context::{{closure}}::hc2e12c848848aa9e
  52:      0x66579b4d1bc - <rayon_core::job::StackJob<L,F,R> as 
rayon_core::job::Job>::execute::h64f2f6ba1fa1746b
  53:      0x66579bb8d80 - 
rayon_core::registry::WorkerThread::wait_until_cold::h8699c4d37618c56c
  54:      0x66579bb9116 - 
rayon_core::registry::ThreadBuilder::run::hc352a0b7af06c78a
  55:      0x66579bb7a9d - 
std::sys::backtrace::__rust_begin_short_backtrace::ha0c2c1b40a7dd591
  56:      0x66579bb829f - 
core::ops::function::FnOnce::call_once{{vtable.shim}}::h4ff23ff0ed2323f7
  57:      0x6657a312512 - 
<std[fc6f109810c393f0]::sys::thread::unix::Thread>::new::thread_start
  58:      0x667832050d2 - _rthread_start
                               at /usr/src/lib/librthread/rthread.c:99:11
  59:      0x667f7ba435a - __tfork_thread
                               at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87:0
thread caused non-unwinding panic. aborting.
--
// Checks had no problems. Not sure about the tests but it runs on
// the i5-3340M laptop smoothly?


// Updated alongside xwayland-satellite update
# TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all/ pkg_add -Dsnap -u niri 
xwayland-satellite
niri-26.04:xwayland-satellite-0.8p0->0.8.1pl20260316: ok
niri-25.11.20260220p0->26.04: ok
--

The new options like xray are nice, described below for those curious.
https://github.com/niri-wm/niri/releases/tag/v26.04

Been running niri and xwayland-satellite for a few hours. And left it on
overnight. No obvious regression or crashes.

No formatting or other nits to report.

Looks fine. Thank you for the update.

Hope this helps. May you all stay cool and be successful hacking.
--
yaydn

Reply via email to