Assert Failure on Quit at src/libply/ply-event-loop.c:761
Aaron_Wright at selinc.com
Aaron_Wright at selinc.com
Tue Mar 20 22:34:42 UTC 2018
When I start plymouth in initramfs with --attach-to-session and tell it to
quit after switching to the rootfs, I get an assert at
src/libply/ply-event-loop.c:761, "source != NULL". If I leave off the
--attach-to-session it doesn't assert.
It seems like the session is disappearing on plymouthd, and it can't
handle that. The code does have a conditional for when the source is NULL,
but that only prints out a trace message. How could the source be NULL? Is
it possible to have a running plymouth daemon in initramfs persist into
the rootfs, and maintain a session? I use "plymouth update-root-fs
--new-root-dir" to tell plymouth of the pending root switch, but that
doesn't seem to have an affect.
I'm having the problem in plymouth version 0.9.2, but the assert in
ply-event-loop.c is still there in 0.9.3, and I couldn't get 0.9.3 to even
show a splash.
Any help would be appreciated.
ply-event-loop.c:
...
void
ply_event_loop_stop_watching_fd (ply_event_loop_t *loop,
ply_fd_watch_t *watch)
{
ply_event_destination_t *destination;
ply_event_source_t *source;
assert (loop != NULL);
assert (watch != NULL);
destination = ply_event_loop_get_destination_from_fd_watch (loop,
watch);
assert (destination != NULL);
source = destination->source;
if (source == NULL)
ply_trace ("NULL source when stopping watching fd"); //<--
this prints out
else
ply_trace ("stopping watching fd %d", source->fd);
assert (source != NULL); //<-- line 761
assert (source->fd >= 0);
...
}
...
Full backtrace:
Core was generated by `@sbin/plymouthd --mode=boot --attach-to-session'.
Program terminated with signal SIGABRT, Aborted.
#0 0xb76e3bb1 in __kernel_vsyscall ()
(gdb) bt
#0 0xb76e3bb1 in __kernel_vsyscall ()
#1 0xb7519d20 in __libc_signal_restore_set (set=0xbf9bd0b0) at
/usr/src/debug/glibc/2.25-r0/git/sysdeps/unix/sysv/linux/nptl-signals.h:79
#2 __GI_raise (sig=6) at
/usr/src/debug/glibc/2.25-r0/git/sysdeps/unix/sysv/linux/raise.c:48
#3 0xb751b1a7 in __GI_abort () at
/usr/src/debug/glibc/2.25-r0/git/stdlib/abort.c:89
#4 0xb7512947 in __assert_fail_base (fmt=0xb764d948 "%s%s%s:%u:
%s%sAssertion `%s' failed.\n%n", assertion=0xb76d0c1c "source != NULL",
file=0xb76d0740 "../../../plymouth-0.9.2/src/libply/ply-event-loop.c",
line=761, function=0xb76d1240 <__PRETTY_FUNCTION__.6693>
"ply_event_loop_stop_watching_fd")
at /usr/src/debug/glibc/2.25-r0/git/assert/assert.c:92
#5 0xb75129cb in __GI___assert_fail (assertion=0xb76d0c1c "source !=
NULL", file=0xb76d0740
"../../../plymouth-0.9.2/src/libply/ply-event-loop.c", line=761,
function=0xb76d1240 <__PRETTY_FUNCTION__.6693>
"ply_event_loop_stop_watching_fd") at
/usr/src/debug/glibc/2.25-r0/git/assert/assert.c:101
#6 0xb76c6e51 in ply_event_loop_stop_watching_fd (loop=<optimized out>,
watch=<optimized out>)
at
/usr/src/debug/plymouth/0.9.2-r0/plymouth-0.9.2/src/libply/ply-event-loop.c:761
#7 0xb76cce63 in ply_terminal_session_stop_logging
(session=session at entry=0x830e7b8) at
/usr/src/debug/plymouth/0.9.2-r0/plymouth-0.9.2/src/libply/ply-terminal-session.c:541
#8 0xb76cd827 in ply_terminal_session_detach (session=0x830e7b8) at
/usr/src/debug/plymouth/0.9.2-r0/plymouth-0.9.2/src/libply/ply-terminal-session.c:400
#9 0x0805280e in detach_from_running_session
(state=state at entry=0xbf9bd518) at
/usr/src/debug/plymouth/0.9.2-r0/plymouth-0.9.2/src/main.c:1707
#10 0x0805298a in detach_from_running_session (state=0xbf9bd518) at
/usr/src/debug/plymouth/0.9.2-r0/plymouth-0.9.2/src/main.c:1065
#11 quit_splash (state=state at entry=0xbf9bd518) at
/usr/src/debug/plymouth/0.9.2-r0/plymouth-0.9.2/src/main.c:1064
#12 0x0805319f in on_boot_splash_idle (state=0xbf9bd518) at
/usr/src/debug/plymouth/0.9.2-r0/plymouth-0.9.2/src/main.c:1192
#13 0xb76c76ea in ply_event_loop_handle_timeouts (loop=0x830b0b0) at
/usr/src/debug/plymouth/0.9.2-r0/plymouth-0.9.2/src/libply/ply-event-loop.c:1192
#14 ply_event_loop_process_pending_events (loop=0x830b0b0) at
/usr/src/debug/plymouth/0.9.2-r0/plymouth-0.9.2/src/libply/ply-event-loop.c:1251
#15 0xb76c7d49 in ply_event_loop_run (loop=0x830b0b0) at
/usr/src/debug/plymouth/0.9.2-r0/plymouth-0.9.2/src/libply/ply-event-loop.c:1310
#16 0x0804b9c9 in main (argc=<optimized out>, argv=<optimized out>) at
/usr/src/debug/plymouth/0.9.2-r0/plymouth-0.9.2/src/main.c:2229
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/plymouth/attachments/20180320/19d504fd/attachment.html>
More information about the plymouth
mailing list