[systemd-devel] systemd+dbus: system boot stops at terminal login screen sometimes

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Thu Dec 1 05:18:25 PST 2011


On 12/01/2011 09:25 AM, tang ke wrote:
> nobody reply?

Hi,
maybe you should try with a current systemd version (37) or even git 
tip, since there were mostly fixes since 37.

Zbyszek


> 于 2011年11月30日 17:49, Chen Jie 写道:
>> Hi all,
>>
>> I found my system boot stops at terminal login screen sometimes under
>> systemd v29 + dbus 1.4.16. I tried to login, after supplied username
>> and password, it blocked with a blinking cursor.
>>
>> A primary debug shows:
>> * dbus-daemon was doing a busy-loop in pending_activation_failed()
>> (see http://lists.freedesktop.org/archives/dbus/2011-November/014790.html)
>> * There was a message "Failed to activate service
>> 'org.freedesktop.systemd1': timed out" in syslog (see the full syslog
>> at http://lists.freedesktop.org/archives/dbus/attachments/20111125/e9c204bb/attachment-0001.obj)
>>
>> After I added more log funcs with gettimeofday generated timestamp
>> "(tv_sec, tv_usec)", I found:
>> * bus_init_api() calling dbus_bus_add_match failed with timeout -- the
>> function starts at (1322641754,371276), ends at  (1322641779,396943)
>> * In dbus side, I found it spends ~25s to send a log to syslog:
>> timestamp: (1322641754,372197)
>> bus_context_log (activation->context,
>>                                 DBUS_SYSTEM_LOG_INFO, "Activating
>> systemd to hand-off: service name='%s' unit='%s'",
>>                                 service_name,
>>                                 entry->systemd_service);    //
>> bus_activation_activate_service() @bus/activation.c
>> timestamp: (1322641780,555)
>>
>> I guess there was something wrong with startup of rsyslog.service, and I found:
>> * (1322641752,26061): [rsyslog.service]service_enter_start_pre()
>> * (1322641753,382491): systemd-kmsg-syslogd[705]: systemd-kmsg-syslogd
>> stopped as pid 705
>> * (1322641779,692927): [rsyslog.service]service_enter_start()
>>
>> Start rsyslog.service will stop systemd-kmsg-syslogd.service first, so
>> I added more log funcs in systemctl:
>> * systemctl[1216]: start_unit_one(): (1322641753,229083)->(1322641753,383118)
>> * systemctl[1216]: wait_filter() (1322641753,465392)Got D-Bus request:
>> org.freedesktop.systemd1.Manager.JobRemoved() on
>> /org/freedesktop/systemd1
>> * systemctl[1216]: wait_for_jobs(): (1322641753,468987) finished
>> "while (!set_isempty(s)&&dbus_connection_read_write_dispatch(bus,
>> -1))"
>> systemctl stop systemd-kmsg-syslogd.service didn't much time.
>>
>>
>> The content of rsyslog.service:
>> [Unit]
>> Description=System Logging Service
>>
>> [Service]
>> ExecStartPre=/bin/systemctl stop systemd-kmsg-syslogd.service
>> ExecStart=/usr/sbin/rsyslogd -n -c5
>> Sockets=syslog.socket
>>
>> [Install]
>> WantedBy=multi-user.target
>>
>>
>> Any idea?
>>
>> BTW, the gap between systemd-kmsg-syslogd.service stopped and rsyslog
>> not ready will make it lost some log messages.
>>
>>
>>
>> Regards,
>> --- Chen Jie
>> _______________________________________________
>> dbus mailing list
>> dbus at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dbus
>>
>
>
>
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel



More information about the systemd-devel mailing list