Open Bios-Marcel opened 5 years ago
This sounds like an app crash. There's currently an issue with tui-rs
that prevents the error message being printed (https://github.com/fdehau/tui-rs/issues/177).
Need to investigate this crash - will see if I can reproduce.
Is there a logfile or anything?
@Bios-Marcel I added the output of a backtrace recently when running spotify-tui in Debug mode (https://github.com/Rigellute/spotify-tui/pull/111). Could you follow these instructions (https://github.com/Rigellute/spotify-tui#development) and reproduce this crash?
Will do tmr if I find time
I am assuming this is related to sleep or standby? Couldn't such errors just be ignored and display something like "Connected severed. .. trying to reconnect."?
~/code/spotify-tui$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 4.29s
Running `target/debug/spt`
Error Os { code: 2, kind: NotFound, message: "No such file or directory" };Please navigate here ["https://accounts.spotify.com/authorize?redirect_uri=http:%2F%2Flocalhost:8888%2Fcallback&state=bf7aMrWWTz9XOhrS&client_id=40717002b30f4887a92a804e5b7f2682&response_type=code&scope=playlist-read-collaborative%20playlist-read-private%20user-follow-read%20user-library-modify%20user-library-read%20user-modify-playback-state%20user-read-currently-playing%20user-read-playback-state%20user-read-private%20user-read-recently-played&"]
thread '<unnamed>' panicked at 'send request failed: Error(Io(Custom { kind: TimedOut, error: StringError("timed out") }), "https://accounts.spotify.com/api/token")', src/libcore/result.rs:999:5
stack backtrace:
0: spt::panic_hook
at src/main.rs:95
1: spt::main::{{closure}}
at src/main.rs:109
2: std::panicking::rust_panic_with_hook
3: std::panicking::continue_panic_fmt
4: rust_begin_unwind
5: core::panicking::panic_fmt
6: core::result::unwrap_failed
at /usr/src/rustc-1.36.0/src/libcore/macros.rs:18
7: core::result::Result<T,E>::expect
at /usr/src/rustc-1.36.0/src/libcore/result.rs:827
8: rspotify::spotify::oauth2::fetch_access_token
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/oauth2.rs:440
9: rspotify::spotify::oauth2::SpotifyClientCredentials::fetch_access_token
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/oauth2.rs:186
10: rspotify::spotify::oauth2::SpotifyClientCredentials::request_access_token
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/oauth2.rs:173
11: rspotify::spotify::oauth2::SpotifyClientCredentials::get_access_token
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/oauth2.rs:156
12: rspotify::spotify::client::Spotify::auth_headers
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/client.rs:120
13: rspotify::spotify::client::Spotify::internal_call
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/client.rs:136
14: rspotify::spotify::client::Spotify::get
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/client.rs:174
15: rspotify::spotify::client::Spotify::current_playback
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/client.rs:1465
16: spt::app::App::get_current_playback
at src/app.rs:326
17: spt::app::App::poll_current_playback
at src/app.rs:376
18: spt::app::App::update_on_tick
at src/app.rs:381
19: spt::main
at src/main.rs:256
20: std::rt::lang_start::{{closure}}
at /usr/src/rustc-1.36.0/src/libstd/rt.rs:64
21: std::panicking::try::do_call
22: __rust_maybe_catch_panic
23: std::rt::lang_start_internal
24: std::rt::lang_start
at /usr/src/rustc-1.36.0/src/libstd/rt.rs:64
25: main
26: __libc_start_main
27: _start
Similar to the last one I'd say. Maybe it should just be okay if a call fails and there's no need to just kill the app.
msc@EJ-PC-00597:~/code/spotify-tui$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 9.08s
Running `target/debug/spt`
thread '<unnamed>' panicked at 'send request failed: Error(Hyper(Error(Connect, Custom { kind: Other, error: StringError("failed to lookup address information: Temporary failure in name resolution") })), "https://accounts.spotify.com/api/token")', src/libcore/result.rs:999:5
stack backtrace:
0: spt::panic_hook
at src/main.rs:95
1: spt::main::{{closure}}
at src/main.rs:109
2: std::panicking::rust_panic_with_hook
3: std::panicking::continue_panic_fmt
4: rust_begin_unwind
5: core::panicking::panic_fmt
6: core::result::unwrap_failed
at /usr/src/rustc-1.36.0/src/libcore/macros.rs:18
7: core::result::Result<T,E>::expect
at /usr/src/rustc-1.36.0/src/libcore/result.rs:827
8: rspotify::spotify::oauth2::fetch_access_token
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/oauth2.rs:440
9: rspotify::spotify::oauth2::SpotifyClientCredentials::fetch_access_token
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/oauth2.rs:186
10: rspotify::spotify::oauth2::SpotifyClientCredentials::request_access_token
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/oauth2.rs:173
11: rspotify::spotify::oauth2::SpotifyClientCredentials::get_access_token
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/oauth2.rs:156
12: rspotify::spotify::client::Spotify::auth_headers
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/client.rs:120
13: rspotify::spotify::client::Spotify::internal_call
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/client.rs:136
14: rspotify::spotify::client::Spotify::get
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/client.rs:174
15: rspotify::spotify::client::Spotify::current_playback
at /home/msc/.cargo/registry/src/github.com-1ecc6299db9ec823/rspotify-0.7.0/src/spotify/client.rs:1465
16: spt::app::App::get_current_playback
at src/app.rs:326
17: spt::app::App::poll_current_playback
at src/app.rs:376
18: spt::app::App::update_on_tick
at src/app.rs:381
19: spt::main
at src/main.rs:256
20: std::rt::lang_start::{{closure}}
at /usr/src/rustc-1.36.0/src/libstd/rt.rs:64
21: std::panicking::try::do_call
22: __rust_maybe_catch_panic
23: std::rt::lang_start_internal
24: std::rt::lang_start
at /usr/src/rustc-1.36.0/src/libstd/rt.rs:64
25: main
26: __libc_start_main
27: _start
Ah yes, I've seen this last error error before. The panic is from rspotify
. Looks like we might need to listen for network connectivity and not attempt to make the network request when offline.
rspotify
or something else is visibly trying to open the web-browser but crashes when unable to (in this case, it's in a container, so no such thing is provided to it).
Strace shows this:
/usr/bin/strace: Process 25 attached
[pid 25] 10:59:46 execve("/usr/local/sbin/xdg-open", ["xdg-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 25] 10:59:46 execve("/usr/local/bin/xdg-open", ["xdg-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 25] 10:59:46 execve("/usr/sbin/xdg-open", ["xdg-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 25] 10:59:46 execve("/usr/bin/xdg-open", ["xdg-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 25] 10:59:46 execve("/sbin/xdg-open", ["xdg-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 25] 10:59:46 execve("/bin/xdg-open", ["xdg-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 25] 10:59:46 +++ exited with 1 +++
[pid 8] 10:59:46 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25, si_uid=0, si_status=1, si_utime=0, si_stime=0} ---
/usr/bin/strace: Process 26 attached
[pid 26] 10:59:46 execve("/usr/local/sbin/gvfs-open", ["gvfs-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 26] 10:59:46 execve("/usr/local/bin/gvfs-open", ["gvfs-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 26] 10:59:46 execve("/usr/sbin/gvfs-open", ["gvfs-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 26] 10:59:46 execve("/usr/bin/gvfs-open", ["gvfs-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 26] 10:59:46 execve("/sbin/gvfs-open", ["gvfs-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 26] 10:59:46 execve("/bin/gvfs-open", ["gvfs-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 26] 10:59:46 +++ exited with 1 +++
[pid 8] 10:59:46 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=26, si_uid=0, si_status=1, si_utime=0, si_stime=0} ---
/usr/bin/strace: Process 27 attached
[pid 27] 10:59:46 execve("/usr/local/sbin/gnome-open", ["gnome-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 27] 10:59:46 execve("/usr/local/bin/gnome-open", ["gnome-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 27] 10:59:46 execve("/usr/sbin/gnome-open", ["gnome-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 27] 10:59:46 execve("/usr/bin/gnome-open", ["gnome-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 27] 10:59:46 execve("/sbin/gnome-open", ["gnome-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 27] 10:59:46 execve("/bin/gnome-open", ["gnome-open", "https://accounts.spotify.com/aut"...], 0x7fffe91e9018 /* 4 vars */) = -1 ENOENT (No such file or directory)
[pid 27] 10:59:46 +++ exited with 1 +++
[pid 8] 10:59:46 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=27, si_uid=0, si_status=1, si_utime=0, si_stime=0} ---
Error Os { code: 2, kind: NotFound, message: "No such file or directory" };Please navigate here ["https://accounts.spotify.com/authorize?[...]
I usually leave the client open all day. As soon as i take my lunch break, I leave my PC and leave
spt
open. However, I do stop playback on my Spotify Connect device, which is my phone, which is the only active Spotify Connect device. When I come back,spt
has exited without printing an error or anything.