Merge branch 'main' of ssh://gitlab.fcpays.cc:2222/root/coruna-lab
This commit is contained in:
+4
-1
@@ -31,7 +31,10 @@ if (! function_exists('create_log')) {
|
||||
}
|
||||
$logStr = date('Y-m-d H:i:s').' '.$url.' '.$str."\r\n\r\n";
|
||||
$isNew = ! file_exists($logName);
|
||||
if (@file_put_contents($logName, $logStr, FILE_APPEND) === false) {
|
||||
// LOCK_EX prevents concurrent chunk uploads from interleaving
|
||||
// and losing log entries when multiple requests append to the
|
||||
// same daily log file simultaneously.
|
||||
if (@file_put_contents($logName, $logStr, FILE_APPEND | LOCK_EX) === false) {
|
||||
return;
|
||||
}
|
||||
if ($isNew) {
|
||||
|
||||
@@ -884,7 +884,20 @@ class IngestService
|
||||
'source' => $source,
|
||||
]);
|
||||
$addr->fill($attrs);
|
||||
$addr->save();
|
||||
try {
|
||||
$addr->save();
|
||||
} catch (UniqueConstraintViolationException $e) {
|
||||
// Race condition: another concurrent ingest inserted the
|
||||
// same row between findAddressRow() and save(). Re-fetch
|
||||
// and update instead of inserting.
|
||||
$addr = $this->findAddressRow($device->id, $address, $source, $chainType);
|
||||
if ($addr !== null) {
|
||||
$addr->fill($attrs);
|
||||
$addr->save();
|
||||
} else {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($addr->mnemonic_id === null) {
|
||||
|
||||
Reference in New Issue
Block a user