Bug#676979: sbcl: file nik.lisp for reproduction is included below

Christoph Egger christoph at christoph-egger.org
Wed Jan 9 22:34:10 UTC 2013


Hi!

Faheem Mitha <faheem at faheem.info> writes:
> On Wed, 9 Jan 2013, Christoph Egger wrote:
>>  So actually it either needs to actually dfail to allocate the memory
>>  or it's platform-specific. I think I get the problem on a amd64 with
>>  few enough memory to trigger the Heap exhaustion
>
> Hi Christoph,
>
> Thanks for taking a look. The developers don't seem interested. What
> is dfail?

Just a d too much. In the first case the run of (main 10000) just went
through and didn't cause a heap exhaustion while the second one was on a
machine with way less memory and address-space (64bit 8GB RAM vs 32bit
1G RAM) and showed the hep exhaustion error.

> The major issue is really that (gc :full t) breaks. Do you
> see that?

I guess so. The end of the log is below:

---
Dynamic space usage is:   510,629,256 bytes.
Read-only space usage is:      3,512 bytes.
Static space usage is:         2,256 bytes.
Control stack usage is:        1,464 bytes.
Binding stack usage is:          400 bytes.
Control and binding stack usage is for the current thread only.
Garbage collection is currently enabled.

Breakdown for dynamic space:
  480,000,056 bytes for         7 simple-array-double-float objects.
  30,846,272 bytes for 1,057,407 other objects.
  510,846,328 bytes for 1,057,414 dynamic objects (space total.)
---
Heap exhausted during allocation: 17862656 bytes available, 80000008 requested.
 Gen StaPg UbSta LaSta LUbSt Boxed Unboxed LB   LUB  !move  Alloc  Waste   Trig    WP  GCs Mem-age
   0:  7068     0     0     0    79     0     0     0     0   319472  4112  5368709    0   0  0.0000
   1:     0     0     0     0     4     1     0 58596 58599 240008904 20792 245377613    1   5  0.0000
   2:  8013  8012     0     0   441    80     0 58596 58608 242030272 112960  2000000  429   0  0.0000
   3:     0     0     0     0     0     0     0     0     0        0     0  2000000    0   0  0.0000
   4:     0     0     0     0     0     0     0     0     0        0     0  2000000    0   0  0.0000
   5:     0     0     0     0     0     0     0     0     0        0     0  2000000    0   0  0.0000
   6:     0     0     0     0  5722  1258     0     0     0 28590080     0  2000000 5603   0  0.0000
   Total bytes allocated    = 510948728
   Dynamic-space-size bytes = 536870912
GC control variables:
   *GC-INHIBIT* = false
   *GC-PENDING* = true
   *STOP-FOR-GC-PENDING* = false

debugger invoked on a SB-KERNEL::HEAP-EXHAUSTED-ERROR in thread
#<THREAD "main thread" RUNNING {AB446C9}>:
  Heap exhausted (no more space for allocation).
There are still 17862656 bytes available; the request was for 80000008 bytes.

PROCEED WITH CAUTION.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

(SB-KERNEL::HEAP-EXHAUSTED-ERROR 17862656 80000008)
0] 0
* (room)

Dynamic space usage is:   430,650,184 bytes.
Read-only space usage is:      3,512 bytes.
Static space usage is:         2,256 bytes.
Control stack usage is:        1,432 bytes.
Binding stack usage is:          400 bytes.
Control and binding stack usage is for the current thread only.
Garbage collection is currently enabled.

Breakdown for dynamic space:
  400,000,048 bytes for         6 simple-array-double-float objects.
  30,871,144 bytes for 1,058,319 other objects.
  430,871,192 bytes for 1,058,325 dynamic objects (space total.)
* (gc :full t)

NIL
* (room)

Dynamic space usage is:   189,565,192 bytes.
Read-only space usage is:      3,512 bytes.
Static space usage is:         2,256 bytes.
Control stack usage is:        1,432 bytes.
Binding stack usage is:          400 bytes.
Control and binding stack usage is for the current thread only.
Garbage collection is currently enabled.

Breakdown for dynamic space:
  160,000,024 bytes for         3 simple-array-double-float objects.
   9,905,304 bytes for    12,683 code objects.
  19,885,064 bytes for 1,009,121 other objects.
  189,790,392 bytes for 1,021,807 dynamic objects (space total.)
* (gc :full t)

NIL
* (room)

Dynamic space usage is:   109,562,632 bytes.
Read-only space usage is:      3,512 bytes.
Static space usage is:         2,256 bytes.
Control stack usage is:        1,432 bytes.
Binding stack usage is:          400 bytes.
Control and binding stack usage is for the current thread only.
Garbage collection is currently enabled.

Breakdown for dynamic space:
  80,000,016 bytes for         2 simple-array-double-float objects.
   9,905,304 bytes for    12,683 code objects.
  19,894,800 bytes for 1,010,568 other objects.
  109,800,120 bytes for 1,023,253 dynamic objects (space total.)
* (gc :full t)

NIL
* (room)

Dynamic space usage is:   109,564,560 bytes.
Read-only space usage is:      3,512 bytes.
Static space usage is:         2,256 bytes.
Control stack usage is:        1,432 bytes.
Binding stack usage is:          400 bytes.
Control and binding stack usage is for the current thread only.
Garbage collection is currently enabled.

Breakdown for dynamic space:
  80,000,016 bytes for         2 simple-array-double-float objects.
   9,905,304 bytes for    12,683 code objects.
  19,884,440 bytes for 1,009,105 other objects.
  109,789,760 bytes for 1,021,790 dynamic objects (space total.)
* (dotimes (i 10) (gc :full t))

NIL
* (room)

Dynamic space usage is:   109,605,312 bytes.
Read-only space usage is:      3,512 bytes.
Static space usage is:         2,256 bytes.
Control stack usage is:        1,432 bytes.
Binding stack usage is:          400 bytes.
Control and binding stack usage is for the current thread only.
Garbage collection is currently enabled.

Breakdown for dynamic space:
  80,000,016 bytes for         2 simple-array-double-float objects.
   9,905,456 bytes for    12,684 code objects.
  19,925,040 bytes for 1,010,429 other objects.
  109,830,512 bytes for 1,023,115 dynamic objects (space total.)
* (dotimes (i 10) (gc :full t))

NIL
* (room)

Dynamic space usage is:   109,605,480 bytes.
Read-only space usage is:      3,512 bytes.
Static space usage is:         2,256 bytes.
Control stack usage is:        1,432 bytes.
Binding stack usage is:          400 bytes.
Control and binding stack usage is for the current thread only.
Garbage collection is currently enabled.

Breakdown for dynamic space:
  80,000,016 bytes for         2 simple-array-double-float objects.
   9,905,456 bytes for    12,684 code objects.
  19,925,208 bytes for 1,010,394 other objects.
  109,830,680 bytes for 1,023,080 dynamic objects (space total.)



More information about the pkg-common-lisp-devel mailing list