[ESS] R-devel crashes when can't find function

Sebastian Meyer @eb@meyer @end|ng |rom |@u@de
Wed Feb 5 14:06:53 CET 2025


I could reproduce the problem in R-devel.

It is not an ESS-specific bug: it happens under 
`options(show.error.locations = TRUE)`, which is unset by default but 
set by ESS. The following is sufficient to trigger the segfault:

     options(show.error.locations = TRUE)
     foo()

I guess the issue is related to PR#18841 
<https://bugs.r-project.org/show_bug.cgi?id=18841>, merged last week. I 
left a comment there.

Best,

	Sebastian


Am 05.02.25 um 11:25 schrieb Toby Hocking via ESS-help:
> Here is the crash report that I forgot in my original post
> 
> ==34394== Memcheck, a memory error detector
> ==34394== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
> ==34394== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
> ==34394== Command: /home/tdhock/lib/R/bin/exec/R --no-readline
> ==34394==
> 
> R Under development (unstable) (2025-02-02 r87676) -- "Unsuffered
> Consequences"
> Copyright (C) 2025 The R Foundation for Statistical Computing
> Platform: x86_64-pc-linux-gnu
> 
> R est un logiciel libre livré sans AUCUNE GARANTIE.
> Vous pouvez le redistribuer sous certaines conditions.
> Tapez 'license()' ou 'licence()' pour plus de détails.
> 
> R est un projet collaboratif avec de nombreux contributeurs.
> Tapez 'contributors()' pour plus d'information et
> 'citation()' pour la façon de le citer dans les publications.
> 
> Tapez 'demo()' pour des démonstrations, 'help()' pour l'aide
> en ligne ou 'help.start()' pour obtenir l'aide au format HTML.
> Tapez 'q()' pour quitter R.
> 
> Le chargement a nécessité le package : grDevices
> 
>> foo()
> ==34394== Invalid read of size 8
> ==34394==    at 0x499B77C: R_GetCurrentSrcref (in
> /home/tdhock/lib/R/lib/libR.so)
> ==34394==    by 0x4996DD3: verrorcall_dflt (in
> /home/tdhock/lib/R/lib/libR.so)
> ==34394==    by 0x49976BD: Rf_errorcall (in /home/tdhock/lib/R/lib/libR.so)
> ==34394==    by 0x4997793: Rf_errorcall_cpy (in
> /home/tdhock/lib/R/lib/libR.so)
> ==34394==    by 0x498B205: Rf_findFun3 (in /home/tdhock/lib/R/lib/libR.so)
> ==34394==    by 0x499F8B8: Rf_eval (in /home/tdhock/lib/R/lib/libR.so)
> ==34394==    by 0x49A62A2: do_set (in /home/tdhock/lib/R/lib/libR.so)
> ==34394==    by 0x499FA38: Rf_eval (in /home/tdhock/lib/R/lib/libR.so)
> ==34394==    by 0x49F2F75: Rf_ReplIteration (in
> /home/tdhock/lib/R/lib/libR.so)
> ==34394==    by 0x49F316B: R_ReplConsole (in /home/tdhock/lib/R/lib/libR.so)
> ==34394==    by 0x49F4BA3: run_Rmainloop (in /home/tdhock/lib/R/lib/libR.so)
> ==34394==    by 0x49F4BB9: Rf_mainloop (in /home/tdhock/lib/R/lib/libR.so)
> ==34394==  Address 0x180 is not stack'd, malloc'd or (recently) free'd
> ==34394==
> 
>   *** caught segfault ***
> address 0x180, cause 'memory not mapped'
> 
> Possible actions:
> 1: abort (with core dump, if enabled)
> 2: normal R exit
> 3: exit R without saving workspace
> 4: exit R saving workspace
> Selection:
> 
> On Wed, Feb 5, 2025 at 11:22 AM Toby Hocking <tdhock5 using gmail.com> wrote:
> 
>> Hi, I'm not sure if this is a bug in R-devel or ESS, but I'm reporting
>> here first.
>>
>> When I type foo() at the commend line, I expect R to give me an error
>> message such as "function foo() not found" and that is what I get using the
>> command line:
>> (base) tdhock using tdhock-MacBook:~/R/R-devel$ ~/R/R-devel/bin/R --no-save -e
>> "foo()"
>>
>> R Under development (unstable) (2025-02-02 r87676) -- "Unsuffered
>> Consequences"
>> Copyright (C) 2025 The R Foundation for Statistical Computing
>> Platform: x86_64-pc-linux-gnu
>>
>> R est un logiciel libre livré sans AUCUNE GARANTIE.
>> Vous pouvez le redistribuer sous certaines conditions.
>> Tapez 'license()' ou 'licence()' pour plus de détails.
>>
>> R est un projet collaboratif avec de nombreux contributeurs.
>> Tapez 'contributors()' pour plus d'information et
>> 'citation()' pour la façon de le citer dans les publications.
>>
>> Tapez 'demo()' pour des démonstrations, 'help()' pour l'aide
>> en ligne ou 'help.start()' pour obtenir l'aide au format HTML.
>> Tapez 'q()' pour quitter R.
>>
>> Le chargement a nécessité le package : grDevices
>>> foo()
>> Erreur dans foo() : impossible de trouver la fonction "foo"
>> Exécution arrêtée
>>
>> But when I do the same thing inside ESS, R crashes.
>> Below I did C-u M-x R -d valgrind RET to start R with valgrind inside ESS,
>> then I typed foo() RET in the *R* buffer, which crashed. Can anybody
>> reproduce?
>>
>> Can somebody help me reproduce this on the command line? (outside of ESS)
>> so I can report this to R-devel?
>>
>> Thanks
>> Toby
>>
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> ESS-help using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/ess-help



More information about the ESS-help mailing list