summaryrefslogtreecommitdiff
path: root/src/dbus.c
AgeCommit message (Collapse)Author
2011-12-20dbus: no sync D-Bus connection flushingMichal Schmidt
Blocking on D-Bus in a system manager could lead to deadlock.
2011-12-20dbus: register to DBus asynchronouslyMichal Schmidt
Chen Jie observed and analyzed a deadlock. Assuming systemd-kmsg-syslogd is already stopped, but rsyslogd is not started yet: 1. systemd makes a synchronous call to dbus-daemon. 2. dbus-daemon wants to write something to syslog. 3. syslog needs to be started by systemd. ... but cannot be, because systemd is waiting in 1. Solve this by avoiding synchronous D-Bus calls. I had to write an async bus registration call. Interestingly, D-Bus authors anticipated this, in documentation to dbus_bus_set_unique_name(): > The only reason to use this function is to re-implement the equivalent > of dbus_bus_register() yourself. One (probably unusual) reason to do > that might be to do the bus registration call asynchronously instead > of synchronously. Lennart's comments from IRC: > though I think this doesn't fix the problem in its entirety > simply because dbus_connection_open_private() itself is still synchronous > i.e. the connect() call behind it is not async > I think I listed that issue actually on some D-Bus todo list > i.e. to make dbus_connection_get() fully async > but that's going to be hard > so your patch looks good So it may not be perfect, but it's clearly an improvement. I did not manage to reproduce the original deadlock with the patch.
2011-07-01dbus: listen on private sockets in user mode tooLennart Poettering
2011-06-28dbus: properly unref messageLennart Poettering
2011-06-27dbus: use bus_error_message() where applicableLennart Poettering
2011-06-27dbus: send our finished signal when we are finished bootingLennart Poettering
2011-06-24logind: make sure we hand out write fd, and keep read fd for session end ↵Lennart Poettering
detection
2011-06-21dbus: introduce UnsetAndSetEnvironment()Lennart Poettering
2011-06-21dbus: make bus_flags_to_events() and friends generally usefulLennart Poettering
2011-04-28util: conf_files_list() return list as parameterKay Sievers
2011-04-28dbus: make daemon reexecution synchronousLennart Poettering
We simply keep open copies of the dbus connections across the reexecution and close them as last step of it. A client can thus simply wait until its connection is dropped to know when the reexecution is finished. https://bugzilla.redhat.com/show_bug.cgi?id=698198
2011-04-16dbus: split out object management code into dbus-common, and simplify itLennart Poettering
2011-03-31src: our lord is coverityLennart Poettering
2011-03-28use /run instead of /dev/.runKay Sievers
Instead of the /dev/.run trick we have currently implemented, we decided to move the early-boot runtime dir to /run. An existing /var/run directory is bind-mounted to /run. If /var/run is already a symlink, no action is taken. An existing /var/lock directory is bind-mounted to /run/lock. If /var/lock is already a symlink, no action is taken. To implement the directory vs. symlink logic, we have a: ConditionPathIsDirectory= now, which is used in the mount units. Skipped mount unit in case of symlink: $ systemctl status var-run.mount var-run.mount - Runtime Directory Loaded: loaded (/lib/systemd/system/var-run.mount) Active: inactive (dead) start condition failed at Fri, 25 Mar 2011 04:51:41 +0100; 6min ago Where: /var/run What: /run CGroup: name=systemd:/system/var-run.mount The systemd rpm needs to make sure to add something like: %pre mkdir -p -m0755 /run >/dev/null 2>&1 || : or it needs to be added to filesystem.rpm. Udev -git already uses /run if that exists, and is writable at bootup. Otherwise it falls back to the current /dev/.udev. Dracut and plymouth need to be adopted to switch from /dev/.run to run too. Cheers, Kay
2011-03-14main: remove AF_UNIX sockets before bindingLennart Poettering
2011-03-14core: move abstract namespace sockets to /dev/.runLennart Poettering
Now that we have /dev/.run there's no need to use abstract namespace sockets. So, let's move things to /dev/.run, to make things more easily discoverable and improve compat with chroot() and fs namespacing.
2011-03-09dbus: properly generate UnknownInterface, UnknownProperty and ↵Lennart Poettering
PropertyReadOnly errors
2011-03-09drop unnecessary suffix NULs as gcc adds them anywayLennart Poettering
2011-03-07add org.freedesktop.DBus.Properies.Set methodAndrey Borzenkov
The patch adds framework for processing Set requests on properties and as first consumers allows setting of LogTarget and LogLevel on interface org.freedesktop.systemd1.Manager of org.freedesktop.systemd1. The code should be generic enough to allow processing of any property on other objects and interfaces as well. No systemctl visible interface is added so far. The LogTarget and LogLevel are meant for debugging in the first place; user interface can be added if other usage emerge. Set on systemwide systemd is restricted to root; I am not sure how session level access is controlled.
2011-02-28Spelling CorrectionsHarald Hoyer
Just some lame spelling corrections with no functionality.
2011-02-24general: unify error code we generate on timeoutLennart Poettering
2011-01-20dbus: don't try to connect to the system bus before it is actually upLennart Poettering
2010-11-25dbus: use the right data slot allocatorLennart Poettering
Thanks to 'trapni' on IRC for tracking this down.
2010-11-15drop support for MANAGER_SESSION, introduce MANAGER_USER insteadLennart Poettering
2010-09-06dbus: downgrade activation failure messagesLennart Poettering
2010-09-03dbus: don't send cgroup agent messages directly to system bus to avoid dbus ↵Lennart Poettering
activation loop
2010-09-01dbus: don't accept activation requests anymore if we are going down anywayLennart Poettering
2010-08-20dbus: follow standardized fdo PropertiesChanged signal specLennart Poettering
2010-08-17dbus: downgrade disconnection messageLennart Poettering
2010-08-14emacs: make sure nobody accidently adds tabs to our sourcesLennart Poettering
2010-08-12dbus: downgrade a few log messagesLennart Poettering
2010-08-11unit: rename OnlyByDependency= to RefuseManualStart= and introduce ↵Lennart Poettering
RefuseManualStop= Some unit shall never be start on user request (e.g. shutdown.target) others never be stopped on user request (e.g. auditd.servce), hence offer options for both.
2010-08-06cgroup: if the system bus cannot be found, send cgroup empty msg directly to ↵Lennart Poettering
init proces
2010-07-11dbus: suppress duplicate message when reusing bus for system and sessionLennart Poettering
2010-07-10main: add a few more useful diagnostic log messagesLennart Poettering
2010-07-09main: make it possible to run a system daemon along side an aloready running ↵Lennart Poettering
one for testing purposes
2010-07-08dbus: make errors reported via D-Bus more usefulLennart Poettering
2010-07-07dbus: shut down bus connection cleanly and fully when a direct client ↵Lennart Poettering
disconnects
2010-07-07log: bump up a number of log messages so that they are shown even if debug ↵Lennart Poettering
logging is disabled, for diagnostic purposes
2010-07-07dbus: send reload completion message on right connectionLennart Poettering
2010-07-05dbus: send signals about jobs to the clients having created them ↵Lennart Poettering
unconditionally, and thus get rid of broadcast signals in most cases
2010-07-04dbus: fix unclean shut-downLennart Poettering
2010-07-04dbus: complete exec coverageLennart Poettering
2010-07-04dbus: implement GetAll() with empty interface string properlyLennart Poettering
2010-07-01socket: make various socket/pipe options configurableLennart Poettering
2010-06-19manager: get rid of destinction between running_as=system and ↵Lennart Poettering
running_as=init, as there is little value in it and we cannot really test this
2010-06-19dbus: to make sure that systemd stays controllable during early bootup, ↵Lennart Poettering
register our services on our own micro usb server in addition to the bus
2010-06-15dbus: fix matchLennart Poettering
2010-06-15dbus: tighten match rules a bitLennart Poettering
2010-06-07dbus: allow systemd to receive activation requestsLennart Poettering