greshake / i3status-rust

Very resourcefriendly and feature-rich replacement for i3status, written in pure Rust
GNU General Public License v3.0
2.88k stars 475 forks source link

Sound block start pavucontrol with errors sway/wayland #420

Closed vvrein closed 4 years ago

vvrein commented 5 years ago

Version: i3status-rs 0.9 //latest from upstream System: Archlinux

i3status-rs backtrace

1
thread 'main' panicked at 'failed printing to stdout: Broken pipe (os error 32)', src/libstd/io/stdio.rs:792:9
stack backtrace:
   0:     0x55ccc5b005f3 - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h32cdc43507ada68c
   1:     0x55ccc5afbe7b - std::sys_common::backtrace::_print::h5e0f5e9cbf257358
   2:     0x55ccc5aff2a6 - std::panicking::default_hook::{{closure}}::hbafdebc07929bbe6
   3:     0x55ccc5aff039 - std::panicking::default_hook::h91c151aff85ca479
   4:     0x55ccc5aff9af - std::panicking::rust_panic_with_hook::h0d3d26cb2543ef46
   5:     0x55ccc5aff531 - std::panicking::continue_panic_fmt::h31b7e7fa8e3eb727
   6:     0x55ccc5aff47e - std::panicking::begin_panic_fmt::h2d0f9f4f044c2cfc
   7:     0x55ccc5af7873 - std::io::stdio::_print::hbcac8d94a14d3963
   8:     0x55ccc595e33f - i3status_rs::util::print_blocks::he19e549396fc2b43
   9:     0x55ccc59349b3 - i3status_rs::main::ha3775e1684a207e1
  10:     0x55ccc58e71b2 - std::rt::lang_start::{{closure}}::h6c45b36e4b1e1dca
  11:     0x55ccc5aff3b2 - std::panicking::try::do_call::h58bfd138a962b46f
  12:     0x55ccc5b07959 - __rust_maybe_catch_panic
  13:     0x55ccc5afff7c - std::rt::lang_start_internal::h4d084069bbddd485
  14:     0x55ccc5935e51 - main
  15:     0x7f4619835ee2 - __libc_start_main
  16:     0x55ccc585a0bd - _start
  17:                0x0 - <unknown>
thread '<unnamed>' panicked at 'cannot access stdin during shutdown', src/libcore/option.rs:1036:5

sway config

bar {
    status_command  RUST_BACKTRACE=full /home/vrein/data/local/git/i3status-rust/target/release/i3status-rs --exit-on-error /home/vrein/.config/i3rs/config 2>>/home/vrein/i3rs.err

i3status-rs config

[[block]]
block = "sound"
driver = "pulseaudio"
on_click = "swaymsg exec 'pavucontrol'"
show_volume_when_muted = true

Behavior: After left click pavucontrol starts, but i3status-rs brokes. if i use on_click = "pavucontrol" - pavucontrol opens but statusbar even closes without messages.

Gif: 1) click on bar 2) close pavucontrol 3) reload sway

recording gif

Bar says: image

vvrein commented 5 years ago

Video: https://streamable.com/qsu8x

ammgws commented 4 years ago

@vvrein Does this still occur with the latest release of sway and i3status-rs master?

vvrein commented 4 years ago

@ammgws yes i3status-rs build from master branch and from release asset behave identically

09:34:13 0 vrein@tokk:~/data/local/git| ./i3status-rust/target/release/i3status-rs -V
i3status-rs 0.12.0
09:34:29 0 vrein@tokk:~/data/local/git| ./i3status-rust-v0.12.0/i3status-rust-0.12.0/target/release/i3status-rs -V
i3status-rs 0.12.0

Executed as

    #status_command  RUST_BACKTRACE=full /home/vrein/data/local/git/i3status-rust/target/release/i3status-rs --exit-on-error /home/vrein/.config/i3rs/config 2>>/home/vrein/i3rs.err

    #status_command  RUST_BACKTRACE=full /home/vrein/data/local/git/i3status-rust-v0.12.0/i3status-rust-0.12.0/target/release/i3status-rs --exit-on-error /home/vrein/.config/i3rs/config 2>>/home/vrein/i3rs.err

--exit-on-error doesn't play any role

First two backtraces are from master, last is from v0.12.0

3
3
1
thread 'main' panicked at 'failed printing to stdout: Broken pipe (os error 32)', src/libstd/io/stdio.rs:792:9
stack backtrace:
   0:     0x55db55d8cb04 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h4c5e39dd6bf38933
   1:     0x55db55dafaac - core::fmt::write::h94b22f3cbda6422c
   2:     0x55db55d897c7 - std::io::Write::write_fmt::he7e02466cb3dc860
   3:     0x55db55d8f1ae - std::panicking::default_hook::{{closure}}::h077f2d0f0f4550db
   4:     0x55db55d8eea1 - std::panicking::default_hook::hcc1ceebfaf9d0a58
   5:     0x55db55d8f8ab - std::panicking::rust_panic_with_hook::h328d8e7ed959397b
   6:     0x55db55d8f44e - std::panicking::continue_panic_fmt::h745b12464b662c8f
   7:     0x55db55d8f38f - std::panicking::begin_panic_fmt::h5911c4e81ab1a1cd
   8:     0x55db55d88b02 - std::io::stdio::_print::h3b4d43823e1fe46b
   9:     0x55db55c3ecaa - i3status_rs::util::print_blocks::h7604a0283bf8d915
  10:     0x55db55c1fdc8 - i3status_rs::run::h7976141332f13c3f
  11:     0x55db55c1bc17 - i3status_rs::main::h57c960906f8c5f5d
  12:     0x55db55c05b33 - std::rt::lang_start::{{closure}}::h21ded2f8796ce577
  13:     0x55db55d8f2d3 - std::panicking::try::do_call::h81508b6a18a6e157
  14:     0x55db55d975da - __rust_maybe_catch_panic
  15:     0x55db55d8fe4d - std::rt::lang_start_internal::hfccf8c6e859ea61a
  16:     0x55db55c20da2 - main
  17:     0x7f1797a7d153 - __libc_start_main
  18:     0x55db55b110ce - _start
  19:                0x0 - <unknown>
thread '<unnamed>' panicked at 'cannot access stdin during shutdown', src/libcore/option.rs:1185:5
stack backtrace:
1
thread 'main' panicked at 'failed printing to stdout: Broken pipe (os error 32)', src/libstd/io/stdio.rs:792:9
stack backtrace:
   0:     0x559cfadb0b04 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h4c5e39dd6bf38933
   1:     0x559cfadd3aac - core::fmt::write::h94b22f3cbda6422c
   2:     0x559cfadad7c7 - std::io::Write::write_fmt::he7e02466cb3dc860
   3:     0x559cfadb31ae - std::panicking::default_hook::{{closure}}::h077f2d0f0f4550db
   4:     0x559cfadb2ea1 - std::panicking::default_hook::hcc1ceebfaf9d0a58
   5:     0x559cfadb38ab - std::panicking::rust_panic_with_hook::h328d8e7ed959397b
   6:     0x559cfadb344e - std::panicking::continue_panic_fmt::h745b12464b662c8f
   7:     0x559cfadb338f - std::panicking::begin_panic_fmt::h5911c4e81ab1a1cd
   8:     0x559cfadacb02 - std::io::stdio::_print::h3b4d43823e1fe46b
   9:     0x559cfac62caa - i3status_rs::util::print_blocks::h7604a0283bf8d915
  10:     0x559cfac43dc8 - i3status_rs::run::h7976141332f13c3f
  11:     0x559cfac3fc17 - i3status_rs::main::h57c960906f8c5f5d
  12:     0x559cfac29b33 - std::rt::lang_start::{{closure}}::h21ded2f8796ce577
  13:     0x559cfadb32d3 - std::panicking::try::do_call::h81508b6a18a6e157
  14:     0x559cfadbb5da - __rust_maybe_catch_panic
  15:     0x559cfadb3e4d - std::rt::lang_start_internal::hfccf8c6e859ea61a
  16:     0x559cfac44da2 - main
  17:     0x7f3d0bf47153 - __libc_start_main
  18:     0x559cfab350ce - _start
  19:                0x0 - <unknown>
thread '<unnamed>' panicked at 'cannot access stdin during shutdown', src/libcore/option.rs:1185:5
stack backtrace:
   0:     0x559cfadb0b04 - <std::sys_common::backtrace::1
thread 'main' panicked at 'failed printing to stdout: Broken pipe (os error 32)', src/libstd/io/stdio.rs:792:9
stack backtrace:
   0:     0x55d263c94a64 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h4c5e39dd6bf38933
   1:     0x55d263cb7a0c - core::fmt::write::h94b22f3cbda6422c
   2:     0x55d263c91727 - std::io::Write::write_fmt::he7e02466cb3dc860
   3:     0x55d263c9710e - std::panicking::default_hook::{{closure}}::h077f2d0f0f4550db
   4:     0x55d263c96e01 - std::panicking::default_hook::hcc1ceebfaf9d0a58
   5:     0x55d263c9780b - std::panicking::rust_panic_with_hook::h328d8e7ed959397b
   6:     0x55d263c973ae - std::panicking::continue_panic_fmt::h745b12464b662c8f
   7:     0x55d263c972ef - std::panicking::begin_panic_fmt::h5911c4e81ab1a1cd
   8:     0x55d263c90a62 - std::io::stdio::_print::h3b4d43823e1fe46b
   9:     0x55d263b4f66a - i3status_rs::util::print_blocks::h70227d9cfd3f3f2b
  10:     0x55d263b0f6cd - i3status_rs::main::hdd9956b945c92a99
  11:     0x55d263ad56b3 - std::rt::lang_start::{{closure}}::he3e9e0a30656f653
  12:     0x55d263c97233 - std::panicking::try::do_call::h81508b6a18a6e157
  13:     0x55d263c9f53a - __rust_maybe_catch_panic
  14:     0x55d263c97dad - std::rt::lang_start_internal::hfccf8c6e859ea61a
  15:     0x55d263b10cd2 - main
  16:     0x7fdf5310a153 - __libc_start_main
  17:     0x55d263a2f0ce - _start
  18:                0x0 - <unknown>
thread '<unnamed>' panicked at 'cannot access stdin during shutdown', src/libcore/option.rs:1185:5
stack backtrace:
   0:     0x55d263c94a64 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
ammgws commented 4 years ago

I had some time to check and I can reproduce this too.

It doesn't seem to matter what the command is, even setting it to my terminal crashes the bar.

ammgws commented 4 years ago

Confirmed that #530 fixes this.

vvrein commented 4 years ago

During some experiments, i have changed my config to on_click = "pavucontrol". In that way i3status-rs still crashes. But with on_click = "swaymsg exec 'pavucontrol'" all seems to be working fine.

Can confirm too that https://github.com/greshake/i3status-rust/pull/530 fixed this.

ammgws commented 4 years ago

Hmm, does this happen in i3 too? I don't have a working setup to test with atm, just sway.

ammgws commented 4 years ago

@vvrein Do you still get this if you change back to on_click = "pavucontrol"?

I just tried again (using sway-git and i3status-rust-git) but it doesn't seem to crash anymore. Wonder if something was fixed sway-side between then and now.

vvrein commented 4 years ago

@ammgws Yup, can confirm that at least on master branch everything works as intended with a such config.

[[block]]
block = "sound"
driver = "pulseaudio"
on_click = "pavucontrol"
show_volume_when_muted = true
ammgws commented 4 years ago

Cheers! I'll close this for now then.