Matthew, Thanks again. That wasn't the cleanest bug report, and I was really hoping it wasn't attibutable to some flaky library software on my system (especially since *I* needed PostgreSQL to trigger it).
Again, many thanks for working on and fixing the bug. I'm away from work at the moment, but I'll definitely check out the fix on my return. Tim On Saturday, August 29, 2015 at 12:06:31 AM UTC+1, Matthew Flatt wrote: > I don't think my guess was right. Happily, my accounting-related test > is like yours in that it passes place channels over place channels. > Further testing with that example provoked symptoms more like the ones > you describe. > > The bug: If a GC happens after a thread receives the message but before > it deserializes the message content, then pointers in the serialized > content (e.g., to the object that represents a place channel and is > shared across places) were not treated as reachable. The referenced > objects could then be collected or finalized. Triggering a crash > requires an ill-timed GC of the space that is shared among all places > (which is relatively rare). > > I've pushed a repair for that bug and for three problems with memory > accounting. > > At Fri, 28 Aug 2015 13:02:12 -0600, Matthew Flatt wrote: > > I haven't been able to replicate the specific crash, but I have a guess > > at the problem. > > > > I think the sandbox is relevant because `sandbox-memory-limit` remains > > in effect (even though you're disabling the per-evaluation limit by > > setting `sandbox-eval-limits`). A sandbox memory limit triggers memory > > accounting in the GC. I see that memory accounting in the GC has a > > problem with places, and I can provoke a crash by targeting that > > problem directly. > > > > I'll fix that problem, and hopefully it will fix the crash you're > > seeing. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.