Snow Leopard builder failing on SQLite database corruption

Ryan Schmidt ryandesign at macports.org
Thu May 21 14:53:36 PDT 2015


Keith, could you look into this please? See my suggestion and additional question below. Thanks.


On May 19, 2015, at 10:16 PM, Ryan Schmidt wrote:

> On May 19, 2015, at 7:14 PM, Benjamin Gilbert wrote:
>> 
>> The buildports-snowleopard-x86_64 builder is currently failing to
>> complete every build but is reporting success anyway.  The stdio log
>> for the "write portlist file" step says:
>> 
>> Error: sqlite error: database disk image is malformed (11) while
>> executing query: ATTACH DATABASE
>> '/opt/local/var/macports/registry/registry.db' AS registry
>>   while executing
>> "registry::open $db_path"
>>   (procedure "mportinit" line 610)
>>   invoked from within
>> "mportinit "" "" """
>> Error: Failed to initialize ports sytem: sqlite error: database disk
>> image is malformed (11) while executing query: ATTACH DATABASE
>> '/opt/local/var/macports/registry/registry.db' AS registry
>> child process exited abnormally
>> [...]
>> 
>> and then compile doesn't do anything because there is no portlist.
> 
> 
> This build got interrupted with an exception:
> 
> https://build.macports.org/builders/buildports-snowleopard-x86_64/builds/35778
> 
> At that point the Snow Leopard builder was offline and I emailed Mac OS Forge admin (Keith) about it. He said there was a dialog box on the server requesting a restart, so he restarted it.
> 
> But the next build is where the registry database was corrupted:
> 
> https://build.macports.org/builders/buildports-snowleopard-x86_64/builds/35779
> 
> I don't know why the database got corrupted. I don't know how to fix the corruption. Saw a couple tickets about this error which were closed without satisfactory resolution.
> 
> Did the server's disk perhaps run out of space?
> 
> Does running a port command with sudo, e.g. "sudo port installed", work, and perhaps in the process cause the corruption to be fixed? (Keith: can you run that on the Snow Leopard builder to see?)

To clarify why this might help: sqlite can repair some kinds of corruption, if it has write access to the database; creating the port list doesn't use "sudo" so sqlite doesn't have write access to the registry database in that instance, so using "sudo" to run any port command involving the registry might fix it.


> Keith: could you be more specific about the restart dialog? Was it a software update? A kernel panic? Something else?




More information about the macports-dev mailing list