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@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.
See also upstream commit 5e1558f4a09e596561c9168384f2258e7c0718a1
P.S. asserts, asserts, asserts everywhere. /me hates.
[...]
I hope that helps,
Kingsley