[R-pkg-devel] Segmentation Fault cause 'memory not mapped' on Debian only

Joshua Ulrich jo@h@m@u|r|ch @end|ng |rom gm@||@com
Fri Apr 21 21:48:31 CEST 2023


Hi David,

In addition to running under valgrind as Dirk suggests below, you
should also run under UBSAN and ASAN.

You can do all 3 (and more) using Winston Cheng's docker images:
https://github.com/wch/r-debug/

That should help you narrow down the problematic code.

Best,
Josh


On Fri, Apr 21, 2023 at 2:33 PM Dirk Eddelbuettel <edd using debian.org> wrote:
>
>
> Hi David,
>
> On 21 April 2023 at 19:17, D Z wrote:
> | Hi all,
> | I wanted to publish my RITCH package (https://github.com/DavZim/RITCH) to CRAN, which has Rcpp code.
>
> That would be great!
>
> | It has, in it’s CICD Pipeline, Tests for Macos, Windows, and Ubuntu (devel, release,, and oldrel-1), which all succeed on Github Actions.
> | When I submitted the package to CRAN, I was notified, that I got the following error on Debian (the tests on Windows throw no such bug, neither do the Github Actions tests):
> |
> |
> |    *** caught segfault ***
> |
> |   address 0x55939b7ca000, cause 'memory not mapped'
> |
> |   Segmentation fault
> |
> | The full Report is currently available here: https://win-builder.r-project.org/incoming_pretest/RITCH_0.1.14_20230420_223157/Debian/00check.log (note the error happens in the test_filter_itch.R unit tests).
> |
> | I looked for the error online but couldn’t find anything useful, and as I am not able to reproduce the segfault locally, cannot debug it.
> | Do you have any ideas or hunches what might cause this and how to resolve it?
>
> "Absence of error" on one platform does proove correctness on all, the hint
> from the segfault should be taken seriously.  I just updated my older
> checkout of your repo, built a current tarball and simply invoked
>
>    R CMD check --use-valgrind RITCH_0.1.14.tar.gz
>
> which you could do on CI too (I can help as needed, I would also pull the CI
> runners forward from Ubuntu 20.04 to 22.04). When we do the above, the
> examples output file RITCH-Ex.Rout ends in
>
>   ==2269271== LEAK SUMMARY:
>   ==2269271==    definitely lost: 1,363,969 bytes in 5,473 blocks
>   ==2269271==    indirectly lost: 177,235 bytes in 1,281 blocks
>   ==2269271==      possibly lost: 101,924,267 bytes in 148 blocks
>   ==2269271==    still reachable: 89,572,890 bytes in 17,950 blocks
>   ==2269271==         suppressed: 0 bytes in 0 blocks
>   ==2269271== Reachable blocks (those to which a pointer was found) are not shown.
>   ==2269271== To see them, rerun with: --leak-check=full --show-leak-kinds=all
>   ==2269271==
>   ==2269271== ERROR SUMMARY: 30 errors from 30 contexts (suppressed: 0 from 0)
>
> and the tests end in
>
>   ==2273761== LEAK SUMMARY:
>   ==2273761==    definitely lost: 5,223,981 bytes in 141,151 blocks
>   ==2273761==    indirectly lost: 2,241,700 bytes in 2,767 blocks
>   ==2273761==      possibly lost: 1,201,493,644 bytes in 270 blocks
>   ==2273761==    still reachable: 133,909,136 bytes in 19,110 blocks
>   ==2273761==         suppressed: 0 bytes in 0 blocks
>   ==2273761== Reachable blocks (those to which a pointer was found) are not shown.
>   ==2273761== To see them, rerun with: --leak-check=full --show-leak-kinds=all
>   ==2273761==
>   ==2273761== ERROR SUMMARY: 43 errors from 39 contexts (suppressed: 0 from 0)
>
> That probably warrants a few more close looks.
>
> Hth, Dirk
>
> --
> dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
>
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel



-- 
Joshua Ulrich  |  about.me/joshuaulrich
FOSS Trading  |  www.fosstrading.com



More information about the R-package-devel mailing list