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