Large programs core dumping upon execution
was-John McMillan
jcm at mtunb.ATT.COM
Fri Aug 4 00:09:59 AEST 1989
In article <211 at comhex.UUCP> sysop at comhex.UUCP (Joe E. Powell) writes:
>Has anyone else ever noticed that very large (over 300K) files
>sometimes tend to core dump when they are invoked? They usually
>work fine, but every now and again, the program will just refuse
>to start up. Is it just me or have other people had this happen?
A final (HAhahaha...) muttering from me on this:
1) While I posted (or E-mailed) earlier that this sounds like classic
outta-SWAP trouble, another possibility occured to me.
2) Until approx. the 3.51C kernel, there was an error in the
'getcontext()' code. Despite mis-leading COMMENTS, the code
failed to properly change context between two processes.
Specifically, if the OUTGOING process had SHARED MEMORY [SHM],
it was left mapped-in in the 'MMU'. This caused gross pain
when that SHM was at a low enough address that another
process attempted to use the same Virtual Address [VA] space.
Since the 'MMU' indicated the page was PRESENT, the new
process didn't fault-in its own page on 1st access -- ie.,
start-up, usually. Since it's typically difficult to
execute another programs shared data, death by illegal-
instruction was common if the new program had a LARGE TEXT
image.
The error remained as long as it did because:
a) the coincidence of low-VA SHM & concurrent large TEXT process
is rare;
b) the kernel code was 'correct' and the comments were
mis-leading: the CONCEPT was flawed because the
stated process was not 'in-context' when the code
was executing;
c) the entire, creaking/ancient VM base for the 3B1 -- based
on some Berkeley model -- is obscure and barely
even patchable due to its anomalies.
In brief, there are SOME cases where program start-up failures may
reflect the above problem. I presume IPCS(1) would indicate
if you've SHM in use, but WHERE it's mapped is another Q.
john mcmillan -- att!mtunb!jcm
More information about the Unix-pc.general
mailing list