Re: [Rd] valgrind complains about regex.c (PR#8043)

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Tue 02 Aug 2005 - 06:13:54 GMT

Did you compile R without optimization? Such reads are often the result of read-aheads produced by the optimizer in an attempt to keep pipelines full (and are harmless).

On an un-optimized build of R I am unable to reproduce this. (I also was unable to reproduce it on my optimized build of 2.1.1 using gcc 3.4.4, although I did get a report on other read-aheads.)

On Mon, 1 Aug 2005 charlie@stat.umn.edu wrote:

> I think I am using objects according to the man page.
> This seems to be a valid regular expression. But whether
> I know what I'm doing or no, it still shouldn't be doing
> what valgrind seems to be saying it's doing. (IMHO)

I think you need to take that up with compiler designers: it is common practice.

> ---------- start of script ----------
> Script started on Mon 01 Aug 2005 02:09:00 PM PDT
> linux$ printenv VALGRIND_OPTS
> --tool=3Dmemcheck
> linux$ cat bar.R
>
> foo <- 1
> bar <- 2:3
> baz <- 4:6
> qux <- matrix(7:10, 2)
>
> ls()
> rm(list =3D objects(pattern =3D "^[a-pr-z]"))
> ls()
>
> linux$ R --version
> R 2.1.1 (2005-06-20).
> Copyright (C) 2005 R Development Core Team
>
> R is free software and comes with ABSOLUTELY NO WARRANTY.
> You are welcome to redistribute it under the terms of the GNU
> General Public License. For more information about these matters,
> see http://www.gnu.org/copyleft/gpl.html.
> linux$ gcc --version
> =1B[0mgcc (GCC) 3.3.5 20050117 (prerelease) (SUSE Linux)
> =1B[0mCopyright (C) 2003 Free Software Foundation, Inc.
> =1B[0mThis is free software; see the source for copying conditions. There =
> is NO
> =1B[0mwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PU=
> RPOSE.
> =1B[0m
> linux$ cat /etc/SuSE-release=20
> SuSE Linux 9.3 (i586)
> VERSION =3D 9.3
> linux$ R --vanilla --debugger=3Dvalgrind < bar.R >| bar.Rout
> =3D=3D22324=3D=3D Memcheck, a memory error detector for x86-linux.
> =3D=3D22324=3D=3D Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward =
> et al.
> =3D=3D22324=3D=3D Using valgrind-2.2.0, a program supervision framework for=
> x86-linux.
> =3D=3D22324=3D=3D Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward =
> et al.
> =3D=3D22324=3D=3D For more details, rerun with: -v
> =3D=3D22324=3D=3D=20
> =3D=3D22324=3D=3D Invalid read of size 4
> =3D=3D22324=3D=3D at 0x81255AD: parse_expression (regex.c:5045)
> =3D=3D22324=3D=3D by 0x8125868: parse_branch (regex.c:4475)
> =3D=3D22324=3D=3D by 0x8125913: parse_reg_exp (regex.c:4420)
> =3D=3D22324=3D=3D by 0x81261B3: Rf_regcomp (regex.c:4384)
> =3D=3D22324=3D=3D Address 0x1C1E23A8 is 0 bytes after a block of size 32 a=
> lloc'd
> =3D=3D22324=3D=3D at 0x1B90650D: calloc (in /usr/lib/valgrind/vgpreload_=
> memcheck.so)
> =3D=3D22324=3D=3D by 0x81247B5: parse_expression (regex.c:5406)
> =3D=3D22324=3D=3D by 0x8125868: parse_branch (regex.c:4475)
> =3D=3D22324=3D=3D by 0x8125913: parse_reg_exp (regex.c:4420)
> =3D=3D22324=3D=3D=20
> =3D=3D22324=3D=3D Invalid write of size 4
> =3D=3D22324=3D=3D at 0x81255B2: parse_expression (regex.c:5045)
> =3D=3D22324=3D=3D by 0x8125868: parse_branch (regex.c:4475)
> =3D=3D22324=3D=3D by 0x8125913: parse_reg_exp (regex.c:4420)
> =3D=3D22324=3D=3D by 0x81261B3: Rf_regcomp (regex.c:4384)
> =3D=3D22324=3D=3D Address 0x1C1E23A8 is 0 bytes after a block of size 32 a=
> lloc'd
> =3D=3D22324=3D=3D at 0x1B90650D: calloc (in /usr/lib/valgrind/vgpreload_=
> memcheck.so)
> =3D=3D22324=3D=3D by 0x81247B5: parse_expression (regex.c:5406)
> =3D=3D22324=3D=3D by 0x8125868: parse_branch (regex.c:4475)
> =3D=3D22324=3D=3D by 0x8125913: parse_reg_exp (regex.c:4420)
> =3D=3D22324=3D=3D=20
> =3D=3D22324=3D=3D ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 39 f=
> rom 2)
> =3D=3D22324=3D=3D malloc/free: in use at exit: 12691882 bytes in 6426 block=
> s.
> =3D=3D22324=3D=3D malloc/free: 32534 allocs, 26108 frees, 33105500 bytes al=
> located.
> =3D=3D22324=3D=3D For a detailed leak analysis, rerun with: --leak-check=
> =3Dyes
> =3D=3D22324=3D=3D For counts of detected errors, rerun with: -v
> linux$ exit
>
> Script done on Mon 01 Aug 2005 02:10:42 PM PDT
> ---------- end of script ----------
> --=20
> Charles Geyer
> Professor, School of Statistics
> University of Minnesota
> charlie@stat.umn.edu
>
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Tue Aug 02 16:17:14 2005

This archive was generated by hypermail 2.1.8 : Mon 20 Feb 2006 - 03:21:15 GMT