Bug#819290: Stack trace with symbols

Yuriy M. Kaminskiy yumkam at gmail.com
Sun Mar 27 03:01:28 BST 2016


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 at entry=0x81f377f8, dev=dev at entry=0x0, path=path at 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 at entry=0x81f377f8, node=0x82005aa8 "/dev/sde1", add=add at 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
>




More information about the Pkg-systemd-maintainers mailing list