Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ubsan devcontainer #5850

Merged
merged 19 commits into from
Dec 22, 2023
Merged

Add ubsan devcontainer #5850

merged 19 commits into from
Dec 22, 2023

Conversation

ben-schwen
Copy link
Member

Adds a new clang devcontainer which can be used for checking ubsan errors.
Also sets up the devcontainer to use cc(). For using clang in codespaces, one has to use cc(CC="clang", omp=FALSE).

          Anyone want to have a go at making a UBSAN GitHub Codespace? Would be quite useful.

Originally posted by @MichaelChirico in #5832 (comment)

ben-schwen and others added 2 commits December 21, 2023 14:27
add symlinks

add RUN

use echo to create .Rprofile

add workdir

symlink + echo

add dependencies for check

add char vec

update echo

update dockerfile

fix FROM

update dirs

use rocker image

rollback to jans clang image

change docker order

change flags

update makevars

update flags

add workdir

change C version

clang working

rm local .Rprofile
Copy link

codecov bot commented Dec 21, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (6782251) 97.46% compared to head (625022f) 97.46%.
Report is 3 commits behind head on master.

❗ Current head 625022f differs from pull request most recent head 5a7108c. Consider uploading reports for the commit 5a7108c to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #5850   +/-   ##
=======================================
  Coverage   97.46%   97.46%           
=======================================
  Files          80       80           
  Lines       14822    14822           
=======================================
  Hits        14447    14447           
  Misses        375      375           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

# setup cc()
WORKDIR /workspaces/data.table

RUN ln -s /workspaces ~/GitHub
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What so this one for?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed for now pending comment


# install dependencies without ubsan flags
RUN Rscript -e ' \
read.dcf("DESCRIPTION", c("Imports", "Suggests")) |> \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{data.table} has very few deps so this is pretty manageable, only takes a few minutes to build.

But for ref. what we've done at {lintr} is specify Config/needs/development with the bare minimum set of packages you'd need to do reasonable development. The idea being if you particularly need vignettes now, you can just install {knitr} yourself from within the container.

Up to us whether we would exclude Suggests by default to get to development faster in the modal case.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -0,0 +1,23 @@
FROM registry.gitlab.com/jangorecki/dockerfiles/r-devel-clang
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In CRAN_Release.cmd, R itself is specifically configured with the UBSAN options, do we not need that to reproduce the issues?

cd ~/build/R-devel-strict-clang
./configure --without-recommended-packages --disable-byte-compiled-packages --enable-strict-barrier --disable-long-double CC="clang-15 -fsanitize=undefined,address -fno-sanitize=float-divide-by-zero -fno-sanitize=alignment -fno-omit-frame-pointer" CFLAGS="-g -O3 -Wall -pedantic"
make

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately while the current setup does appear to pick up the right Makevars for installing {data.table} and gets the .Rprofile correct, it does not appear to reproduce the UBSAN issues mentioned in #5510. Tried with R CMD build . && R CMD check data.table_1.14.99.tar.gz --as-cran (finished with no error).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Possibly R needs to be built with ubsan support. Same as testing for strict barrier. There are some ubsan R docker images online so may be good alternative to use them. I don't think we need ubsan container for codespaces because it is much slower than normal, no? And issues are rather not very frequent.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've been having a go at re-building a configured R, giving up.

I can get R to build but can't get {data.table} to build:

LLVMSymbolizer: error reading file: No such file or directory

=================================================================
==114458==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 6656 byte(s) in 26 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a7fc72f4  (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x212f4)

Direct leak of 1536 byte(s) in 2 object(s) allocated from:
    #0 0x4ac859 in realloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac859)
    #1 0x7fe3a7fc73a0  (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x213a0)

Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a7fbf491 in FcFontSetCreate (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x19491)
    #2 0x7fe3a7cff7f3 in Cairo_StrWidth /workspaces/data.table/R-devel/src/library/grDevices/src/cairo/./cairoFns.c:1972:5
    #3 0x6ee01b in GEStrWidth /workspaces/data.table/R-devel/src/main/engine.c
    #4 0x703521 in GEText /workspaces/data.table/R-devel/src/main/engine.c:1887:9
    #5 0x7fe3ad10f9ee in Rf_GText /workspaces/data.table/R-devel/src/library/graphics/src/graphics.c:3094:5
    #6 0x7fe3ad161a57 in C_title /workspaces/data.table/R-devel/src/library/graphics/src/plot.c:2690:7
    #7 0x628874 in do_External /workspaces/data.table/R-devel/src/main/dotcode.c:576:11
    #8 0x6837e3 in do_Externalgr /workspaces/data.table/R-devel/src/main/dotcode.c:1626:5
    #9 0x746210 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1248:9
    #10 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #11 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #12 0x7a881c in R_execClosure /workspaces/data.table/R-devel/src/main/eval.c
    #13 0x79de43 in applyClosure_core /workspaces/data.table/R-devel/src/main/eval.c:2248:16
    #14 0x79da32 in Rf_applyClosure /workspaces/data.table/R-devel/src/main/eval.c:2268:16
    #15 0x746350 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1268:12
    #16 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #17 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #18 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #19 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #20 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #21 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #22 0x7a881c in R_execClosure /workspaces/data.table/R-devel/src/main/eval.c
    #23 0x79de43 in applyClosure_core /workspaces/data.table/R-devel/src/main/eval.c:2248:16
    #24 0x79da32 in Rf_applyClosure /workspaces/data.table/R-devel/src/main/eval.c:2268:16
    #25 0x87eb3a in dispatchMethod /workspaces/data.table/R-devel/src/main/objects.c:472:16
    #26 0x87e1d0 in Rf_usemethod /workspaces/data.table/R-devel/src/main/objects.c:522:9
    #27 0x87f5f6 in do_usemethod /workspaces/data.table/R-devel/src/main/objects.c:578:9
    #28 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #29 0x7a881c in R_execClosure /workspaces/data.table/R-devel/src/main/eval.c

Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a7fbf491 in FcFontSetCreate (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x19491)
    #2 0x7fe3a7cfecef in Cairo_MetricInfo /workspaces/data.table/R-devel/src/library/grDevices/src/cairo/./cairoFns.c:1949:5
    #3 0x6ed28e in GEMetricInfo /workspaces/data.table/R-devel/src/main/engine.c:2563:2
    #4 0x6eeb5d in GEStrHeight /workspaces/data.table/R-devel/src/main/engine.c:2670:2
    #5 0x7fe3ad11d214 in Rf_GStrHeight /workspaces/data.table/R-devel/src/library/graphics/src/graphics.c:3072:9
    #6 0x7fe3ad14d72d in C_axis /workspaces/data.table/R-devel/src/library/graphics/src/plot.c:1108:20
    #7 0x628874 in do_External /workspaces/data.table/R-devel/src/main/dotcode.c:576:11
    #8 0x6837e3 in do_Externalgr /workspaces/data.table/R-devel/src/main/dotcode.c:1626:5
    #9 0x746210 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1248:9
    #10 0x79d1c0 in Rf_evalList /workspaces/data.table/R-devel/src/main/eval.c:3649:12
    #11 0x746031 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1239:6
    #12 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #13 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #14 0x7a881c in R_execClosure /workspaces/data.table/R-devel/src/main/eval.c
    #15 0x79de43 in applyClosure_core /workspaces/data.table/R-devel/src/main/eval.c:2248:16
    #16 0x79da32 in Rf_applyClosure /workspaces/data.table/R-devel/src/main/eval.c:2268:16
    #17 0x746350 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1268:12
    #18 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #19 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #20 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #21 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #22 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #23 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #24 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #25 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #26 0x7a881c in R_execClosure /workspaces/data.table/R-devel/src/main/eval.c
    #27 0x79de43 in applyClosure_core /workspaces/data.table/R-devel/src/main/eval.c:2248:16
    #28 0x79da32 in Rf_applyClosure /workspaces/data.table/R-devel/src/main/eval.c:2268:16
    #29 0x87eb3a in dispatchMethod /workspaces/data.table/R-devel/src/main/objects.c:472:16

Indirect leak of 663424 byte(s) in 10051 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)

Indirect leak of 66608 byte(s) in 181 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0xbc4d38 in _fini (/workspaces/data.table/R-devel/bin/exec/R+0xbc4d38)

Indirect leak of 5824 byte(s) in 182 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a8598ac1  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0xcac1)
    #2 0x62acd1 in R_doDotCall /workspaces/data.table/R-devel/src/main/dotcode.c:866:17
    #3 0x682ca4 in do_dotcall /workspaces/data.table/R-devel/src/main/dotcode.c:1552:11
    #4 0x746210 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1248:9
    #5 0x7a881c in R_execClosure /workspaces/data.table/R-devel/src/main/eval.c
    #6 0x79de43 in applyClosure_core /workspaces/data.table/R-devel/src/main/eval.c:2248:16
    #7 0x79da32 in Rf_applyClosure /workspaces/data.table/R-devel/src/main/eval.c:2268:16
    #8 0x746350 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1268:12
    #9 0x79d1c0 in Rf_evalList /workspaces/data.table/R-devel/src/main/eval.c:3649:12
    #10 0x746031 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1239:6
    #11 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #12 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #13 0x7a881c in R_execClosure /workspaces/data.table/R-devel/src/main/eval.c
    #14 0x79de43 in applyClosure_core /workspaces/data.table/R-devel/src/main/eval.c:2248:16
    #15 0x79da32 in Rf_applyClosure /workspaces/data.table/R-devel/src/main/eval.c:2268:16
    #16 0x746350 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1268:12
    #17 0x9d6ed4 in R_DispatchOrEvalSP /workspaces/data.table/R-devel/src/main/subset.c:657:11
    #18 0x9d6d69 in do_subset /workspaces/data.table/R-devel/src/main/subset.c:691:8
    #19 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #20 0x7affc4 in do_set /workspaces/data.table/R-devel/src/main/eval.c:3551:8
    #21 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #22 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #23 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #24 0x7a881c in R_execClosure /workspaces/data.table/R-devel/src/main/eval.c
    #25 0x79de43 in applyClosure_core /workspaces/data.table/R-devel/src/main/eval.c:2248:16
    #26 0x79da32 in Rf_applyClosure /workspaces/data.table/R-devel/src/main/eval.c:2268:16
    #27 0x746350 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1268:12
    #28 0x7ab92a in do_if /workspaces/data.table/R-devel/src/main/eval.c:2680:5
    #29 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12

Indirect leak of 5632 byte(s) in 176 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a8598ac1  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0xcac1)
    #2 0x62acd1 in R_doDotCall /workspaces/data.table/R-devel/src/main/dotcode.c:866:17
    #3 0x682ca4 in do_dotcall /workspaces/data.table/R-devel/src/main/dotcode.c:1552:11
    #4 0x746210 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1248:9
    #5 0x7a881c in R_execClosure /workspaces/data.table/R-devel/src/main/eval.c
    #6 0x79de43 in applyClosure_core /workspaces/data.table/R-devel/src/main/eval.c:2248:16
    #7 0x79da32 in Rf_applyClosure /workspaces/data.table/R-devel/src/main/eval.c:2268:16
    #8 0x746350 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1268:12
    #9 0x79d1c0 in Rf_evalList /workspaces/data.table/R-devel/src/main/eval.c:3649:12
    #10 0x746031 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1239:6
    #11 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #12 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #13 0x7a881c in R_execClosure /workspaces/data.table/R-devel/src/main/eval.c
    #14 0x79de43 in applyClosure_core /workspaces/data.table/R-devel/src/main/eval.c:2248:16
    #15 0x79da32 in Rf_applyClosure /workspaces/data.table/R-devel/src/main/eval.c:2268:16
    #16 0x746350 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1268:12
    #17 0x9d6ed4 in R_DispatchOrEvalSP /workspaces/data.table/R-devel/src/main/subset.c:657:11
    #18 0x9d6d69 in do_subset /workspaces/data.table/R-devel/src/main/subset.c:691:8
    #19 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #20 0x79d1c0 in Rf_evalList /workspaces/data.table/R-devel/src/main/eval.c:3649:12
    #21 0x746031 in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1239:6
    #22 0x7ab92a in do_if /workspaces/data.table/R-devel/src/main/eval.c:2680:5
    #23 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #24 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #25 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #26 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #27 0x7aee31 in do_begin /workspaces/data.table/R-devel/src/main/eval.c:2972:10
    #28 0x745ebc in Rf_eval /workspaces/data.table/R-devel/src/main/eval.c:1220:12
    #29 0x7a881c in R_execClosure /workspaces/data.table/R-devel/src/main/eval.c

Indirect leak of 2944 byte(s) in 8 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250028af1af  (<unknown module>)

Indirect leak of 2944 byte(s) in 8 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62501015c2d7  (<unknown module>)

Indirect leak of 2944 byte(s) in 8 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500b8c288f  (<unknown module>)

Indirect leak of 2576 byte(s) in 7 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625009e84567  (<unknown module>)

Indirect leak of 2576 byte(s) in 7 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625010bf63bf  (<unknown module>)

Indirect leak of 2576 byte(s) in 7 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500faa1de7  (<unknown module>)

Indirect leak of 2576 byte(s) in 7 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625000421ac7  (<unknown module>)

Indirect leak of 2576 byte(s) in 7 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250113413df  (<unknown module>)

Indirect leak of 2208 byte(s) in 6 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250112a9ee7  (<unknown module>)

Indirect leak of 2208 byte(s) in 6 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500cd2c347  (<unknown module>)

Indirect leak of 2208 byte(s) in 6 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625000efc78f  (<unknown module>)

Indirect leak of 2208 byte(s) in 6 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625008a60737  (<unknown module>)

Indirect leak of 2144 byte(s) in 67 object(s) allocated from:
    #0 0x4ac6b2 in calloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac6b2)
    #1 0x7fe3a7fc793c  (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x2193c)

Indirect leak of 1840 byte(s) in 5 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500aa65ad7  (<unknown module>)

Indirect leak of 1840 byte(s) in 5 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250112f27ff  (<unknown module>)

Indirect leak of 1536 byte(s) in 48 object(s) allocated from:
    #0 0x4ac6b2 in calloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac6b2)
    #1 0x7fe3a7fc6e0f  (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x20e0f)

Indirect leak of 1472 byte(s) in 4 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250106e6dd7  (<unknown module>)

Indirect leak of 1472 byte(s) in 4 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250079fc6cf  (<unknown module>)

Indirect leak of 1472 byte(s) in 4 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500c7d87cf  (<unknown module>)

Indirect leak of 1472 byte(s) in 4 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500c73ed3f  (<unknown module>)

Indirect leak of 1472 byte(s) in 4 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250032066af  (<unknown module>)

Indirect leak of 1472 byte(s) in 4 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250004b7cf7  (<unknown module>)

Indirect leak of 1472 byte(s) in 4 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625009e49eff  (<unknown module>)

Indirect leak of 1104 byte(s) in 3 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500acb60df  (<unknown module>)

Indirect leak of 1104 byte(s) in 3 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625000fb0fa7  (<unknown module>)

Indirect leak of 1104 byte(s) in 3 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250106b2c9f  (<unknown module>)

Indirect leak of 1104 byte(s) in 3 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500ab89c0f  (<unknown module>)

Indirect leak of 819 byte(s) in 78 object(s) allocated from:
    #0 0x497e34 in strdup (/workspaces/data.table/R-devel/bin/exec/R+0x497e34)
    #1 0x7fe3a7fc6b64 in FcValueSave (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x20b64)

Indirect leak of 736 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250106b37c7  (<unknown module>)

Indirect leak of 736 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500c882647  (<unknown module>)

Indirect leak of 736 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250110f313f  (<unknown module>)

Indirect leak of 736 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250088d39e7  (<unknown module>)

Indirect leak of 736 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625008aa3bb7  (<unknown module>)

Indirect leak of 736 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500cd5e4cf  (<unknown module>)

Indirect leak of 736 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500b2414d7  (<unknown module>)

Indirect leak of 736 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500d08586f  (<unknown module>)

Indirect leak of 736 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500c76df1f  (<unknown module>)

Indirect leak of 736 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625011991e8f  (<unknown module>)

Indirect leak of 736 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250015ac1ff  (<unknown module>)

Indirect leak of 512 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a7fbf567 in FcFontSetAdd (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x19567)

Indirect leak of 384 byte(s) in 12 object(s) allocated from:
    #0 0x4ac6b2 in calloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac6b2)
    #1 0x7fe3a7fc6cae  (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x20cae)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500c763d97  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62501191dcd7  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500fffe0a7  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500a7a214f  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625002b678df  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500a96d777  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625001aa4d7f  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625011b626af  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500a8f3b47  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625000ea294f  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500b970ba7  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x7ffc2fd0124f  ([stack]+0xbe24f)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500e17d647  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500e27275f  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250015e39df  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500ad758e7  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500ddd7e8f  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x6250029e6d07  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500cd1fc5f  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625002b669ff  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x625008251057  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500e239c7f  (<unknown module>)

Indirect leak of 368 byte(s) in 1 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a859fb78  (/usr/lib/x86_64-linux-gnu/libfreetype.so.6+0x13b78)
    #2 0x874ffd in HASHTAB /workspaces/data.table/R-devel/src/main/memory.c:4476:37
    #3 0x870a4a in CAR0 /workspaces/data.table/R-devel/src/main/memory.c:4311:34
    #4 0x62500d6e8837  (<unknown module>)

Indirect leak of 128 byte(s) in 4 object(s) allocated from:
    #0 0x4ac6b2 in calloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac6b2)
    #1 0x7fe3a7fc6d16  (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x20d16)

Indirect leak of 96 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a7fc0e11 in FcLangSetCreate (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x1ae11)

Indirect leak of 48 byte(s) in 2 object(s) allocated from:
    #0 0x4ac53d in malloc (/workspaces/data.table/R-devel/bin/exec/R+0x4ac53d)
    #1 0x7fe3a7fc6931 in FcPatternCreate (/usr/lib/x86_64-linux-gnu/libfontconfig.so.1+0x20931)

SUMMARY: AddressSanitizer: 820883 byte(s) leaked in 11013 allocation(s).

All of those issues look to be coming from R itself.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need ubsan container for codespaces

It's precisely the pain of getting UBSAN right that makes a dedicated codespace attractive. Ideally we can set up the config for it, then run tests there once / cycle.

It's slower than usual, but not painfully (e.g. 10s of minutes to build+test data.table). That's fine for semi-annual testing.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately while the current setup does appear to pick up the right Makevars for installing {data.table} and gets the .Rprofile correct, it does not appear to reproduce the UBSAN issues mentioned in #5510. Tried with R CMD build . && R CMD check data.table_1.14.99.tar.gz --as-cran (finished with no error).

Thats what I noticed yesterday and I think the problem is that the issues in #5510 also need ASan and the ASan runtime library is not present in the image (ls /usr/lib/llvm-*/lib/clang/*/lib/linux/libclang_rt.asan-x86_64.a returns nothing).

Hence, why I didn't mark it as finished because I wanted to add the ASan support today :D

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://rocker-project.org/images/base/r-devel.html maybe we just use ubsan image that is already there? assuming it works. It is just once a couple months test that is already mentioned in release procedure.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

using rocker/r-devel-ubsan-clang I'm able to reproduce the issues in #5510.
Will update.

Only downside all make calls needs to prepended by LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/11/libasan.so ASAN_OPTIONS='detect_leaks=0:detect_odr_violation=0' e.g. LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/11/libasan.so ASAN_OPTIONS='detect_leaks=0:detect_odr_violation=0' make check

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add a README in the folder that includes this step? Or maybe it belongs in CRAN_release (or both)?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess both. But I just found out that using RD CMD instead of R work without Makevars and preloading ASAN so I guess remove r-base from the container and linking devel version directly with R is favorable. Will do.

@MichaelChirico
Copy link
Member

FWIW, here's the CRAN machine configuration that uses some sanitizers:

https://www.stats.ox.ac.uk/pub/bdr/Rconfig/r-devel-linux-x86_64-fedora-gcc

@ben-schwen
Copy link
Member Author

Just ran inside devcontainer

make build
LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/11/libasan.so ASAN_OPTIONS='detect_leaks=0:detect_odr_violation=0' make check
find data.table.Rcheck -name "*.Rout" -exec grep -H "runtime error" {} \;

data.table.Rcheck/tests/main.Rout:utils.c:8:38: runtime error: 2.14748e+09 is outside the range of representable values of type 'int'
data.table.Rcheck/tests/main.Rout:gsumm.c:1167:70: runtime error: nan is outside the range of representable values of type 'long'
data.table.Rcheck/tests/nafill.Rout:assign.c:1007:21: runtime error: inf is outside the range of representable values of type 'int'
data.table.Rcheck/tests/nafill.Rout:assign.c:900:21: runtime error: -4.61169e+18 is outside the range of representable values of type 'int'
data.table.Rcheck/tests/nafill.Rout:assign.c:907:21: runtime error: -1.84467e+19 is outside the range of representable values of type 'long'
data.table.Rcheck/tests/nafill.Rout:assign.c:1024:21: runtime error: -1.84467e+19 is outside the range of representable values of type 'long'

The errors are the same as in #5510

@MichaelChirico
Copy link
Member

Just ran inside devcontainer

make build
LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/11/libasan.so ASAN_OPTIONS='detect_leaks=0:detect_odr_violation=0' make check
find data.table.Rcheck -name "*.Rout" -exec grep -H "runtime error" {} \;

data.table.Rcheck/tests/main.Rout:utils.c:8:38: runtime error: 2.14748e+09 is outside the range of representable values of type 'int'
data.table.Rcheck/tests/main.Rout:gsumm.c:1167:70: runtime error: nan is outside the range of representable values of type 'long'
data.table.Rcheck/tests/nafill.Rout:assign.c:1007:21: runtime error: inf is outside the range of representable values of type 'int'
data.table.Rcheck/tests/nafill.Rout:assign.c:900:21: runtime error: -4.61169e+18 is outside the range of representable values of type 'int'
data.table.Rcheck/tests/nafill.Rout:assign.c:907:21: runtime error: -1.84467e+19 is outside the range of representable values of type 'long'
data.table.Rcheck/tests/nafill.Rout:assign.c:1024:21: runtime error: -1.84467e+19 is outside the range of representable values of type 'long'

The errors are the same as in #5510

awesome!! now the $1M question -- does #5832 fix everything?

@ben-schwen
Copy link
Member Author

Just ran inside devcontainer

make build
LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/11/libasan.so ASAN_OPTIONS='detect_leaks=0:detect_odr_violation=0' make check
find data.table.Rcheck -name "*.Rout" -exec grep -H "runtime error" {} \;

data.table.Rcheck/tests/main.Rout:utils.c:8:38: runtime error: 2.14748e+09 is outside the range of representable values of type 'int'
data.table.Rcheck/tests/main.Rout:gsumm.c:1167:70: runtime error: nan is outside the range of representable values of type 'long'
data.table.Rcheck/tests/nafill.Rout:assign.c:1007:21: runtime error: inf is outside the range of representable values of type 'int'
data.table.Rcheck/tests/nafill.Rout:assign.c:900:21: runtime error: -4.61169e+18 is outside the range of representable values of type 'int'
data.table.Rcheck/tests/nafill.Rout:assign.c:907:21: runtime error: -1.84467e+19 is outside the range of representable values of type 'long'
data.table.Rcheck/tests/nafill.Rout:assign.c:1024:21: runtime error: -1.84467e+19 is outside the range of representable values of type 'long'

The errors are the same as in #5510

awesome!! now the $1M question -- does #5832 fix everything?

I was running this just now and we still have standing:

data.table.Rcheck/tests/nafill.Rout:assign.c:908:21: runtime error: -1.84467e+19 is outside the range of representable values of type 'long'
data.table.Rcheck/tests/nafill.Rout:assign.c:1025:21: runtime error: -1.84467e+19 is outside the range of representable values of type 'long'

@MichaelChirico
Copy link
Member

^ cc @HughParsonage

@ben-schwen ben-schwen marked this pull request as ready for review December 22, 2023 13:49
@MichaelChirico
Copy link
Member

Merging first. Let's iterate to improve but it'll be easier to use once this is in master & current version is already working.

Copy link
Member

@MichaelChirico MichaelChirico left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work!

@MichaelChirico MichaelChirico merged commit eace83a into master Dec 22, 2023
2 checks passed
@MichaelChirico MichaelChirico deleted the codespace_devel_clang branch December 22, 2023 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants