[racket] frequent crashes on Windows 7 64-bit

From: Andrews, Kyle (KC) (KCAndrews at dow.com)
Date: Wed Oct 30 11:14:39 EDT 2013

I watched the process size of Racket as I ran (main 7), and it didn't get over 410 Mb before it crashed (with nothing running it is 370 Mb) .  I'll try uploading to MySQL (also uses a wire protocol) and see if the problem goes away.

-----Original Message-----
From: Neil Van Dyke [mailto:neil at neilvandyke.org] 
Sent: Tuesday, October 29, 2013 6:56 PM
To: Andrews, Kyle (KC)
Cc: Matthias Felleisen; Racket mailing list (users at racket-lang.org)
Subject: Re: [racket] frequent crashes on Windows 7 64-bit


* Run a heavy offline RAM test (such as with a bootable CD-ROM from memtest86.org or memtest86.com), since you might have a defect that only memory-intensive programs are likely to tickle.

* Use a process tool to watch how the Racket process size grows as you approach the crash, as well as how much of that is swapped to disk.  If this is getting much bigger than the size of your data and indexes (for an in-memory database, or for cache of on-disk database), then I would look for a leak in the FFI bindings, and then in the SQLite library.  A leak/bug in Racket or in Windows are also possibilities, in which case you'll want crash debugging...

* Use Visual Studio (or whatever was used to compile Racket) to do crash debugging.  Or set up GNU/Linux (pop a spare HD in the same PC?) and debug under that (although the problem might go away).

* Unless your purpose is to stress-test the Racket SQLite interface, alternatives might include having Racket drive a command-line tool for populating SQLite via SQL, and using a beefier database like PostgreSQL.  (Incidentally, Racket's PostgreSQL interface talks the PostgreSQL wire protocol directly from pure Racket code rather than doing FFI; I avoid FFI whenever practical, in part because it can be the cause of problems like you're seeing.)

Neil V.

Posted on the users mailing list.