From: Moritz Bunkus Date: Mon, 23 Jun 2014 14:15:11 +0000 (+0200) Subject: Offene Transaktionen vor DB-Upgrades comitten X-Git-Tag: release-3.2.0beta~411^2~23 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=85d9159e944df2ea79b5a32f19fa61531053afda;p=kivitendo-erp.git Offene Transaktionen vor DB-Upgrades comitten Hintergrund ist, dass Locks potenziell vorhanden sein können. Einfaches Beispiel: $::instance_conf wird geladen (dadurch implizites ACCESS-SHARE-Lock auf »defaults«), Upgrade will Schema von »defaults« verändern, was dann hängt, weil dafür ACCESS-EXCLUSIVE benötigt wird – das mit ACCESS-SHARE kollidiert. --- diff --git a/SL/User.pm b/SL/User.pm index 8bb9b997b..42622f8fd 100644 --- a/SL/User.pm +++ b/SL/User.pm @@ -384,6 +384,9 @@ sub dbupdate2 { &dbconnect_vars($form, $db); + # Flush potentially held database locks. + $form->get_standard_dbh->commit; + my $dbh = SL::DBConnect->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd}, SL::DBConnect->get_options) or $form->dberror; $dbh->do($form->{dboptions}) if ($form->{dboptions});