-
-
Notifications
You must be signed in to change notification settings - Fork 773
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SIGABRT in MPD::checkErrors()
#281
Comments
Also @minijackson any reason for not using Line 63 in 0d0f5ed
sleeper_thread manages well the case when a bar closes in case of several screens |
Damn, I just keep writing bad code x) My first intuition is that it might be bad lock on scheduling (which might explain why it takes a long time):
So, for this theory to be true, we need a checkError that resets the connection without locking the connection mutex, and another checkError happening at the same time. Then the question is: can this SIGABRT happen while leaving the music paused/stopped and doing nothing? If it can, then it's probably not that. |
@Alexays That's a good question, I think it's because I changed many times the implementation, and then forgot about it. I'll see about refactoring the module. But I'm not sure about what you mean by "manages well the case when a bar closes in case of several screens" |
@minijackson when the module will be destroyed the thread will remains active since it have been detached. |
Although I haven't seen it SIGABRT while paused/stopped, that's not to say it couldn't happen (being unfamiliar with the codebase). But all the times it has happened to me has been while playing. |
See Alexays/Waybar#281 for reasoning. Will go back to standard MPD once resolved
I've been running |
I'm back again, but no solid STR this time. I'll post a reply if I do find something.
After some time (this one actually takes a fairly long while compared to our last two issues), Waybar receives a SIGABRT from libmpdclient, due to a failed assertion:
waybar: ../src/ierror.h:130: mpd_error_get_message: Assertion 'error->message != NULL || error->code == MPD_ERROR_OOM' failed.
Backtrace
Commenting out the
auto error_message = mpd_connection_get_error_message(conn);
line leads to another abort up inMPD::fetchState()
:waybar: ../src/run.c:40: mpd_run_check: Assertion 'connection != NULL' failed.
Backtrace
Looks like we need more
NULL
handling. Sorry to do this to you again, but cc: @minijacksonEDIT: Got a new one after I commented out the
auto error_message
line again.waybar: ../src/async.c:273: mpd_async_io: Assertion '!mpd_error_is_defined(&async->error)' failed.
Backtrace
The text was updated successfully, but these errors were encountered: