Closed MichaelChirico closed 4 years ago
NOTES: Fixed in 2.8.1 we believe
Audit (from Jitterbug): Fri Nov 7 20:48:08 2008 ripley moved from incoming to Graphics Fri Dec 12 15:18:20 2008 ripley changed notes Fri Dec 12 14:18:20 2008 ripley moved from Graphics to Graphics-fixed
From: jeff gove <jhgove@<::CENSORED -- SEE ORIGINAL ON BUGZILLA::>> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
I ran into a problem with R crashing when a certain number of transparent objects (e.g., symbols) are sent to a PDF output device. This has happened on R 2.71, 2.7.2 (Fedora 8 and Ububtu 8.04 platforms) and now 2.8.0 (I've only tried Fedora 8). The current pertinent R system stats are...R.version
_
platform x86_64-redhat-linux-gnu
arch x86_64
os linux-gnu
system x86_64, linux-gnu
status
major 2
minor 8.0
year 2008
month 10
day 20
svn rev 46754
language R
version.string R version 2.8.0 (2008-10-20)
The following small example program when run with n large enough (e.g., n=1000) and transparency will crash R...
alphaBomb.r = function(n=100, wantAlpha=T) {
df = data.frame(a=rnorm(n),b=runif(n))
if(wantAlpha)
alpha=runif(n)
else
alpha = 1
j = xyplot(∼a, df, alpha=alpha, pch=19)
print(j)
trellis.device('pdf',file='alphaBomb.pdf',version='1.4')
print(j)
dev.off()
}
Please note that the crash seems to occur in the dev.off() component, and that the file actually seems to get written out correctly. The trace of the bomb is found below, excluding the memory map. Please also note that it may be somehow related to grid, as the following code (supplied by Deepayan Sarkar) using base graphics does not crash R, even with n=100000...
The error trace from the above alphaBomb.r() code is...
R> alphaBomb.r(100) #this is fine
X11cairo
2
R> alphaBomb.r(1000,F) #also fine
R> alphaBomb.r(1000)
*** glibc detected *** /usr/lib64/R/bin/exec/R: double free or corruption (!prev): 0x00000000032c1d90 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3ee8c72832]
/lib64/libc.so.6(cfree+0x8c)[0x3ee8c75f2c]
/usr/lib64/R/library/grDevices/libs/grDevices.so[0x2aaab000b0fc]
/usr/lib64/R/lib/libR.so[0x3d1f48ddd3]
/usr/lib64/R/lib/libR.so[0x3d1f48e2dc]
/usr/lib64/R/lib/libR.so[0x3d1f4ec81c]
/usr/lib64/R/lib/libR.so(Rf_eval+0x42e)[0x3d1f4be8ae]
/usr/lib64/R/lib/libR.so[0x3d1f4bf572]
/usr/lib64/R/lib/libR.so(Rf_eval+0x42e)[0x3d1f4be8ae]
/usr/lib64/R/lib/libR.so(Rf_applyClosure+0x291)[0x3d1f4c0bf1]
/usr/lib64/R/lib/libR.so(Rf_eval+0x303)[0x3d1f4be783]
/usr/lib64/R/lib/libR.so[0x3d1f4bf572]
/usr/lib64/R/lib/libR.so(Rf_eval+0x42e)[0x3d1f4be8ae]
/usr/lib64/R/lib/libR.so(Rf_applyClosure+0x291)[0x3d1f4c0bf1]
/usr/lib64/R/lib/libR.so(Rf_eval+0x303)[0x3d1f4be783]
/usr/lib64/R/lib/libR.so(Rf_ReplIteration+0x188)[0x3d1f4dc878]
/usr/lib64/R/lib/libR.so[0x3d1f4dcb90]
/usr/lib64/R/lib/libR.so(run_Rmainloop+0x50)[0x3d1f4dcec0]
/usr/lib64/R/bin/exec/R(main+0x1b)[0x40082b]
/lib64/libc.so.6(__libc_start_main+0xf4)[0x3ee8c1e074]
/usr/lib64/R/bin/exec/R[0x400729]
======= Memory map: ========
etc...
Please note that R only crashes with PDF output; tiff, png and eps (even though it doesn't accept transparency) all exit cleanly.
My version of glibc is 2.7.
Thanks, I hope that the problem is already resolved!
Jeff
METADATA