[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Help: Crash in garbage collection
- From: "Tom Miles" <Tom@...>
- Date: Fri, 16 Oct 2009 10:09:59 +0100
Hi Guys,
I have a problem that I've been tearing my hair out over for the past
day or so. We have an application that saves out data in a lua
parseable file. This has been working for a good few months, but we
have found a file that under some as yet unknown condition will crash in
lua when saving. The crash occurs in sweeplist() at the line:
while ((curr = *p) != NULL && count-- > 0) {
if (curr->gch.tt == LUA_TTHREAD) /* sweep open upvalues of each
thread */
This is called from singlestep, case GCSsweepstring. I have noticed
that g->sweepstrgc is larger than g->strt.nuse. Is that a bad thing as
it seems to me like it would be. If so, how would it get into such a
state?
Any help in tracking this down would be greatly appreciated. On the
plus side, I now know a little bit more about how lua works internally!
:)
Tom