systemd-shim executes 'poweroff' after resuming from suspend-to-memory(S3)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
systemd-shim (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Hi,all
I'm using latest kernel 4.1-rc3 on ubuntu 14.04.2 LTS X86_64,
and I found that, after resuming from suspend-to-memory,
the systemd-shim deamon will execute a 'poweroff', which
shuts the system down.
here's my step to reproduce the bug:
1.echo mem > /sys/power/state //ok
2.wait for 30 seconds //ok
3.push power button //ok
4.system resumes automatically //ok
5.after a few seconds, system shutdown //oh no...
I replace /sbin/shutdown with a script that prints the current process backtrace by pstree, then the system will not halt after resumming from suspend-to-memory. Here's my script:
# cat /sbin/shutdown
#!/bin/sh
pstree -a > /home/chenyu/
and here's the backtrace when system is executing my 'shutdown', after resumming, we can see that, systemd-shim invokes 'sh -c /sbin/poweroff':
init
|-ModemManager
| `-2*[{ModemMana
|-NetworkManager
| `-3*[{NetworkMa
|-acpid -c /etc/acpi/events -s /var/run/
| `-sh -c /etc/acpi/
|-anacron -s
|-avahi-daemon
| `-avahi-daemon
|-bluetoothd
|-cron
|-cups-browsed
|-cupsd -f
| `-dbus dbus://
|-dbus-daemon --system --fork
|-getty -8 38400 tty4
|-getty -8 38400 tty5
|-getty -8 38400 tty2
|-getty -8 38400 tty3
|-getty -8 38400 tty6
|-irqbalance
|-kerneloops
|-login --
| `-bash
| `-sudo -s
| `-bash
|-ondemand /etc/init.
| `-sleep 60
|-polkitd --no-debug
| `-2*[{polkitd}]
|-rsyslogd
| `-3*[{rsyslogd}]
|-sshd -D
|-systemd-logind
|-systemd-shim
| |-sh -c /sbin/poweroff
| | `-shutdown /sbin/shutdown -h -P now
| | `-pstree -a
| `-2*[{systemd-
|-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| `-systemd-udevd --daemon
|-upstart-file-br --daemon
|-upstart-socket- --daemon
|-upstart-udev-br --daemon
`-whoopsie
`
Since I'm not sure why systemd-shim act like this, I would be
happy to debug with your suggestion, and give feedback to you.
Best Regards,
Yu
update 2015 05 16
It seems that, dbus-deamon has received a poweroff meesage then it fork the systemd-shim to shutdown the system, here's the backtrace for systemd-shim . we can see that ,dbus-daemon --system --fork leverage systemd-shim to perform the poweroff.
however, who sends the poweroff message to dbus-daemon???
init ger}] NetworkManager/ nm-dhcp- client. action -pf ... in-foreground --no-hosts --bind- interfaces- -pid-file= /run/sendsigs. omit.d/ network- manager. dnsm nager}] acpid.socket powerbtn. sh powerbtn. sh x86_64- linux-gnu/ systemd- shim -2*[{whoopsie} ]
|-ModemManager
| `-2*[{ModemMana
|-NetworkManager
| |-dhclient -d -sf /usr/lib/
| |-dnsmasq --no-resolv --keep-
| `-3*[{NetworkMa
|-acpid -c /etc/acpi/events -s /var/run/
| `-sh -c /etc/acpi/
| `-powerbtn.sh /etc/acpi/
|-avahi-daemon
| `-avahi-daemon
|-bluetoothd
|-cron
|-cups-browsed
|-cupsd -f
| `-dbus dbus://
|-dbus-daemon --system --fork
| `-dbus-daemon --system --fork
| `-systemd-shim /usr/lib/
| `-pstree -a
|-getty -8 38400 tty4
|-getty -8 38400 tty5
|-getty -8 38400 tty2
|-getty -8 38400 tty3
|-getty -8 38400 tty6
|-irqbalance
|-kerneloops
|-login --
| `-bash
| `-sudo -s
| `-bash
|-polkitd --no-debug
| `-2*[{polkitd}]
|-rsyslogd
| `-3*[{rsyslogd}]
|-sshd -D
|-systemd-logind
|-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| |-systemd-udevd --daemon
| `-systemd-udevd --daemon
|-upstart-file-br --daemon
|-upstart-socket- --daemon
|-upstart-udev-br --daemon
`-whoopsie
`