continuing death

Henry Cejtin henry@sourcelight.com
Sun, 25 Nov 2001 21:51:20 -0600


Here  is  a very small example of the problem.  It is small in the sense that
the source is small, but it I still only get it to fail running  on  a  1-gig
machine  with  max-heap  set  to  770  megabytes  and  an input file which is
170,000,000 bytes long.

The program just reads (using Posix.IO.readArr) into an array.  The array  is
doubled  in  size  when it is filled, and the old half is copied into the new
array and reading keeps going until EOF is finally reached.

In this version, compiled with the latest compiler, and
    -g
    -native false
    -DGC_EVERY_CHECK
    -DINSTRUMENTED
it dies in MLton_exit, which called GC_done(), the problem being detected  in
the  GC_enter()  called from there.  The invariant code finds the same things
as before:  a  `stack'  which  has  a  reserved  of  32,768  but  a  used  of
858,927,408.

I  looked  at  the code, but found it relatively unreadable.  It doesn't look
like any thing wierd is going on after the read returns 0, and read  returned
non-zero many many times.

I am open to any new ideas or suggestions of things to try.


begin 600 die.sml.tgz
M'XL(`".\`3P"`^V4P4[;0!"&?;6?8FZQJ65M$C=0(0X<0.JA!)5#CY5AUV)5
M8Z-=AS94O#LS:SLXBA4,$CU4\QT2>V?GGYF=64NM$GM7>!^)F`JQ2%-/(.E,
MN/]I^X[,9M-#3QRF0LSGZ>?Y`O=/\<4#X?T#5K;.#(!WJTJSWKM/&>O]=X0'
M`1S`=Y5)T"5DD.M"X5-=P2^UM@D:HR!?E6!PQSG9<@DG`304J@8R%E5U#Z%1
M-@:K'U4,>%@R>MG7@UP>L@)*.('+RNH_R==E0N*GQD"8RQC^PO4J1RO)#0B,
M0:,[I?!>?_N(`A?+BS-X@FA``T]*YZX$$?B^7^/L4+K#T51AU:9LRFK29@>?
MH-R38!.D<Z!S?;4:ET@7BCPZ3PPU2F`#"6!%Z$\%(C\J(X^P1]DZR>@70J<?
MMV;?!Q"_130N`I;6T[NI[M?8=6MNNJYO)"UU4O06"D6G?K7\=M:<3,\D;=WX
M;RTZ`7@Z'EWZ9I8GS3!/FFF>C"Q-E?+5C<U$#-V9O5&&I7NKNKN)N\U*Q9=%
M[#JT>R><;6?UI9<4P7T#[C*,$$;;]Y\FY:<[^/8#T=QJ>KS"#XBMI2Y["8;;
JLIUW*QUX#,,P#,,P#,,P#,,P#,,P#,,P#,,P#,,PS-MX!D5OK[$`*```
`
end