Thanks! I'll make the repair to propagate read-only mode, which is definitely how it's supposed to work.
(A related regression is that installing a Planet package attempts to render the search index too many times, and I see why that happens.) At Mon, 16 Dec 2013 14:28:28 -0500, Ryan Culpepper wrote: > I still haven't figured how to make sqlite3_open_v2 in 'read-write (or > 'create) mode fast, but I can confirm that opening in 'read-only mode > when possible (by propagating the write? argument from > call-with-database to doc-db-file->connection and using that to choose > between 'create and 'read-only) does make doc rebuilds go much faster. > > It looks like doc-db-file->connection might need 'create even for > "read-only" operations, if the file doesn't exist or if it doesn't have > the tables initialized. Someone who knows the code will have to figure > out that part. > > Or another alternative is to create fewer db connections, perhaps by > using a virtual-connection. > > Ryan > > > On 12/16/2013 02:05 PM, Ryan Culpepper wrote: > > I just tried it, and it completed after a long time (10 minutes, maybe > > longer). It looks like it's not deadlocked, but it's calling > > sqlite3-connect many, many times, and each call to sqlite3_open_v2 takes > > a relatively long time to complete (over a second on my Windows VM). > > > > This looks relevant, but I'm still deciphering it: > > > > http://www.mail-archive.com/sqlite-users%40sqlite.org/msg75761.html > > http://www.mail-archive.com/sqlite-users%40sqlite.org/msg75833.html > > > > Ryan > > > > > > On 12/16/2013 01:07 PM, Robby Findler wrote: > >> Planet packages do not install properly under windows. They seem to be > >> getting stuck in a deadlock in sqlite or how we call into it or > >> something like that. Below is an example transcript where I hit > >> control-c and got a hopefully informative stack trace. > >> > >> C:\Users\robby>"\Program Files (x86)\Racket-5.91-pre-release\raco.exe" > >> planet install planet test-connection.plt 1 0 > >> PLaneT: downloading planet/test-connection:1 from planet.racket-lang.org > >> <http://planet.racket-lang.org> via HTTP > >> PLaneT: > >> PLaneT: ============= Unpacking test-connection.plt ============= > >> PLaneT: Unpacking archive from > >> > C:\Users\robby\AppData\Roaming\Racket\planet\300\packages\planet\test-connectio > n.plt\1\0\ > >> > >> test-connection.plt > >> PLaneT: unpacking doc.txt in > >> > C:\Users\robby\AppData\Roaming\Racket\planet\300\release-snapshot\cache\planet\ > test-conne > >> > >> ction.plt\1\0\.\ > >> PLaneT: unpacking info.ss in > >> > C:\Users\robby\AppData\Roaming\Racket\planet\300\release-snapshot\cache\planet\ > test-conne > >> > >> ction.plt\1\0\.\ > >> PLaneT: unpacking planet-splash-screen.png in > >> C:\Users\robby\AppData\Roaming\Racket\planet\300\release-snapshot\cache\ > >> planet\test-connection.plt\1\0\.\ > >> PLaneT: unpacking test-connection-mred.scm in > >> C:\Users\robby\AppData\Roaming\Racket\planet\300\release-snapshot\cache\ > >> planet\test-connection.plt\1\0\.\ > >> PLaneT: unpacking test-connection-mzscheme.scm in > >> C:\Users\robby\AppData\Roaming\Racket\planet\300\release-snapshot\ca > >> che\planet\test-connection.plt\1\0\.\ > >> PLaneT: unpacking test-connection.ss in > >> > C:\Users\robby\AppData\Roaming\Racket\planet\300\release-snapshot\cache\planet > >> > >> \test-connection.plt\1\0\.\ > >> PLaneT: > >> PLaneT: ============= Installing test-connection.plt on Mon, 16 Dec 2013 > >> 12:4:19 ============= > >> PLaneT: raco setup: version: 5.91 [3m] > >> PLaneT: raco setup: installation name: release-snapshot > >> PLaneT: raco setup: variants: 3m > >> PLaneT: raco setup: main collects: C:\Program Files > >> (x86)\Racket-5.91-pre-release\collects > >> PLaneT: raco setup: collects paths: > >> PLaneT: raco setup: > >> C:\Users\robby\AppData\Roaming\Racket\release-snapshot\collects > >> PLaneT: raco setup: C:\Program Files > >> (x86)\Racket-5.91-pre-release\collects > >> PLaneT: raco setup: main pkgs: C:\Program Files > >> (x86)\Racket-5.91-pre-release\share\pkgs > >> PLaneT: raco setup: pkgs paths: > >> PLaneT: raco setup: C:\Program Files > >> (x86)\Racket-5.91-pre-release\share\pkgs > >> PLaneT: raco setup: > >> C:\Users\robby\AppData\Roaming\Racket\release-snapshot\pkgs > >> PLaneT: raco setup: links files: > >> PLaneT: raco setup: C:\Program Files > >> (x86)\Racket-5.91-pre-release\share\links.rktd > >> PLaneT: raco setup: > >> C:\Users\robby\AppData\Roaming\Racket\release-snapshot\links.rktd > >> PLaneT: raco setup: main docs: C:\Program Files > >> (x86)\Racket-5.91-pre-release\doc > >> PLaneT: raco setup: --- updating info-domain tables --- > >> PLaneT: raco setup: updating: > >> C:\Users\robby\AppData\Roaming\Racket\planet\300\release-snapshot\cache.rktd > >> > >> PLaneT: raco setup: --- pre-installing collections --- > >> PLaneT: raco setup: --- installing foreign libraries --- > >> PLaneT: raco setup: --- installing shared files --- > >> PLaneT: raco setup: --- compiling collections --- > >> PLaneT: raco setup: making: <pkgs>/racket-index/scribblings/main > >> PLaneT: raco setup: making: <pkgs>/racket-index/scribblings/main/private > >> PLaneT: raco setup: making: <pkgs>/racket-index/scribblings/main/user > >> PLaneT: raco setup: making: <planet>/planet/test-connection.plt/1/0 > >> (Test connection) > >> PLaneT: raco setup: in <planet>/planet/test-connection.plt/1/0 > >> PLaneT: raco setup: --- creating launchers --- > >> PLaneT: raco setup: --- building documentation --- > >> ^C > >> C:\Users\robby>user break > >> context...: > >> C:\Program Files > >> (x86)\Racket-5.91-pre-release\collects\db\private\sqlite3\ffi.rkt:44:2 > >> C:\Program Files > >> (x86)\Racket-5.91-pre-release\collects\db\private\sqlite3\main.rkt:10:0: > >> sqlite3-connect11 > >> C:\Program Files > >> (x86)\Racket-5.91-pre-release\collects\setup\doc-db.rkt:153:0: > >> doc-db-get-provides-timestamp > >> C:\Program Files > >> > (x86)\Racket-5.91-pre-release\share\pkgs\racket-index\setup\scribble.rkt:946:0 > >> > >> loop > >> C:\Program Files > >> > (x86)\Racket-5.91-pre-release\share\pkgs\racket-index\setup\scribble.rkt:131:0: > >> > >> setup-scribblings > >> C:\Program Files > >> (x86)\Racket-5.91-pre-release\collects\setup\setup-core.rkt:59:0: > >> setup-core > >> C:\Program Files > >> (x86)\Racket-5.91-pre-release\collects\setup\setup.rkt:56:3 > >> user break > >> context...: > >> C:\Program Files > >> (x86)\Racket-5.91-pre-release\collects\planet\private\resolver.rkt:606:8 > >> C:\Program Files > >> > (x86)\Racket-5.91-pre-release\collects\planet\private\planet-shared.rkt:618:2: > >> > >> with-logging > >> C:\Program Files > >> (x86)\Racket-5.91-pre-release\collects\planet\private\resolver.rkt:573:0: > >> install-pkg > >> C:\Program Files > >> > (x86)\Racket-5.91-pre-release\share\pkgs\planet-lib\planet\private\cmdline-tool > .rkt:153:2: > >> > >> download/ > >> install > >> C:\Program Files > >> (x86)\Racket-5.91-pre-release\share\pkgs\planet-lib\planet\raco.rkt: > >> [running body] > >> C:\Program Files > >> (x86)\Racket-5.91-pre-release\collects\raco\raco.rkt: [running body] > >> C:\Program Files > >> (x86)\Racket-5.91-pre-release\collects\raco\main.rkt: [running body] > >> > >> C:\Users\robby> > >> > >> > >> Robby > >> > > _________________________ Racket Developers list: http://lists.racket-lang.org/dev