This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author janssen
Recipients janssen, loewis
Date 2010-04-27.22:55:48
SpamBayes Score 9.574789e-08
Marked as misclassified No
Message-id <1272408951.39.0.507376251976.issue8552@psf.upfronthosting.co.za>
In-reply-to
Content
I'm trying to create a CAB file containing about 69MB of data, in 4555 files.  msilib fails in CAB.commit():

$ python build-msi-installer.py /c/UpLib/1.7.9 ~/uplib 1.7.9 ./uplib-1.7.9.msi
c:\Documents and Settings\wjanssen\uplib\win32\uplib-1.7.9.msi
install_location c:/UpLib/1.7.9
c:\docume~1\wjanssen\locals~1\temp\tmpu5dwz6 68943045
gc: collecting generation 0...
gc: objects in each generation: 670 702 8255
gc: done, 0.0000s elapsed.
gc: collecting generation 0...
gc: objects in each generation: 707 1364 8255
gc: done, 0.0000s elapsed.
gc: collecting generation 0...
gc: objects in each generation: 699 2031 8255
gc: done, 0.0000s elapsed.
gc: collecting generation 0...
gc: objects in each generation: 794 2680 8255
gc: done, 0.0000s elapsed.
gc: collecting generation 0...
gc: objects in each generation: 730 3373 8255
gc: done, 0.0000s elapsed.
gc: collecting generation 0...
gc: objects in each generation: 765 4018 8255
gc: done, 0.0000s elapsed.
gc: collecting generation 0...
gc: objects in each generation: 741 4697 8255
gc: done, 0.0000s elapsed.
(1, 4555, None, '#prereqs', None, None)
Traceback (most recent call last):
  File "build-msi-installer.py", line 780, in <module>
    p.run()
  File "build-msi-installer.py", line 243, in run
    self.add_files()
  File "build-msi-installer.py", line 312, in add_files
    cab.commit(self.db)
  File "c:\Python26\lib\msilib\__init__.py", line 223, in commit
    [(1, self.index, None, "#"+self.name, None, None)])
  File "c:\Python26\lib\msilib\__init__.py", line 97, in add_data
    v = db.OpenView("SELECT * FROM `%s`" % table)
_msi.MSIError: 1: 2229 2: c:\Documents and Settings\wjanssen\uplib\win32\uplib-1.7.9.msi 3: Media 4: SELECT * FROM `Media` 
gc: collecting generation 2...
gc: objects in each generation: 416 5351 8254
gc: done, 0.0000s elapsed.
$

(I added a bit of code to print out the Media table record, and the size of the file created with FCICreate.)

This works fine if I choose a slightly smaller subset, such as /c/UpLib/1.7.9/lib, for instance.  So I'm guessing this is a memory problem; at some point there's just not enough memory to open the MSI file and load the Media table.

I opened the MSI file with orca and sure enough, there is no Media table in it.  Not sure how to take that, though;  perhaps the table only appears after a record has been written to it.

Another reason to allow multiple CAB files in a single installer?
History
Date User Action Args
2010-04-27 22:55:51janssensetrecipients: + janssen, loewis
2010-04-27 22:55:51janssensetmessageid: <1272408951.39.0.507376251976.issue8552@psf.upfronthosting.co.za>
2010-04-27 22:55:49janssenlinkissue8552 messages
2010-04-27 22:55:48janssencreate