Grokbase Groups R r-devel April 2010
FAQ
Hi,

I'm getting a segmentation fault as follows:

---<--------------------cut here---------------start------------------->---
R> begt <- as.POSIXct(strptime("10/01/2009 06:00:00", format="%d/%m/%Y %H:%M:%S"),
+ tz="GMT")
R> tser <- seq(begt, by=5, length.out�000)
R> tser.trunc <- format(tser)
Error: segfault from C stack overflow
---<--------------------cut here---------------end--------------------->---

With the following set up:

---<--------------------cut here---------------start------------------->---
R> sessionInfo()
R version 2.11.0 RC (2010-04-19 r51778)
x86_64-pc-linux-gnu

locale:
[1] LC_CTYPE=en_CA.UTF-8 LC_NUMERIC=C LC_TIME=en_CA.UTF-8 LC_COLLATE=en_CA.UTF-8
[5] LC_MONETARY=C LC_MESSAGES=en_CA.UTF-8 LC_PAPER=en_CA.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] slmisc_0.7.3 lattice_0.18-3

loaded via a namespace (and not attached):
[1] grid_2.11.0
---<--------------------cut here---------------end--------------------->---


Reducing the size of the sequence in seq.POSIXct() to 90000 doesn't
cause a segfault, so it seems to be a memory issue. Is this a bug?

Thanks,

--
Seb

Search Discussions

  • Uwe Ligges at Apr 23, 2010 at 11:31 am
    Works for me, both under Windows (32 and 64 bit) and Linux, although I
    have not package slmisc attached.

    Uwe Ligges


    On 23.04.2010 01:32, Sebastian P. Luque wrote:
    Hi,

    I'm getting a segmentation fault as follows:

    ---<--------------------cut here---------------start------------------->---
    R> begt<- as.POSIXct(strptime("10/01/2009 06:00:00", format="%d/%m/%Y %H:%M:%S"),
    + tz="GMT")
    R> tser<- seq(begt, by=5, length.out�000)
    R> tser.trunc<- format(tser)
    Error: segfault from C stack overflow
    ---<--------------------cut here---------------end--------------------->---

    With the following set up:

    ---<--------------------cut here---------------start------------------->---
    R> sessionInfo()
    R version 2.11.0 RC (2010-04-19 r51778)
    x86_64-pc-linux-gnu

    locale:
    [1] LC_CTYPE=en_CA.UTF-8 LC_NUMERIC=C LC_TIME=en_CA.UTF-8 LC_COLLATE=en_CA.UTF-8
    [5] LC_MONETARY=C LC_MESSAGES=en_CA.UTF-8 LC_PAPER=en_CA.UTF-8 LC_NAME=C
    [9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C

    attached base packages:
    [1] stats graphics grDevices utils datasets methods base

    other attached packages:
    [1] slmisc_0.7.3 lattice_0.18-3

    loaded via a namespace (and not attached):
    [1] grid_2.11.0
    ---<--------------------cut here---------------end--------------------->---


    Reducing the size of the sequence in seq.POSIXct() to 90000 doesn't
    cause a segfault, so it seems to be a memory issue. Is this a bug?

    Thanks,
  • Duncan Murdoch at Apr 23, 2010 at 11:46 am

    On 23/04/2010 7:31 AM, Uwe Ligges wrote:
    Works for me, both under Windows (32 and 64 bit) and Linux, although I
    have not package slmisc attached.
    I've just found that the bug 14267 is related to a POSIXlt formatting
    bug, so this is likely to be the same thing.

    Duncan Murdoch
    Uwe Ligges


    On 23.04.2010 01:32, Sebastian P. Luque wrote:

    Hi,

    I'm getting a segmentation fault as follows:

    ---<--------------------cut here---------------start------------------->---
    R> begt<- as.POSIXct(strptime("10/01/2009 06:00:00", format="%d/%m/%Y %H:%M:%S"),
    + tz="GMT")
    R> tser<- seq(begt, by=5, length.out�000)
    R> tser.trunc<- format(tser)
    Error: segfault from C stack overflow
    ---<--------------------cut here---------------end--------------------->---

    With the following set up:

    ---<--------------------cut here---------------start------------------->---
    R> sessionInfo()
    R version 2.11.0 RC (2010-04-19 r51778)
    x86_64-pc-linux-gnu

    locale:
    [1] LC_CTYPE=en_CA.UTF-8 LC_NUMERIC=C LC_TIME=en_CA.UTF-8 LC_COLLATE=en_CA.UTF-8
    [5] LC_MONETARY=C LC_MESSAGES=en_CA.UTF-8 LC_PAPER=en_CA.UTF-8 LC_NAME=C
    [9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C

    attached base packages:
    [1] stats graphics grDevices utils datasets methods base

    other attached packages:
    [1] slmisc_0.7.3 lattice_0.18-3

    loaded via a namespace (and not attached):
    [1] grid_2.11.0
    ---<--------------------cut here---------------end--------------------->---


    Reducing the size of the sequence in seq.POSIXct() to 90000 doesn't
    cause a segfault, so it seems to be a memory issue. Is this a bug?

    Thanks,
    ______________________________________________
    R-devel at r-project.org mailing list
    https://stat.ethz.ch/mailman/listinfo/r-devel
  • Sebastian P. Luque at Apr 23, 2010 at 12:48 pm

    On Fri, 23 Apr 2010 07:46:10 -0400, Duncan Murdoch wrote:
    On 23/04/2010 7:31 AM, Uwe Ligges wrote:
    Works for me, both under Windows (32 and 64 bit) and Linux, although
    I have not package slmisc attached.
    I've just found that the bug 14267 is related to a POSIXlt formatting
    bug, so this is likely to be the same thing.
    I just tried with:

    ---<--------------------cut here---------------start------------------->---
    R> sessionInfo()
    R version 2.12.0 Under development (unstable) (2010-04-23 r51810)
    x86_64-unknown-linux-gnu

    locale:
    [1] LC_CTYPE=en_CA.UTF-8 LC_NUMERIC=C
    [3] LC_TIME=en_CA.UTF-8 LC_COLLATE=en_CA.UTF-8
    [5] LC_MONETARY=C LC_MESSAGES=en_CA.UTF-8
    [7] LC_PAPER=en_CA.UTF-8 LC_NAME=C
    [9] LC_ADDRESS=C LC_TELEPHONE=C
    [11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C

    attached base packages:
    [1] stats graphics grDevices utils datasets methods base
    ---<--------------------cut here---------------end--------------------->---

    and using a sequence of 200000 worked without problems. It doesn't seem
    as if bug 14267 has been fixed in the 2.12.0 devel version above, but
    something else might have fixed the C stack overflow I'm getting.

    Thanks for the pointers!

    --
    Seb
  • Sebastian P. Luque at Apr 23, 2010 at 12:50 pm

    On Fri, 23 Apr 2010 13:31:14 +0200, Uwe Ligges wrote:

    Works for me, both under Windows (32 and 64 bit) and Linux, although I
    have not package slmisc attached.
    Is this with 2.11.0 ? Thanks.

    --
    Seb
  • Peter dalgaard at Apr 23, 2010 at 2:03 pm

    On Apr 23, 2010, at 2:50 PM, Sebastian P. Luque wrote:

    On Fri, 23 Apr 2010 13:31:14 +0200,
    Uwe Ligges wrote:
    Works for me, both under Windows (32 and 64 bit) and Linux, although I
    have not package slmisc attached.
    Is this with 2.11.0 ? Thanks.
    I'm getting a bit further with bug 14267:

    On OSX I am NOT seeing it with R-devel, although it is there with 2.11.0 Patched.

    Running with a non-optimized compile, I can get some more information

    It is happening on the i-th iteration of the loop in do_formatPOSIXlt with

    (gdb) p i
    $4 = 86870

    Unfortunately, it looks like a bigger exercise to get valgrind running on Snow Leopard -- too big for Friday afternoon anyway. However, the alloca() call on line 774 of src/main/datetime.c does look suspect to me. I can see that it was introduced with r51353 and has since disappeared in R-devel (r51398).

    --
    Seb

    ______________________________________________
    R-devel at r-project.org mailing list
    https://stat.ethz.ch/mailman/listinfo/r-devel
    --
    Peter Dalgaard
    Center for Statistics, Copenhagen Business School
    Solbjerg Plads 3, 2000 Frederiksberg, Denmark
    Phone: (+45)38153501
    Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
  • Duncan Murdoch at Apr 23, 2010 at 2:17 pm

    On 23/04/2010 10:03 AM, peter dalgaard wrote:
    On Apr 23, 2010, at 2:50 PM, Sebastian P. Luque wrote:

    On Fri, 23 Apr 2010 13:31:14 +0200,
    Uwe Ligges wrote:
    Works for me, both under Windows (32 and 64 bit) and Linux, although I
    have not package slmisc attached.
    Is this with 2.11.0 ? Thanks.
    I'm getting a bit further with bug 14267:

    On OSX I am NOT seeing it with R-devel, although it is there with 2.11.0 Patched.

    Running with a non-optimized compile, I can get some more information

    It is happening on the i-th iteration of the loop in do_formatPOSIXlt with

    (gdb) p i
    $4 = 86870

    Unfortunately, it looks like a bigger exercise to get valgrind running on Snow Leopard -- too big for Friday afternoon anyway. However, the alloca() call on line 774 of src/main/datetime.c does look suspect to me. I can see that it was introduced with r51353 and has since disappeared in R-devel (r51398).
    I've just committed a patch for this on R-2-11-branch. The problem was
    that the alloca() was within a loop, so it kept allocating more and more
    space until the end of the function call, and blew the stack. In
    R-devel, this was changed to the C99 construct of defining a variable
    sized array within a block, and that was fine, because it was released
    at the end of the block, not at the end of the function call.

    Duncan Murdoch
  • Peter dalgaard at Apr 23, 2010 at 2:36 pm

    On Apr 23, 2010, at 4:17 PM, Duncan Murdoch wrote:
    On 23/04/2010 10:03 AM, peter dalgaard wrote:
    On Apr 23, 2010, at 2:50 PM, Sebastian P. Luque wrote:

    On Fri, 23 Apr 2010 13:31:14 +0200,
    Uwe Ligges wrote:
    Works for me, both under Windows (32 and 64 bit) and Linux, although I
    have not package slmisc attached.
    Is this with 2.11.0 ? Thanks.
    I'm getting a bit further with bug 14267:

    On OSX I am NOT seeing it with R-devel, although it is there with 2.11.0 Patched.

    Running with a non-optimized compile, I can get some more information

    It is happening on the i-th iteration of the loop in do_formatPOSIXlt with
    (gdb) p i
    $4 = 86870

    Unfortunately, it looks like a bigger exercise to get valgrind running on Snow Leopard -- too big for Friday afternoon anyway. However, the alloca() call on line 774 of src/main/datetime.c does look suspect to me. I can see that it was introduced with r51353 and has since disappeared in R-devel (r51398).
    I've just committed a patch for this on R-2-11-branch. The problem was that the alloca() was within a loop, so it kept allocating more and more space until the end of the function call, and blew the stack. In R-devel, this was changed to the C99 construct of defining a variable sized array within a block, and that was fine, because it was released at the end of the block, not at the end of the function call.
    Yes, that's what I suspected. Thanks for the fix!

    -p
    Duncan Murdoch
    --
    Peter Dalgaard
    Center for Statistics, Copenhagen Business School
    Solbjerg Plads 3, 2000 Frederiksberg, Denmark
    Phone: (+45)38153501
    Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
  • Sebastian P. Luque at Apr 23, 2010 at 2:24 pm

    On Fri, 23 Apr 2010 16:03:15 +0200, peter dalgaard wrote:

    I'm getting a bit further with bug 14267: On OSX I am NOT seeing it
    with R-devel, although it is there with 2.11.0 Patched.
    Running with a non-optimized compile, I can get some more information
    It is happening on the i-th iteration of the loop in do_formatPOSIXlt
    with
    (gdb) p i $4 = 86870
    Unfortunately, it looks like a bigger exercise to get valgrind running
    on Snow Leopard -- too big for Friday afternoon anyway. However, the
    alloca() call on line 774 of src/main/datetime.c does look suspect to
    me. I can see that it was introduced with r51353 and has since
    disappeared in R-devel (r51398).
    So it does seems as if this is all related to that bug, which somehow
    got fixed in R-devel.

    Thanks everyone,

    --
    Seb

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupr-devel @
categoriesr
postedApr 22, '10 at 11:32p
activeApr 23, '10 at 2:36p
posts9
users4
websiter-project.org
irc#r

People

Translate

site design / logo © 2022 Grokbase