Bug 18364: [Follow-up] Also add an environment variable to prevent locking
The test in SendCirculationAlert is extended by adding an env var
called KOHA_NO_TABLE_LOCKS. If this var is set to a true value,
the table locking is skipped too.
This is useful when running a test without prove. The variable could be
set in a shell profile.
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Mason James <mtj@kohaaloha.com>
(cherry picked from commit 15751085e9)
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
This commit is contained in:
parent
b710291ec9
commit
d3d4572ebf
|
|
@ -3374,7 +3374,7 @@ sub SendCirculationAlert {
|
|||
# LOCK TABLES is not transaction-safe and implicitly commits any active transaction before attempting to lock the tables.
|
||||
# If the LOCK/UNLOCK statements are executed from tests, the current transaction will be committed.
|
||||
# To avoid that we need to guess if this code is execute from tests or not (yes it is a bit hacky)
|
||||
my $called_from_tests = exists $ENV{_} and $ENV{_} =~ m|prove|;
|
||||
my $do_not_lock = ( exists $ENV{_} && $ENV{_} =~ m|prove| ) || $ENV{KOHA_NO_TABLE_LOCKS};
|
||||
|
||||
for my $mtt (@transports) {
|
||||
my $letter = C4::Letters::GetPreparedLetter (
|
||||
|
|
@ -3393,17 +3393,17 @@ sub SendCirculationAlert {
|
|||
) or next;
|
||||
|
||||
$schema->storage->txn_begin;
|
||||
C4::Context->dbh->do(q|LOCK TABLE message_queue READ|) unless $called_from_tests;
|
||||
C4::Context->dbh->do(q|LOCK TABLE message_queue WRITE|) unless $called_from_tests;
|
||||
C4::Context->dbh->do(q|LOCK TABLE message_queue READ|) unless $do_not_lock;
|
||||
C4::Context->dbh->do(q|LOCK TABLE message_queue WRITE|) unless $do_not_lock;
|
||||
my $message = C4::Message->find_last_message($borrower, $type, $mtt);
|
||||
unless ( $message ) {
|
||||
C4::Context->dbh->do(q|UNLOCK TABLES|) unless $called_from_tests;
|
||||
C4::Context->dbh->do(q|UNLOCK TABLES|) unless $do_not_lock;
|
||||
C4::Message->enqueue($letter, $borrower, $mtt);
|
||||
} else {
|
||||
$message->append($letter);
|
||||
$message->update;
|
||||
}
|
||||
C4::Context->dbh->do(q|UNLOCK TABLES|) unless $called_from_tests;
|
||||
C4::Context->dbh->do(q|UNLOCK TABLES|) unless $do_not_lock;
|
||||
$schema->storage->txn_commit;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue