projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
a78922d
)
ping the database and retry rather before doing anything
author
ivan
<ivan>
Fri, 25 Jun 2004 10:25:02 +0000
(10:25 +0000)
committer
ivan
<ivan>
Fri, 25 Jun 2004 10:25:02 +0000
(10:25 +0000)
FS/FS/UID.pm
patch
|
blob
|
history
FS/bin/freeside-queued
patch
|
blob
|
history
diff --git
a/FS/FS/UID.pm
b/FS/FS/UID.pm
index
8271f89
..
3d893ee
100644
(file)
--- a/
FS/FS/UID.pm
+++ b/
FS/FS/UID.pm
@@
-16,7
+16,7
@@
use FS::Conf;
@ISA = qw(Exporter);
@EXPORT_OK = qw(checkeuid checkruid cgisuidsetup adminsuidsetup forksuidsetup
@ISA = qw(Exporter);
@EXPORT_OK = qw(checkeuid checkruid cgisuidsetup adminsuidsetup forksuidsetup
- getotaker dbh datasrc getsecrets driver_name );
+ getotaker dbh datasrc getsecrets driver_name
myconnect
);
$freeside_uid = scalar(getpwnam('freeside'));
$freeside_uid = scalar(getpwnam('freeside'));
@@
-84,11
+84,8
@@
sub forksuidsetup {
$ENV{'BASH_ENV'} = '';
croak "Not running uid freeside!" unless checkeuid();
$ENV{'BASH_ENV'} = '';
croak "Not running uid freeside!" unless checkeuid();
- getsecrets;
- $dbh = DBI->connect($datasrc,$db_user,$db_pass, {
- 'AutoCommit' => 0,
- 'ChopBlanks' => 1,
- } ) or die "DBI->connect error: $DBI::errstr\n";
+
+ $dbh = &myconnect;
foreach ( keys %callback ) {
&{$callback{$_}};
foreach ( keys %callback ) {
&{$callback{$_}};
@@
-100,6
+97,11
@@
sub forksuidsetup {
$dbh;
}
$dbh;
}
+sub myconnect {
+ $dbh = DBI->connect( getsecrets, {'AutoCommit' => 0, 'ChopBlanks' => 1, } )
+ or die "DBI->connect error: $DBI::errstr\n";
+}
+
=item install_callback
A package can install a callback to be run in adminsuidsetup by passing
=item install_callback
A package can install a callback to be run in adminsuidsetup by passing
diff --git
a/FS/bin/freeside-queued
b/FS/bin/freeside-queued
index
6ea27c0
..
0be3d9d
100644
(file)
--- a/
FS/bin/freeside-queued
+++ b/
FS/bin/freeside-queued
@@
-7,7
+7,7
@@
use Fcntl qw(:flock);
use POSIX qw(:sys_wait_h setsid);
use Date::Format;
use IO::File;
use POSIX qw(:sys_wait_h setsid);
use Date::Format;
use IO::File;
-use FS::UID qw(adminsuidsetup forksuidsetup driver_name dbh);
+use FS::UID qw(adminsuidsetup forksuidsetup driver_name dbh
myconnect
);
use FS::Record qw(qsearch qsearchs);
use FS::queue;
use FS::queue_depend;
use FS::Record qw(qsearch qsearchs);
use FS::queue;
use FS::queue_depend;
@@
-75,18
+75,27
@@
while (1) {
}
$warnkids=0;
}
$warnkids=0;
- my $nodepend = driver_name eq 'mysql'
- ? ''
- : 'AND 0 = ( SELECT COUNT(*) FROM queue_depend'.
- ' WHERE queue_depend.jobnum = queue.jobnum ) ';
+ my $dbh = dbh;
+ unless ( $dbh->ping ) {
+ warn "WARNING: connection to database lost, reconnecting...\n";
+ myconnect;
+ unless ( $dbh->ping ) {
+ warn "WARNING: still no connection to database, sleeping for retry...\n";
+ sleep 10;
+ next;
+ }
+ }
#my($job, $ljob);
#{
# my $oldAutoCommit = $FS::UID::AutoCommit;
# local $FS::UID::AutoCommit = 0;
$FS::UID::AutoCommit = 0;
#my($job, $ljob);
#{
# my $oldAutoCommit = $FS::UID::AutoCommit;
# local $FS::UID::AutoCommit = 0;
$FS::UID::AutoCommit = 0;
- my $dbh = dbh;
+ my $nodepend = driver_name eq 'mysql'
+ ? ''
+ : 'AND 0 = ( SELECT COUNT(*) FROM queue_depend'.
+ ' WHERE queue_depend.jobnum = queue.jobnum ) ';
my $job = qsearchs(
'queue',
{ 'status' => 'new' },
my $job = qsearchs(
'queue',
{ 'status' => 'new' },