[racket] frequent crashes on Windows 7 64-bit

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue Oct 29 16:51:18 EDT 2013

Once I had fixed the typo in your program, I was able to run this loop without ado: 

> (for ((i (in-range 9))) (collect-garbage) (collect-garbage) (time (main i)))
cpu time: 1 real time: 1 gc time: 0
cpu time: 5 real time: 6 gc time: 0
cpu time: 9 real time: 9 gc time: 0
cpu time: 77 real time: 77 gc time: 0
cpu time: 736 real time: 741 gc time: 14
cpu time: 7666 real time: 7703 gc time: 393
... 

As far as I can tell time consumption grows by one order of magnitude as increase the size of the database entries by an order of magnitude. I don't have the time to it for 10, 11, and 12 but is it possible that something external/size-wise hits you here? 



#lang racket

(require db)

(define current-db (make-parameter (sqlite3-connect #:database 'memory)))

(query-exec (current-db) "CREATE TABLE sines(id INTEGER, x, sine_x)")

(define (x i) (+ (- pi) (/ i (* 1000 pi))))

(define (main n)
  (call-with-transaction 
   (current-db)
   (lambda ()
     (for ([i (expt 10 n)])
       (define x_i (x i))
       (query-exec 
        (current-db)
        (string-append 
         "INSERT INTO sines(id, x, sine_x) VALUES("
         (number->string i) ", "
         (number->string x_i) ", "
         (number->string (sin x_i)) ")"))))))

(provide main)



On Oct 29, 2013, at 4:32 PM, "Andrews, Kyle (KC)" <KCAndrews at dow.com> wrote:

> I’ve been trying to upload data into an SQLite database using Racket from Windows 7 64-bit and both Racket.exe and DrRacket.exe keep crashing before the upload finishes.  I’ve had crashes on long-running programs in DrRacket on Windows 7 before, so I don’t want to say for sure that it’s the fault of the db library.  However, I do know is that the crashes have been happening repeatedly with this project and given the amount of data I need to upload, it is impractical to keep restarting Racket in the hopes that it will eventually finish.  Racket is crashing with both 5.3.6 as well as the latest nightly build you have installers for:   5.90.0.9.  I have attached a sample script which creates an in-memory sqlite database and populates it with a trillion sines which crashes on me after a while, just like my actual script.  My Racket VM (at least in DrRacket) defaults to 2048 Mb.
>  
> Below is what error information Windows gives upon the crash:
>  
> Problem signature:
>   Problem Event Name: APPCRASH
>   Application Name:        Racket.exe
>   Application Version:    5.90.0.1
>   Application Timestamp:             525e4550
>   Fault Module Name:    libracket3m_9r9qx5.dll
>   Fault Module Version:                0.0.0.0
>   Fault Module Timestamp:         525e454e
>   Exception Code:             c0000005
>   Exception Offset:          00000000002b6081
>   OS Version:      6.1.7601.2.1.0.256.4
>   Locale ID:          1033
>   Additional Information 1:          9e37
>   Additional Information 2:          9e37a01f62fc211801609d8b20878795
>   Additional Information 3:          4bbb
>   Additional Information 4:          4bbb32ba4ab4514f5750e1fc710f6223
>  
> Let me know if there is any other information I can provide.
> Regards,
>  
> Kyle
>  
> <bug.rkt>____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users



Posted on the users mailing list.