Revision: 100223 https://trac.macports.org/changeset/100223 Author: cal@macports.org Date: 2012-12-03 16:50:31 -0800 (Mon, 03 Dec 2012) Log Message: ----------- Merge from trunk: r100129, r100217-100219, r100220 r100129: Fix endless loop in rev-upgrade on broken or old portindex r100217-19: Fixes and small optimizations in registry code r100220: ChangeLog entry Revision Links: -------------- https://trac.macports.org/changeset/100129 https://trac.macports.org/changeset/100217 https://trac.macports.org/changeset/100220 https://trac.macports.org/changeset/100129 https://trac.macports.org/changeset/100217 https://trac.macports.org/changeset/100220 Modified Paths: -------------- branches/release_2_1/base/ChangeLog branches/release_2_1/base/src/cregistry/registry.c branches/release_2_1/base/src/macports1.0/macports.tcl branches/release_2_1/base/src/registry2.0/portuninstall.tcl Property Changed: ---------------- branches/release_2_1/base/ branches/release_2_1/base/ChangeLog branches/release_2_1/base/src/macports1.0/ Property changes on: branches/release_2_1/base ___________________________________________________________________ Modified: svn:mergeinfo - /branches/gsoc08-privileges/base:37343-46937 /branches/gsoc09-logging/base:51231-60371 /branches/gsoc11-rev-upgrade/base:78828-88375 /branches/universal-sanity/base:51872-52323 /branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base:91825,91829,91834,92072,92342,92404,92546,92730,92785,92881,92903,92976,93062,93129,93153,93197,93250,93256,93258-93259,93261,93268,93274,93303,93339,93511-93512,93816,93962,95382,95438-95439,95480,95552,95616,95620,95873,96136-96137,96399-96401,96538-96539,97868-97869 /users/perry/base-bugs_and_notes:45682-46060 /users/perry/base-select:44044-44692 + /branches/gsoc08-privileges/base:37343-46937 /branches/gsoc09-logging/base:51231-60371 /branches/gsoc11-rev-upgrade/base:78828-88375 /branches/universal-sanity/base:51872-52323 /branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base:91825,91829,91834,92072,92342,92404,92546,92730,92785,92881,92903,92976,93062,93129,93153,93197,93250,93256,93258-93259,93261,93268,93274,93303,93339,93511-93512,93816,93962,95382,95438-95439,95480,95552,95616,95620,95873,96136-96137,96399-96401,96538-96539,97868-97869,100129,100217-100220 /users/perry/base-bugs_and_notes:45682-46060 /users/perry/base-select:44044-44692 Modified: branches/release_2_1/base/ChangeLog =================================================================== --- branches/release_2_1/base/ChangeLog 2012-12-04 00:44:27 UTC (rev 100222) +++ branches/release_2_1/base/ChangeLog 2012-12-04 00:50:31 UTC (rev 100223) @@ -13,6 +13,22 @@ ccache >= 3.1.7 by running the initialization step as the macportsuser. (raimue in r97868) + - Fix an endless loop that could be triggered in rev-upgrade when a user + hasn't run selfupdate in more than a year or the portindex is corrupt. + (cal in r100129) + + - Set a busy timeout on SQLite connections to prevent MacPorts from + uselessly burning CPU cycles when waiting for a database lock. + (cal in r100217) + + - Switch from exclusive locking to immediate locking in the registry + database to avoid locking reads where not needed. + (cal in r100218) + + - Fix a problem where interrupting the uninstallation process could leave + the registry database in a corrupted state. + (cal in r100219) + Release 2.1.2 (2012-07-26 by jmr): - Fixed autodetection of developer_dir with Xcode 4.4 (#35150, mfeiri in r95552) Property changes on: branches/release_2_1/base/ChangeLog ___________________________________________________________________ Modified: svn:mergeinfo - /branches/gsoc08-privileges/base/ChangeLog:37343-46937 /branches/gsoc09-logging/base/ChangeLog:51231-60371 /branches/gsoc11-rev-upgrade/base/ChangeLog:78828-88375 /branches/universal-sanity/base/ChangeLog:51872-52323 /branches/variant-descs-14482/base/ChangeLog:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/ChangeLog:91825,91829,91834,92072,92342,92404,92546,92730,92785,92881,92903,93062,93129,93153,93197,93225,93250,93256,93268,93274,95439,95620,95873,96137,96399-96401,96539,97869 /users/perry/base-bugs_and_notes/ChangeLog:45682-46060 /users/perry/base-select/ChangeLog:44044-44692 + /branches/gsoc08-privileges/base/ChangeLog:37343-46937 /branches/gsoc09-logging/base/ChangeLog:51231-60371 /branches/gsoc11-rev-upgrade/base/ChangeLog:78828-88375 /branches/universal-sanity/base/ChangeLog:51872-52323 /branches/variant-descs-14482/base/ChangeLog:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/ChangeLog:91825,91829,91834,92072,92342,92404,92546,92730,92785,92881,92903,93062,93129,93153,93197,93225,93250,93256,93268,93274,95439,95620,95873,96137,96399-96401,96539,97869,100129,100217-100220 /users/perry/base-bugs_and_notes/ChangeLog:45682-46060 /users/perry/base-select/ChangeLog:44044-44692 Modified: branches/release_2_1/base/src/cregistry/registry.c =================================================================== --- branches/release_2_1/base/src/cregistry/registry.c 2012-12-04 00:44:27 UTC (rev 100222) +++ branches/release_2_1/base/src/cregistry/registry.c 2012-12-04 00:50:31 UTC (rev 100223) @@ -118,6 +118,8 @@ sqlite3_extended_result_codes(reg->db, 1); #endif + sqlite3_busy_timeout(reg->db, 25); + if (init_db(reg->db, errPtr)) { reg->status = reg_none; *regPtr = reg; @@ -364,7 +366,7 @@ * @return true if success; false if failure */ int reg_start_write(reg_registry* reg, reg_error* errPtr) { - if (reg_start(reg, "BEGIN EXCLUSIVE", errPtr)) { + if (reg_start(reg, "BEGIN IMMEDIATE", errPtr)) { reg->status |= reg_transacting | reg_can_write; return 1; } else { Property changes on: branches/release_2_1/base/src/macports1.0 ___________________________________________________________________ Modified: svn:mergeinfo - /branches/gsoc08-privileges/base/src/macports1.0:37343-46937 /branches/gsoc09-logging/base/src/macports1.0:51231-60371 /branches/gsoc11-rev-upgrade/base/src/macports1.0:78828-88375 /branches/universal-sanity/base/src/macports1.0:51872-52323 /branches/variant-descs-14482/base/src/macports1.0:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/macports1.0:91825,91829,91834,92072,92342,92404,92546,92730,92785,92881,92903,92976,93062,93129,93153,93197,93221,93816,93962,95552 /users/perry/base-bugs_and_notes/src/macports1.0:45682-46060 /users/perry/base-select/src/macports1.0:44044-44692 + /branches/gsoc08-privileges/base/src/macports1.0:37343-46937 /branches/gsoc09-logging/base/src/macports1.0:51231-60371 /branches/gsoc11-rev-upgrade/base/src/macports1.0:78828-88375 /branches/universal-sanity/base/src/macports1.0:51872-52323 /branches/variant-descs-14482/base/src/macports1.0:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659 /trunk/base/src/macports1.0:91825,91829,91834,92072,92342,92404,92546,92730,92785,92881,92903,92976,93062,93129,93153,93197,93221,93816,93962,95552,100129,100217-100219 /users/perry/base-bugs_and_notes/src/macports1.0:45682-46060 /users/perry/base-select/src/macports1.0:44044-44692 Modified: branches/release_2_1/base/src/macports1.0/macports.tcl =================================================================== --- branches/release_2_1/base/src/macports1.0/macports.tcl 2012-12-04 00:44:27 UTC (rev 100222) +++ branches/release_2_1/base/src/macports1.0/macports.tcl 2012-12-04 00:50:31 UTC (rev 100223) @@ -4342,8 +4342,8 @@ } if {[llength $result] < 2} { ui_warn "No port $portname found in the index; can't rebuild" - unset broken_files_by_port($port) - continue + ui_warn "Either your portindex is corrupt or $portname has been removed; consider uninstalling it." + error "Port $portname not found in index" } } if {![info exists broken_port_counts($portname)]} { Modified: branches/release_2_1/base/src/registry2.0/portuninstall.tcl =================================================================== --- branches/release_2_1/base/src/registry2.0/portuninstall.tcl 2012-12-04 00:44:27 UTC (rev 100222) +++ branches/release_2_1/base/src/registry2.0/portuninstall.tcl 2012-12-04 00:50:31 UTC (rev 100223) @@ -217,7 +217,9 @@ # files so just ignore the failure catch {file delete [::file dirname $imagefile]} - registry::entry delete $port + registry::write { + registry::entry delete $port + } } # uninstall dependencies if requested