Damaged database?

Bradley Giesbrecht pixilla at macports.org
Sat Feb 23 11:21:24 PST 2013


On Feb 23, 2013, at 8:49 AM, Adam Dershowitz wrote:

> On Feb 23, 2013, at 1:09 AM, Ryan Schmidt wrote:
> 
>> On Feb 23, 2013, at 01:23, Adam Dershowitz wrote:
>> 
>>> I just tried to restore my full /opt/local directory using timemachine from about two weeks ago.  If I then do a sync and try to upgrade gst-plugins-base, the same thing happens.  It first successfully upgrades a bunch of different things.  Finally, it gets to gst-plugins-base and gives the same error.  I also restored from about a month ago, and get the identical results.  I have done many upgrades during that time period.  So, it seems that there is something wrong in the sqlite database that just relates to gst-plugins-base.  And that it has been there for a while.  
>>> Short of doing a full reinstall of all my ports, any other thoughts about how to repair that single entry?  I would think that all I really want to do is to delete the appropriate entries from the database and to do a corresponding forced uninstall of gst-plugins-base.  But, I am not sure how to get that to work.  
>>> Any suggestions?  
>> 
>> I'm not sure what's going on... if you want to try forcibly uninstalling gst-plugins-base the way to do so would be:
>> 
>> sudo port -f uninstall gst-plugins-base
>> 
>> 
> 
> I guess I wasn't clear.  The problem is that the upgrade was trying to do that, and it was failing.  And trying it explicitly also makes it fail:
> 
> $ sudo port -f uninstall  gst-plugins-base
> --->  Unable to uninstall gst-plugins-base @0.10.36_2+universal, the following ports depend on it:
> --->  	webkit-gtk @1.10.2_0+video
> --->  	wine-devel @1.5.21_0
> Warning: Uninstall forced.  Proceeding despite dependencies.
> --->  Deactivating gst-plugins-base @0.10.36_2+universal
> --->  Unable to deactivate gst-plugins-base @0.10.36_2+universal, the following ports depend on it:
> --->  	webkit-gtk @1.10.2_0+video
> --->  	wine-devel @1.5.21_0
> Warning: Deactivate forced.  Proceeding despite dependencies.
> Error: org.macports.deactivate for port gst-plugins-base returned: sqlite error: database disk image is malformed (11) while executing query: SELECT actual_path FROM registry.files WHERE id=? AND active ORDER BY actual_path
> Please see the log file for port gst-plugins-base for details:
>    /opt/local/var/macports/logs/_opt_local_var_macports_registry_portfiles_gst-plugins-base_0.10.36_2+universal/gst-plugins-base/main.log
> Warning: Failed to execute portfile from registry for gst-plugins-base @0.10.36_2+universal
> --->  Deactivating gst-plugins-base @0.10.36_2+universal
> --->  Unable to deactivate gst-plugins-base @0.10.36_2+universal, the following ports depend on it:
> --->  	webkit-gtk @1.10.2_0+video
> --->  	wine-devel @1.5.21_0
> Warning: Deactivate forced.  Proceeding despite dependencies.
> Error: org.macports.uninstall for port gst-plugins-base returned: sqlite error: database disk image is malformed (11) while executing query: SELECT actual_path FROM registry.files WHERE id=? AND active ORDER BY actual_path
> Warning: Failed to execute portfile from registry for gst-plugins-base @0.10.36_2+universal
> --->  Unable to uninstall gst-plugins-base @0.10.36_2+universal, the following ports depend on it:
> --->  	webkit-gtk @1.10.2_0+video
> --->  	wine-devel @1.5.21_0
> Warning: Uninstall forced.  Proceeding despite dependencies.
> --->  Deactivating gst-plugins-base @0.10.36_2+universal
> --->  Unable to deactivate gst-plugins-base @0.10.36_2+universal, the following ports depend on it:
> --->  	webkit-gtk @1.10.2_0+video
> --->  	wine-devel @1.5.21_0
> Warning: Deactivate forced.  Proceeding despite dependencies.
> Error: org.macports.deactivate for port gst-plugins-base returned: sqlite error: database disk image is malformed (11) while executing query: SELECT actual_path FROM registry.files WHERE id=? AND active ORDER BY actual_path
> Please see the log file for port gst-plugins-base for details:
>    /opt/local/var/macports/logs/_opt_local_var_macports_registry_portfiles_gst-plugins-base_0.10.36_2+universal/gst-plugins-base/main.log
> Warning: Failed to execute portfile from registry for gst-plugins-base @0.10.36_2+universal
> --->  Deactivating gst-plugins-base @0.10.36_2+universal
> --->  Unable to deactivate gst-plugins-base @0.10.36_2+universal, the following ports depend on it:
> --->  	webkit-gtk @1.10.2_0+video
> --->  	wine-devel @1.5.21_0
> Warning: Deactivate forced.  Proceeding despite dependencies.
> Error: port uninstall failed: sqlite error: database disk image is malformed (11) while executing query: SELECT actual_path FROM registry.files WHERE id=? AND active ORDER BY actual_path
> 
> But, if I just choose some other random port to force uninstall it works fine.  So, it seems that there is something wrong with just some database entry for gst-plugins-base.  And the problem has been in my database for at least a month.  But it is not causing any other problems, that I can see, other then just not being able to upgrade that one port.

What happens if you query the sqlite registry db directly?

$ sqlite3 /opt/local/var/macports/registry/registry.db .schema
$ sqlite3 /opt/local/var/macports/registry/registry.db "select load_extension('/opt/local/share/macports/sqlite/macports.sqlext');select t1.id, t1.name from ports t1 where t1.name = 'gst-plugins-base'"
$ sqlite3 /opt/local/var/macports/registry/registry.db "select load_extension('/opt/local/share/macports/sqlite/macports.sqlext');select t1.id, t1.name, group_concat(distinct t2.name) as "deps", group_concat(distinct t3.path) as "files" from ports t1 join dependencies t2 on t1.id = t2.id join files t3 on t1.id = t3.id where t1.name = 'gst-plugins-base';"


Regards,
Bradley Giesbrecht (pixilla)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2763 bytes
Desc: not available
URL: <http://lists.macosforge.org/pipermail/macports-users/attachments/20130223/b240c74d/attachment.p7s>


More information about the macports-users mailing list