Hi, Does it make sense to withdraw the Windows R 4.0.1 binary until the issue is resolved?
Best, John > -----Original Message----- > From: luke-tier...@uiowa.edu <luke-tier...@uiowa.edu> > Sent: Sunday, June 7, 2020 11:54 AM > To: peter dalgaard <pda...@gmail.com> > Cc: Jeroen Ooms <jeroeno...@gmail.com>; Fox, John <j...@mcmaster.ca>; r- > de...@r-project.org > Subject: Re: [External] Re: [Rd] use of the tcltk package crashes R 4.0.1 > for Windows > > On Sun, 7 Jun 2020, peter dalgaard wrote: > > > So this wasn't tested for a month? > > > > Anyways, Free() is just free() with a check that we're not freeing a > > null pointer, followed by setting the pointer to NULL. At that point > > of tcltk.c, we have > > > > for (objc = i = 0; i < length(avec); i++){ > > const char *s; > > char *tmp; > > if (!isNull(nm) && strlen(s = translateChar(STRING_ELT(nm, i)))){ > > // tmp = calloc(strlen(s)+2, sizeof(char)); > > tmp = Calloc(strlen(s)+2, char); > > *tmp = '-'; > > strcpy(tmp+1, s); > > objv[objc++] = Tcl_NewStringObj(tmp, -1); > > free(tmp); > > } > > if (!isNull(t = VECTOR_ELT(avec, i))) > > objv[objc++] = (Tcl_Obj *) R_ExternalPtrAddr(t); > > } > > > > and I can't see how tmp can be NULL at the free(), nor can I see it > mattering if it is not set to NULL (notice that it goes out of scope with > the for loop). > > Right. And the calloc->Calloc change doesn't look like an issue either > -- just checking for a NULL. > > If the crash is happening in free() then that most likely means corrupted > malloc data structures. Unfortunately that could be happening anywhere. > > Best bet to narrow this down is for someone with a good Windows setup who > can reproduce this to bisect the svn commits and see at what commit this > started happening. Unfortunately my office Windows machine isn't > responding and it will probably take some time to get that fixed. > > Best, > > luke > > > > > -pd > > > > > >> On 7 Jun 2020, at 16:00 , Jeroen Ooms <jeroeno...@gmail.com> wrote: > >> > >> On Sun, Jun 7, 2020 at 3:13 AM Fox, John <j...@mcmaster.ca> wrote: > >>> > >>> Hi, > >>> > >>> The following code, from the examples in ?TkWidgets , immediately > crashes R 4.0.1 for Windows: > >>> > >>> --------------------- snip -------------------- > >>> library("tcltk") > >>> tt <- tktoplevel() > >>> label.widget <- tklabel(tt, text = "Hello, World!") button.widget <- > >>> tkbutton(tt, text = "Push", > >>> command = function()cat("OW!\n")) tkpack(label.widget, > >>> button.widget) # geometry manager > >>> --------------------- snip -------------------- > >> > >> > >> I can reproduce this. The backtrace shows the crash happens in > >> dotTclObjv [/src/library/tcltk/src/tcltk.c@243 ]. This looks like a > >> bug that was introduced by commit 78408/78409 about a month ago. I > >> think the problem is that this commit changes 'calloc' to 'Calloc' > >> without changing the corresponding 'free' to 'Free'. > >> > >> This has nothing to do with the Windows build or installation. > >> Nothing has changed in the windows build procedure between 4.0.0 and > 4.0.1. > >> > >> ______________________________________________ > >> R-devel@r-project.org mailing list > >> https://stat.ethz.ch/mailman/listinfo/r-devel > > > > > > -- > Luke Tierney > Ralph E. Wareham Professor of Mathematical Sciences > University of Iowa Phone: 319-335-3386 > Department of Statistics and Fax: 319-335-3017 > Actuarial Science > 241 Schaeffer Hall email: luke-tier...@uiowa.edu > Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel