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