Bug#819290: Stack trace with symbols
Yuriy M. Kaminskiy
yumkam at gmail.com
Sun Mar 27 03:14:17 BST 2016
On 27.03.2016 05:01, Yuriy M. Kaminskiy wrote:
> 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.
See also upstream commit 5e1558f4a09e596561c9168384f2258e7c0718a1
P.S. asserts, asserts, asserts everywhere. /me hates.
[...]
>
>> I hope that helps,
>> Kingsley
>>
>
More information about the Pkg-systemd-maintainers
mailing list