Skip to content
This repository has been archived by the owner on Jul 1, 2020. It is now read-only.

Grouping all together (error: call to '__read_overflow2') #147

Closed
FAMILIAR-project opened this issue Apr 25, 2019 · 0 comments
Closed

Grouping all together (error: call to '__read_overflow2') #147

FAMILIAR-project opened this issue Apr 25, 2019 · 0 comments
Labels
tuxml-study-buildfailures Discussions/insights about build failures

Comments

@FAMILIAR-project
Copy link
Collaborator

Issues #142 #145 #146 show that the same kind of error messages occurs.
Unfortunately the rule-based decision tree is disturbing since it lets suppose that different combinations of options cause the failure.

So I've tried to explore a more "generic" rule:
rawtuxdata.query("GENERIC_ALLOCATOR == 'n' & DRM_VBOXVIDEO != 'y' & WANXL_BUILD_FIRMWARE != 'y' & AIC7XXX_BUILD_FIRMWARE != 'y' & AIC79XX_BUILD_FIRMWARE != 'y' & vmlinux == -1")[['cid', 'vmlinux', 'IPV6', 'UBSAN_SANITIZE_ALL', 'INFINIBAND_ADDR_TRANS', 'FORTIFY_SOURCE', 'UBSAN_ALIGNMENT', 'UBSAN_NULL', 'NET_FOU_IP_TUNNELS', 'MLX5_INFINIBAND']]

We can see a pattern here (FORTIFY_SOURCE with UBSAN and IPV6=n) that doesn't appear as such in the decision tree:

cid	vmlinux	IPV6	UBSAN_SANITIZE_ALL	INFINIBAND_ADDR_TRANS	FORTIFY_SOURCE	UBSAN_ALIGNMENT	UBSAN_NULL	NET_FOU_IP_TUNNELS	MLX5_INFINIBAND
837	30837	-1	n	y	y	y	n	y	y	n
2832	32852	-1	n	y	y	y	y	y	y	n
5274	45279	-1	n	y	y	y	y	y	n	n
10153	50174	-1	n	y	y	y	y	n	y	n
2326	62326	-1	n	y	y	y	n	y	n	n
5670	65670	-1	n	n	n	y	n	n	n	n
10518	70585	-1	n	y	y	y	y	y	y	m

rawtuxdata.query("GENERIC_ALLOCATOR == 'n' & DRM_VBOXVIDEO != 'y' & WANXL_BUILD_FIRMWARE != 'y' & AIC7XXX_BUILD_FIRMWARE != 'y' & AIC79XX_BUILD_FIRMWARE != 'y' & vmlinux == -1")['cid'].values array([30837, 32852, 45279, 50174, 62326, 65670, 70585])

Do they really have the same error messages?

cids_abstract_overflow2 = [30837, 32852, 45279, 50174, 62326, 65670, 70585]
for cid in cids_abstract_overflow2:
    print("######## configuration cid", cid)
    for err in err_logs_configuration(cid).splitlines(): #  79099, 59253, 55986, 50359: same    
        if "read_overflow2" in err:
            print (err)
        #if "Cyclomatic" not in err:
        #    print (err)
    print("######### (end)")
    print()
    print()

All configurations have the message failure __read_overflow2();

######## configuration cid 30837
./include/linux/string.h:305:4: error: call to '__read_overflow2' declared with attribute error: detected read beyond size of object passed as 2nd parameter
    __read_overflow2();
######### (end)


######## configuration cid 32852
./include/linux/string.h:305:4: error: call to '__read_overflow2' declared with attribute error: detected read beyond size of object passed as 2nd parameter
    __read_overflow2();
######### (end)


######## configuration cid 45279
./include/linux/string.h:305:4: error: call to '__read_overflow2' declared with attribute error: detected read beyond size of object passed as 2nd parameter
    __read_overflow2();
######### (end)


######## configuration cid 50174
./include/linux/string.h:305:4: error: call to '__read_overflow2' declared with attribute error: detected read beyond size of object passed as 2nd parameter
    __read_overflow2();
######### (end)


######## configuration cid 62326
./include/linux/string.h:305:4: error: call to '__read_overflow2' declared with attribute error: detected read beyond size of object passed as 2nd parameter
    __read_overflow2();
######### (end)


######## configuration cid 65670
######### (end)


######## configuration cid 70585
./include/linux/string.h:305:4: error: call to '__read_overflow2' declared with attribute error: detected read beyond size of object passed as 2nd parameter
    __read_overflow2();
######### (end)

except cid=65670.
Why?

this configuration is the only one to not have the pattern (INFINIBAND_ADDR_TRANS is 'n' and UBSAN are all 'n')

the log message is as follows

["drivers/gpu/drm/nouveau/nouveau_backlight.o: In function `nouveau_backlight_init':",
 "nouveau_backlight.c:(.text+0x5a6): undefined reference to `backlight_device_register'",
 "nouveau_backlight.c:(.text+0x6cb): undefined reference to `backlight_device_register'",
 "drivers/gpu/drm/nouveau/nouveau_backlight.o: In function `nouveau_backlight_exit':",
 "nouveau_backlight.c:(.text+0x84d): undefined reference to `backlight_device_unregister'",
 'make: *** [vmlinux] Error 1']

side-note: MLX5_INFINIBAND seems to have an (indirect) effect rawtuxdata.query("MLX5_INFINIBAND == 'y' & GENERIC_ALLOCATOR == 'n' & DRM_VBOXVIDEO != 'y' & WANXL_BUILD_FIRMWARE != 'y' & AIC7XXX_BUILD_FIRMWARE != 'y' & AIC79XX_BUILD_FIRMWARE != 'y'")[['cid', 'vmlinux', 'IPV6', 'UBSAN_SANITIZE_ALL', 'INFINIBAND_ADDR_TRANS', 'FORTIFY_SOURCE', 'UBSAN_ALIGNMENT', 'UBSAN_NULL', 'NET_FOU_IP_TUNNELS', 'MLX5_INFINIBAND']] (when set to 'yes' there is no problem)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
tuxml-study-buildfailures Discussions/insights about build failures
Projects
None yet
Development

No branches or pull requests

1 participant