summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-03-30systemd-bootchart: Repair Entropy GraphAlexander Sverdlin
Entropy Graph code doesn't handle the error condition if open() of /proc entry fails. Moreover, the file is only opened once and only first sample will contain the correct value because the return value of pread() is also not handled properly and file is not re-opened. Fix both problems.
2015-03-30systemd-bootchart: Prevent leaking file descriptors in open-fdopen combinationAlexander Sverdlin
Correctly handle the potential failure of fdopen() (because of OOM, for instance) after potentially successful open(). Prevent leaking open fd in such case.
2015-03-30systemd-bootchart: Prevent closing random file descriptorsAlexander Sverdlin
If the kernel has no CONFIG_SCHED_DEBUG option set, systemd-bootchart produces empty .svg file. The reason for this is very fragile file descriptor logic in log_sample() and main() (/* do some cleanup, close fd's */ block). There are many places where file descriptors are closed on failure (missing SCHED_DEBUG provokes it), but there are several problems with it: - following iterations in the loop see that the descriptor is non zero and do not open the corresponding file again; - "some cleanup" code closes already closed files and the descriptors are reused already, in particular for resulting .svg file; - static "vmstat" and "schedstat" variables in log_sample() made the situation even worse. These are the strace fragments: [...] close(7) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) pread(7, 0xbea60a2c, 4095, 0) = -1 EBADF (Bad file descriptor) close(7) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) pread(7, 0xbea60a2c, 4095, 0) = -1 EBADF (Bad file descriptor) close(7) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) getdents64(4, /* 0 entries */, 32768) = 0 clock_gettime(CLOCK_MONOTONIC, {24, 783843501}) = 0 nanosleep({0, 5221792}, NULL) = 0 clock_gettime(CLOCK_MONOTONIC, {24, 789726835}) = 0 lseek(4, 0, SEEK_SET) = 0 pread(5, "nr_free_pages 52309\nnr_alloc_bat"..., 4095, 0) = 685 pread(6, "version 15\ntimestamp 4294939775\n"..., 4095, 0) = 86 getdents64(4, /* 99 entries */, 32768) = 2680 pread(7, 0xbea60a2c, 4095, 0) = -1 EBADF (Bad file descriptor) close(7) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) pread(8, 0xbea60a2c, 4095, 0) = -1 EBADF (Bad file descriptor) close(8) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) pread(9, 0xbea60a2c, 4095, 0) = -1 EBADF (Bad file descriptor) close(9) = -1 EBADF (Bad file descriptor) [...] where it obviously tries to close same and reused decriptors many times, also passing return code "-1" instead of descriptor... [...] close(7) = -1 EBADF (Bad file descriptor) close(-1) = -1 EBADF (Bad file descriptor) pipe2([7, 8], O_CLOEXEC) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb6fd0068) = 192 close(8) = 0 fcntl64(7, F_SETFD, 0) = 0 fstat64(7, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fd2000 read(7, "[ 0.074507] calling vfp_init"..., 4096) = 4096 [...] read(7, "s)\n[ 6.228910] UBIFS: reserve"..., 4096) = 4096 read(7, "trary Executable File Formats Fi"..., 4096) = 1616 read(7, "", 4096) = 0 close(7) = 0 wait4(192, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 192
2015-03-27test: udev - add gdb supportTom Gundersen
2015-03-27network: don't pass NULL to udev_device_get_driver()Tom Gundersen
2015-03-2750-udev-default.rules: don't run anything but REMOVE_CMD on removeHarald Hoyer
we don't want to run usb_id and input_id on ACTION=="remove"
2015-03-27cdrom_id: unroll and simplify data check loopHarald Hoyer
also removes this warning: src/udev/cdrom_id/cdrom_id.c: In function ‘cd_media_info.isra.13’: src/udev/cdrom_id/cdrom_id.c:612:12: warning: assuming signed overflow does not occur when assuming that (X + c) >= X is always true [-Wstrict-overflow] static int cd_media_info(struct udev *udev, int fd) ^
2015-03-27fix gcc warnings about uninitialized variablesHarald Hoyer
like: src/shared/install.c: In function ‘unit_file_lookup_state’: src/shared/install.c:1861:16: warning: ‘r’ may be used uninitialized in this function [-Wmaybe-uninitialized] return r < 0 ? r : state; ^ src/shared/install.c:1796:13: note: ‘r’ was declared here int r; ^
2015-03-27networkd-dhcp6: Do not handle prefix expiryPatrik Flykt
Expiring prefixes need not be handled anymore as the kernel has been instructed not to create routes for DHCPv6 assigned addresses via the IFA_F_NOPREFIXROUTE flag.
2015-03-27systemd-networkd: Use IFA_F_NOPREFIXROUTE with IPv6 addressesPatrik Flykt
The IFA_F_NOPREFIXROUTE flag prevents the kernel from creating new onlink prefixes when a DHCPv6 IPv6 address with a prefix length is set from user space. IPv6 routing will follow the onlink status from Router Advertisment Prefix Information options or any manually set route, which is the correct thing to do. As this flag has a larger value than what fits into an unsigned char, update the flag attribute to an uint32_t and set it with an IFA_FLAGS attribute when writing netlink messages to the kernel.
2015-03-27sd-rtnl: Always enable IFA_FLAGSPatrik Flykt
IFA_FLAGS is a discrete value and has no preprocessor #define defined for it. Fix this by always using the value.
2015-03-26util: rework word parsing and c unescaping codeLennart Poettering
When parsing words from input files, optionally automatically unescape the passed strings, controllable via a new flags parameter. Make use of this in tmpfiles, and port everything else over, too. This improves parsing quite a bit, since we no longer have to process the same string multiple times with different calls, where an earlier call might corrupt the input for a later call.
2015-03-26importd: simplify expressionLennart Poettering
2015-03-26tmpfiles: minor simplificationLennart Poettering
2015-03-25TODO: Nothing to be done for IPv6 DAD, handled by kernelPatrik Flykt
2015-03-25fstab-generator: don't accept missing root=, but accept root=noneTobias Hunger
And other non-device entries (like fstab does). Mount whatever the user asked to be mounted on / on the kernel command line. Do less sanity check and do *not* bail out when the mount device looks strange or does not exist. This basically makes the changes for deviceless filesystems from yesterday unnecessary and is in line with what we do for filesystems set up in fstab. Remove some code that is now dead (reverting fb02a2775a65 and b0438462). [tomegun: - change patch title/description a bit. - don't touch the /usr logic, that would be a separate change and we don't currently have a convincing use-case for that. - don't bail out on /sys ro. This only makes sense in containers, where we would not be doing this anyway. If there is a use-case we could consider that as a separate patch.]
2015-03-24tmpfiles: avoid out of bounds readThomas Hindoe Paaboel Andersen
Otherwise this will go wrong for 'v'.
2015-03-24rules: storage - support MemoryStick (non-Pro) cardsMantas Mikulėnas
These are handled by a different driver than MemoryStick Pro.
2015-03-24rules: storage - whitelist partitioned MS & MMC devicesKay Sievers
On Mon, Mar 23, 2015 at 8:55 AM, Mantas Mikulėnas <grawity@gmail.com> wrote: > On Tue, Mar 17, 2015 at 11:50 PM, Kay Sievers <kay@vrfy.org> wrote: >> On Tue, Mar 17, 2015 at 5:00 PM, Mantas Mikulėnas <grawity@gmail.com> >> wrote: >> > Accidentally dropped in 1aff20687f4868575. >> > --- >> > rules/60-persistent-storage.rules | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> >> > +KERNEL!="loop*|mmcblk[0-9]*|mspblk[0-9]*|nvme*|sd*|sr*|vd*", >> > GOTO="persistent_storage_end" >> >> We can't do that, we need to ignore the mmc*rpmb devices: >> >> http://cgit.freedesktop.org/systemd/systemd/commit/?id=b87b01cf83947f467f3c46d9831cd67955fc46b9 >> >> Maybe "mmcblk*[0-9]" will work? > > Yeah, that would probably work (the names are like mmcblk0p1 etc.)
2015-03-24TODOTom Gundersen
2015-03-24timedatectl: remove unused variablesThomas Hindoe Paaboel Andersen
2015-03-24man: Second example systemd-socket-proxyd does not need a Unix socket listener.David Strauss
2015-03-24rules: storage - don't apply rules to remove eventsTom Gundersen
This line was accidentally lost in 52346b5f5424.
2015-03-24timedate: remove daylight saving time handling and tzfile parserKay Sievers
We planned to support (the conceptually broken) daylight saving time/local time features in the kernel, SCSI, networking, FAT filesystem, but it turned out to be a race we cannot win and do not want to get involved. Systemd should not fiddle with daylight saving time or parse timezone information itself. Leave everything to glibc or tools like date(1) and do not make any promises or raise expectations that systemd should handle anything like this.
2015-03-24timedatectl: fix when queried system has differn't timezoneShawn Landden
Also allow getting time from time(2) when BUS_TRANSPORT_MACHINE. v2: check for error
2015-03-24po: update Russian translationSergey Ptashnick
Add strings for importd, following 587fec427c.
2015-03-24bootchart: more useful error message for common errorShawn Landden
Reported-by: tfirg_ on IRC
2015-03-24bootchart: remove duplicated code, prevent creating empty filesShawn Landden
In Debian and rawhide Fedora, which have CONFIG_SCHEDSTATS=n, bootchart creates empty files in /run/log before printing an error. Stop doing that. Moreover this duplicated part of the code doesn't even have error checking so there is no error avoided by doing this early. Reported-by: tfirg_ on IRC
2015-03-24fstab-generator: Do not check deviceless filesystemsTobias Hunger
There is no need to check those.
2015-03-24fstab-generator: Support root on tmpfs (or other deviceless FS)Tobias Hunger
This allows for stateless systems.
2015-03-23sd-rtnl: handle empty multi-part message from the kernelAlin Rauta
We strips out NLMSG_DONE piece from a multi-part message adding into the receive queue only the messages containing actual data. If we send a request to the kernel for getting the forwarding database table (just an example), the response will be a multi-part message like below: 1. FDB entry 1; 2. FDB entry 2; 3. NLMSG_DONE; We strip out "3. NLMSG_DONE;" part and places into the receive queue a pointer to "1. FDB entry 1; 2. FDB entry 2". But if the FDB table is empty, the respose from the kernel will look like below: 1. NLMSG_DONE; We strip out "1. NLMSG_DONE;" part and since there is no actual data got, it continues waiting until reaching timeout. Therefore, a call to "sd_rtnl_call" to send and wait for a response from kernel will exit with timeout which is interpreted as error in communication. This patch puts the NLMSG_DONE message on the receive queue if it ends an empty multi-part message. This situation is detected in sd_rtnl_call() and in the callback code and NULL is returned to the caller instead. [tomegun: - added/reworded commit message - extend the same support to sd_rtnl_call_async() - drop debug logging from library, we only do this if something is really wrong, but an empty multi-part message is perfectly normal - modernize the code we touch whilst we are at it]
2015-03-22man: add journal-remote.conf(5)Chris Morgan
2015-03-21timedated: fix enable/disable reversalZbigniew Jędrzejewski-Szmek
Bug introduced in 984f1b1d1b. The state was flipped later, but the enable/disable routine made use of the state to decide what to do. context_enable_ntp() and context_start_ntp() now get the desired state directly, so the Context parameter can be removed.
2015-03-21core: make SELinux enable/disable check symmetricZbigniew Jędrzejewski-Szmek
We'd use the generic check for disable, and a unit-file-specific one for enable. Use the more specific one both ways. systemd[1]: SELinux access check scon=system_u:system_r:systemd_timedated_t:s0 tcon=system_u:system_r:init_t:s0 tclass=system perm=disable path=(null) cmdline=/usr/lib/systemd/systemd-timedated: -13 systemd[1]: SELinux access check scon=system_u:system_r:systemd_timedated_t:s0 tcon=system_u:object_r:systemd_unit_file_t:s0 tclass=service perm=enable path=/usr/lib/systemd/system/systemd-timesyncd.service cmdline=/usr/lib/systemd/systemd-timedated: -13 https://bugzilla.redhat.com/show_bug.cgi?id=1014315
2015-03-21timedated: flip internal status after executing operationZbigniew Jędrzejewski-Szmek
timedated would set the internal status before calling out to systemd to do the actual change. When the operation was refused because of a SELinux denial, the state kept in timedated would get out of sync, and the second call from timedatectl would appear to succeed. https://bugzilla.redhat.com/show_bug.cgi?id=1014315
2015-03-21missing.h: add more btrfs types and definesMichael Olbrich
2015-03-21fstab-generator: ignore invalid swap priorityZbigniew Jędrzejewski-Szmek
A failed priority is not something worth stopping boot over. Most people have only one swap device, in which case priority is irrelevant, and even if there is more than one swap device, they are all usable, and ignoring the priority field should only result in some loss of performance. The kernel will report the priority as -1 if not set, so it's easy for people to make this mistake. https://bugzilla.redhat.com/show_bug.cgi?id=1204336
2015-03-21networkd: use LOG_WARN not LOG_ERR for non-fatal errorsZbigniew Jędrzejewski-Szmek
2015-03-21shared/mkdir: do not set errno in addition to return valueZbigniew Jędrzejewski-Szmek
All callers look at the return value anyway.
2015-03-20rules: avoid 'device/' accessesDavid Herrmann
We should never access parents, as the sysfs hierarchy is in no way stable. Use KERNELS== etc. to match on a parent, then access it via $attr{} (which accesses the matching device, not the current device).
2015-03-20rules: fix input-name for keyboard rulesDavid Herrmann
We match on the evdev node, but only the parent has a "name" attribute. Use $attr{device/name} to access it. This is borked since 2013, I wonder how that ever worked? Maybe this will suddenly fix all the DMI-based key detections. Thanks to Peter Hutterer for catching this!
2015-03-19man: add h/H to tmpfiles.d(5)Goffredo Baroncelli
2015-03-19Allow systemd-tmpfiles to set the file/directory attributesGoffredo Baroncelli
Allow systemd-tmpfiles to set the file/directory attributes, like chattr(1) does. Two more commands are added: 'H' and 'h' to set the attributes, recursively and not.
2015-03-19Add change_attr_fd()Goffredo Baroncelli
Add change_attr_fd() function to modify the file/directory attribute.
2015-03-19po: updated Swedish translationSebastian Rasmussen
https://bugs.freedesktop.org/show_bug.cgi?id=89598
2015-03-19hwdb: ship ids-update.pl & sdio.ids in the release tarballsDimitri John Ledkov
This makes it easier to apply stable branch patches on top of the release tarball.
2015-03-19hwdb: add HP ProBook 450G0Zbigniew Jędrzejewski-Szmek
https://bugs.freedesktop.org/show_bug.cgi?id=89684
2015-03-19fsck: use %zu for size_tThomas Hindoe Paaboel Andersen
cur and max were changed to size_t in ac6e2f0dfc2e800f01c79ecea2b811914110a7b9 update the format accordingly.
2015-03-19resolved: Do not add .busname dependencies, when compiling without kdbus.Dimitri John Ledkov
2015-03-19strv: return NULL from strv_free()David Herrmann
We always return NULL/invalid-object from destructors, fix strv_free() to do the same.