[Rd] valgrind complains about save (PR#9096)

From: <charlie_at_stat.umn.edu>
Date: Tue 25 Jul 2006 - 15:18:25 GMT


valgrind complains about the save command in R 2.3.1 as shown by the script included below. Of course, I don't know whether this "Conditional jump or move depends on uninitialised value(s)" is really a bug. Experience with similar issues in my own code says it may be, but it is also hard to tell. Having no familiarity with the code cited in deflate.c, I leave the issue to experts. Just thought someone should know. Note that despite the printout in foo.Rout being a bit unclear about exactly where the purported bug occurs, there is no error reported in bar.Rout which does not have the save command.

Irrelevant to the bug, but this was originally spotted when package checking the aster package, which happened to have a save in tests/predict.R.

Script started on Tue 25 Jul 2006 09:59:59 AM CDT oak$ cat /etc/SuSE-release
SUSE LINUX 10.1 (X86-64)
VERSION = 10.1

oak$ export VALGRIND_OPTS="--tool=memcheck"
oak$ R CMD BATCH --vanilla --debugger=valgrind foo.R
oak$ R CMD BATCH --vanilla --debugger=valgrind bar.R
oak$ cat foo.R

 foo <- 2
 save(foo, file = "foo.Rdata")

oak$ cat foo.Rout
==13521== Memcheck, a memory error detector.
==13521== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==13521== Using LibVEX rev 1575, a library for dynamic binary translation.
==13521== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
==13521== Using valgrind-3.1.1, a dynamic binary instrumentation framework.
==13521== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==13521== For more details, rerun with: -v
==13521==

R : Copyright 2006, The R Foundation for Statistical Computing Version 2.3.1 (2006-06-01)
ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R.

==13521== Conditional jump or move depends on uninitialised value(s)
==13521== at 0x5D2740: longest_match (deflate.c:1121)
==13521== by 0x5D3BB6: deflate_slow (deflate.c:1595)
==13521== by 0x5D30EB: deflate (deflate.c:790)
==13521== by 0x5D4D21: do_flush (gzio.c:757)
==13521== by 0x5D4F39: gzclose (gzio.c:991)
==13521== by 0x44AC22: gzfile_close (connections.c:1035)
==13521== by 0x44A703: con_close1 (connections.c:2256)
==13521== by 0x44A742: con_close (connections.c:2283)
==13521== by 0x44D3A3: do_close (connections.c:2303)
==13521== by 0x4C43BB: do_internal (names.c:1089)
==13521== by 0x4978F5: Rf_eval (eval.c:398)
==13521== by 0x497F0D: Rf_evalList (eval.c:1400)

> invisible(options(echo = TRUE))
> 
>  foo <- 2
>  save(foo, file = "foo.Rdata")
> 
> 
> proc.time()

[1] 22.509 0.216 21.774 0.004 0.004
>
==13521==
==13521== ERROR SUMMARY: 9 errors from 1 contexts (suppressed: 12 from 1)
==13521== malloc/free: in use at exit: 22,019,365 bytes in 10,911 blocks.
==13521== malloc/free: 37,822 allocs, 26,911 frees, 55,922,125 bytes allocated.
==13521== For counts of detected errors, rerun with: -v
==13521== searching for pointers to 10,911 not-freed blocks.
==13521== checked 18,666,336 bytes.
==13521==
==13521== LEAK SUMMARY:
==13521== definitely lost: 667 bytes in 35 blocks.
==13521== possibly lost: 0 bytes in 0 blocks.
==13521== still reachable: 22,018,698 bytes in 10,876 blocks.
==13521== suppressed: 0 bytes in 0 blocks.
==13521== Use --leak-check=full to see details of leaked memory.
oak$ cat bar.R

 foo <- 2

oak$ cat bar.Rout
==13534== Memcheck, a memory error detector.
==13534== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==13534== Using LibVEX rev 1575, a library for dynamic binary translation.
==13534== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
==13534== Using valgrind-3.1.1, a dynamic binary instrumentation framework.
==13534== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==13534== For more details, rerun with: -v
==13534==

R : Copyright 2006, The R Foundation for Statistical Computing Version 2.3.1 (2006-06-01)
ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R.

> invisible(options(echo = TRUE))
> 
>  foo <- 2
> 
> 
> proc.time()

[1] 22.169 0.204 21.422 0.004 0.004
>
==13534==
==13534== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 12 from 1)
==13534== malloc/free: in use at exit: 21,998,613 bytes in 10,896 blocks.
==13534== malloc/free: 37,788 allocs, 26,892 frees, 55,576,442 bytes allocated.
==13534== For counts of detected errors, rerun with: -v
==13534== searching for pointers to 10,896 not-freed blocks.
==13534== checked 18,645,696 bytes.
==13534==
==13534== LEAK SUMMARY:
==13534== definitely lost: 667 bytes in 35 blocks.
==13534== possibly lost: 0 bytes in 0 blocks.
==13534== still reachable: 21,997,946 bytes in 10,861 blocks.
==13534== suppressed: 0 bytes in 0 blocks.
==13534== Use --leak-check=full to see details of leaked memory.
oak$ exit

Script done on Tue 25 Jul 2006 10:03:20 AM CDT

-- 
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
Received on Wed Jul 26 01:20:38 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Tue 25 Jul 2006 - 16:35:53 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.