On 27.03.2016 03:36, Kingsley G. Morse Jr. wrote:
Hi Yuriy,

OK, that all makes sense.

Here's the full trace with symbols:

#8  0x8017f167 in path_compare (a=<optimized out>, b=0x0) at 
../src/basic/path-util.c:390
         d = <optimized out>
         __PRETTY_FUNCTION__ = "path_compare"

so, it assert() as `b == NULL`
#9  0x8017f308 in path_equal () at ../src/basic/path-util.c:433
No locals.
#10 0x8010c661 in device_setup_unit (m=m@entry=0x81f377f8, dev=dev@entry=0x0, 
path=path@entry=0x82005aa8 "/dev/sde1", main=false) at ../src/core/device.c:324
         e = 0x82006760 "dev-sde1.device"
         sysfs = <optimized out>
         u = 0x8200bad0
         delete = <optimized out>
         r = <optimized out>
         __PRETTY_FUNCTION__ = "device_setup_unit"
         __func__ = "device_setup_unit"

and here argument `b` is sysfs, so sysfs was NULL;
and it is NULL as dev was NULL.

#11 0x8010fbf3 in device_found_node (m=m@entry=0x81f377f8, node=0x82005aa8 
"/dev/sde1", add=add@entry=true, found=DEVICE_FOUND_MOUNT, now=true) at 
../src/core/device.c:830
         dev = 0x0
         st = {st_dev = 53688455864, __pad1 = 0, __st_ino = 7, st_mode = 
2149927392, st_nlink = 2149927392, st_uid = 2149927392, st_gid = 3219526928, 
st_rdev = 13827762142796840961,
           __pad2 = 5223, st_size = -5234089312160518424, st_blksize = 
-1218656384, st_blocks = -5234089864091353088, st_atim = {tv_sec = 224449792, 
tv_nsec = -2113906008}, st_mtim = {
             tv_sec = -2113877109, tv_nsec = -2146119061}, st_ctim = {tv_sec = 
-2145039904, tv_nsec = -2113876944}, st_ino = 13827762864351346689}
         __PRETTY_FUNCTION__ = "device_found_node"
         __func__ = "device_found_node"

and here dev could be NULL only if stat() returned error, and that error was ENOENT (see line 822).

Regression by commit v228-745-gac9d396. Before that commit, device_setup_unit checked that sysfs is not NULL before calling path_equals().
I'd guess this commit should be just reverted.

#12 0x8010fe6c in mount_load_proc_self_mountinfo.lto_priv.530 (m=0x81f377f8, 
set_flags=true) at ../src/core/mount.c:1537
         device = 0x8200ccc8 "/dev/sde1"
         k = <optimized out>
         path = 0x8200cc30 "/media/usb1"
         options = 0x8200cd40 
"rw,nodev,noexec,noatime,nodiratime,sync,fmask=0022,dmask=0022,codepage=437,iocharset=utf8,shortname=mixed,errors=remount-ro"
         fstype = 0x8200ccb8 "vfat"
         d = 0x82005aa8 "/dev/sde1"
         p = 0x8200eee8 "/media/usb1"
         fs = 0x8200cb98
         t = 0x81fe0e90
         i = 0x81fee988
         r = 0
         __PRETTY_FUNCTION__ = "mount_load_proc_self_mountinfo"
         __func__ = "mount_load_proc_self_mountinfo"
#13 0x8011776c in mount_dispatch_io (source=0x81f3f848, fd=9, revents=1, 
userdata=0x81f377f8) at ../src/core/mount.c:1669
         around = 0x0
         gone = 0x0
         m = 0x81f377f8
         what = 0xbfe615b0 ""
         i = {idx = 0, next_key = 0x8018481d <internal_hashmap_iterate+13>}
         u = <optimized out>
         r = <optimized out>
         __PRETTY_FUNCTION__ = "mount_dispatch_io"
         __func__ = "mount_dispatch_io"
#14 0x8011f650 in source_dispatch.lto_priv.983 (s=0x81f3f848) at 
../src/libsystemd/sd-event/sd-event.c:2273
         r = <optimized out>
         __PRETTY_FUNCTION__ = "source_dispatch"
         __func__ = "source_dispatch"
#15 0x801a83ac in sd_event_dispatch (e=0x81f37b20) at 
../src/libsystemd/sd-event/sd-event.c:2625
         p = <optimized out>
         r = <optimized out>
#16 sd_event_run (timeout=<optimized out>, e=0x81f37b20) at 
../src/libsystemd/sd-event/sd-event.c:2684
         r = <optimized out>
#17 manager_loop (m=0x81f377f8) at ../src/core/manager.c:2051
         wait_usec = <optimized out>
         r = <optimized out>
         rl = {interval = 1000000, begin = 141532531177, burst = 50000, num = 1}
         __PRETTY_FUNCTION__ = "manager_loop"
         __func__ = "manager_loop"
#18 0x800f7626 in main (argc=1, argv=0xbfe620c4) at ../src/core/main.c:1827
         m = 0x81f377f8
         r = <optimized out>
         retval = 1
         before_startup = <optimized out>
         after_startup = <optimized out>
         timespan = 
"\000\000\000\000\002\216:V\000\000\000\000\000\320x\267R\231w\267\302x4\267\376\245v\267\000\320x\267\034\231w\267\000\320x\267\302x4\267<\325x\267$\031w\267\000}A\267xyA\267\001\000\000"
         fds = 0x0
         reexecute = false
         shutdown_verb = 0x0
         initrd_timestamp = <optimized out>
         userspace_timestamp = {realtime = 1458797412056566, monotonic = 
67928234}
         kernel_timestamp = {realtime = <optimized out>, monotonic = 0}
         security_start_timestamp = {realtime = 1458797412107590, monotonic = 
67979258}
         security_finish_timestamp = {realtime = 1458797412125352, monotonic = 
67997020}
         systemd = "systemd"
         skip_setup = <optimized out>
         j = <optimized out>
         loaded_policy = false
         arm_reboot_watchdog = false
         queue_default_job = <optimized out>
         empty_etc = <optimized out>
         switch_root_dir = 0x0
         switch_root_init = 0x0
         saved_rlimit_nofile = {rlim_cur = 1024, rlim_max = 4096}
         error_message = 0x0
         __func__ = "main"
         __PRETTY_FUNCTION__ = "main"

I hope that helps,
Kingsley


_______________________________________________
Pkg-systemd-maintainers mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-systemd-maintainers

Reply via email to