mirror of
https://github.com/systemd/systemd.git
synced 2025-03-31 14:50:15 +03:00
Merge pull request #22172 from yuwata/udev-sd-device-more-debugging-logs
udev, sd-device: more debugging logs
This commit is contained in:
commit
b09869eaf7
@ -152,7 +152,9 @@ int device_set_syspath(sd_device *device, const char *_syspath, bool verify) {
|
||||
if (verify) {
|
||||
r = chase_symlinks(_syspath, NULL, 0, &syspath, NULL);
|
||||
if (r == -ENOENT)
|
||||
return -ENODEV; /* the device does not exist (any more?) */
|
||||
/* the device does not exist (any more?) */
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(ENODEV),
|
||||
"sd-device: Failed to chase symlinks in \"%s\".", _syspath);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "sd-device: Failed to get target of '%s': %m", _syspath);
|
||||
|
||||
@ -173,7 +175,7 @@ int device_set_syspath(sd_device *device, const char *_syspath, bool verify) {
|
||||
|
||||
new_syspath = path_join("/sys", p);
|
||||
if (!new_syspath)
|
||||
return -ENOMEM;
|
||||
return log_oom_debug();
|
||||
|
||||
free_and_replace(syspath, new_syspath);
|
||||
path_simplify(syspath);
|
||||
@ -187,30 +189,31 @@ int device_set_syspath(sd_device *device, const char *_syspath, bool verify) {
|
||||
if (access(path, F_OK) < 0) {
|
||||
if (errno == ENOENT)
|
||||
/* this is not a valid device */
|
||||
return -ENODEV;
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(ENODEV),
|
||||
"sd-device: the uevent file \"%s\" does not exist.", path);
|
||||
|
||||
return log_debug_errno(errno, "sd-device: cannot access uevent file for %s: %m", syspath);
|
||||
}
|
||||
} else {
|
||||
/* everything else just needs to be a directory */
|
||||
if (!is_dir(syspath, false))
|
||||
return -ENODEV;
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(ENODEV),
|
||||
"sd-device: the syspath \"%s\" is not a directory.", syspath);
|
||||
}
|
||||
} else {
|
||||
syspath = strdup(_syspath);
|
||||
if (!syspath)
|
||||
return -ENOMEM;
|
||||
return log_oom_debug();
|
||||
}
|
||||
|
||||
devpath = syspath + STRLEN("/sys");
|
||||
|
||||
if (devpath[0] != '/')
|
||||
/* '/sys' alone is not a valid device path */
|
||||
return -ENODEV;
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(ENODEV), "sd-device: \"/sys\" alone is not a valid device path.");
|
||||
|
||||
r = device_add_property_internal(device, "DEVPATH", devpath);
|
||||
if (r < 0)
|
||||
return r;
|
||||
return log_debug_errno(r, "sd-device: Failed to add \"DEVPATH\" property for device \"%s\": %m", syspath);
|
||||
|
||||
free_and_replace(device->syspath, syspath);
|
||||
device->devpath = devpath;
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "errno-util.h"
|
||||
#include "escape.h"
|
||||
#include "fd-util.h"
|
||||
#include "id128-util.h"
|
||||
#include "log.h"
|
||||
#include "macro.h"
|
||||
#include "parse-util.h"
|
||||
@ -337,6 +338,7 @@ bool device_for_action(sd_device *dev, sd_device_action_t a) {
|
||||
|
||||
void log_device_uevent(sd_device *device, const char *str) {
|
||||
sd_device_action_t action = _SD_DEVICE_ACTION_INVALID;
|
||||
sd_id128_t event_id = SD_ID128_NULL;
|
||||
uint64_t seqnum = 0;
|
||||
|
||||
if (!DEBUG_LOGGING)
|
||||
@ -344,9 +346,12 @@ void log_device_uevent(sd_device *device, const char *str) {
|
||||
|
||||
(void) sd_device_get_seqnum(device, &seqnum);
|
||||
(void) sd_device_get_action(device, &action);
|
||||
log_device_debug(device, "%s%s(SEQNUM=%"PRIu64", ACTION=%s)",
|
||||
(void) sd_device_get_trigger_uuid(device, &event_id);
|
||||
log_device_debug(device, "%s%s(SEQNUM=%"PRIu64", ACTION=%s%s%s)",
|
||||
strempty(str), isempty(str) ? "" : " ",
|
||||
seqnum, strna(device_action_to_string(action)));
|
||||
seqnum, strna(device_action_to_string(action)),
|
||||
sd_id128_is_null(event_id) ? "" : ", UUID=",
|
||||
sd_id128_is_null(event_id) ? "" : id128_to_uuid_string(event_id, (char[ID128_UUID_STRING_MAX]){}));
|
||||
}
|
||||
|
||||
int udev_rule_parse_value(char *str, char **ret_value, char **ret_endpos) {
|
||||
|
@ -11,8 +11,10 @@ setup() {
|
||||
ACTION=="add", SUBSYSTEM=="mem", KERNEL=="null", OPTIONS="log_level=debug"
|
||||
ACTION=="add", SUBSYSTEM=="mem", KERNEL=="null", PROGRAM=="/bin/sleep 60"
|
||||
EOF
|
||||
echo "event_timeout=10" >>/etc/udev/udev.conf
|
||||
echo "timeout_signal=SIGABRT" >>/etc/udev/udev.conf
|
||||
cat >>/etc/udev/udev.conf <<EOF
|
||||
event_timeout=10
|
||||
timeout_signal=SIGABRT
|
||||
EOF
|
||||
|
||||
systemctl restart systemd-udevd.service
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user