Skip to content

Creating a long list triggers billions of messages

4 messages · Hugh Parsonage, Ivan Krylov

#
Reprex (not recommended in an interactive session as it is difficult to kill):
x <- vector("list", 2^31)

which triggers (presumably) billions of error messages like
Error: long vectors are not supported yet ../include/Rinlinedfuns.h

I believe the error arises from checking each element of the list (all
2^31 of them) and issuing an error message for each of them regarding
the length of the overall list.
#
? Tue, 21 Jan 2025 16:51:34 +1100
Hugh Parsonage <hugh.parsonage at gmail.com> ?????:
I couldn't reproduce this with some released versions of R or a recent
R-devel. Would you mind sharing your sessionInfo()?

If you'd like to, could you please run

R -q -s -e 'x <- vector("list", 2^31)' -d gdb

...then set a breakpoint on Rf_errorcall, run the program and collect a
backtrace when it fires?
#
I tried doing this on a cloud instance of R 4.4.2 but the terminal
exited and the cloud ejected my session shortly after setting the
breakpoint and running the program

Function "Rf_errorcall" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 2 (Rf_errorcall) pending.
(gdb) run
Starting program: /opt/R/4.4.2/lib/R/bin/exec/R -q -s -e
x\~+\~\<-\~+\~vector\(\"list\",\~+\~2\^31\)
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff3a6a700 (LWP 454)]
[New Thread 0x7ffff3269700 (LWP 455)]
[New Thread 0x7fffeea68700 (LWP 456)]
[New Thread 0x7fffec267700 (LWP 457)]
[New Thread 0x7fffe9a66700 (LWP 458)]
[New Thread 0x7fffe7265700 (LWP 459)]
[New Thread 0x7fffe4a64700 (LWP 460)]
[New Thread 0x7fffe2263700 (LWP 461)]
[New Thread 0x7fffdfa62700 (LWP 462)]
[New Thread 0x7fffdd261700 (LWP 463)]
[New Thread 0x7fffdaa60700 (LWP 464)]
[New Thread 0x7fffd825f700 (LWP 465)]
[New Thread 0x7fffd5a5e700 (LWP 466)]
[New Thread 0x7fffd525d700 (LWP 467)]
[New Thread 0x7fffd2a5c700 (LWP 468)]
[Detaching after vfork from child process 469]
[Detaching after vfork from child process 471]

Session info:

R version 4.4.2 (2024-10-31)
Platform: x86_64-pc-linux-gnu
Running under: Ubuntu 20.04.6 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3;
LAPACK version 3.9.0

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

time zone: UTC
tzcode source: system (glibc)

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

loaded via a namespace (and not attached):
[1] compiler_4.4.2 tools_4.4.2
On Tue, 21 Jan 2025 at 22:56, Ivan Krylov <ikrylov at disroot.org> wrote:
#
Apologies all. This must have been fixed in a recent version and the
cloud error was a resource limit not associated with the issue.
On Tue, 21 Jan 2025 at 23:06, Hugh Parsonage <hugh.parsonage at gmail.com> wrote: