Merge pull request #9638 from annando/bad-priority

Check for bad worker priorities
This commit is contained in:
Hypolite Petovan 2020-12-09 01:12:34 -05:00 committed by GitHub
commit 9c0342b907
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 6 deletions

View file

@ -201,6 +201,7 @@ define('PRIORITY_HIGH', 20);
define('PRIORITY_MEDIUM', 30);
define('PRIORITY_LOW', 40);
define('PRIORITY_NEGLIGIBLE', 50);
define('PRIORITIES', [PRIORITY_CRITICAL, PRIORITY_HIGH, PRIORITY_MEDIUM, PRIORITY_LOW, PRIORITY_NEGLIGIBLE]);
/* @}*/
/**

View file

@ -421,6 +421,11 @@ class Worker
// For this reason the variables have to be initialized.
DI::profiler()->reset();
if (!in_array($queue['priority'], PRIORITIES)) {
Logger::warning('Invalid priority', ['queue' => $queue, 'callstack' => System::callstack(20)]);
$queue['priority'] = PRIORITY_MEDIUM;
}
$a->queue = $queue;
$up_duration = microtime(true) - self::$up_start;
@ -1264,6 +1269,11 @@ class Worker
$found = DBA::exists('workerqueue', ['command' => $command, 'parameter' => $parameters, 'done' => false]);
$added = false;
if (!in_array($priority, PRIORITIES)) {
Logger::warning('Invalid priority', ['priority' => $priority, 'command' => $command, 'callstack' => System::callstack(20)]);
$priority = PRIORITY_MEDIUM;
}
// Quit if there was a database error - a precaution for the update process to 3.5.3
if (DBA::errorNo() != 0) {
return false;

View file

@ -1568,7 +1568,7 @@ class Item
$item['network'] = Protocol::DFRN;
$item['protocol'] = Conversation::PARCEL_DIRECT;
if (is_int($notify)) {
if (in_array($notify, PRIORITIES)) {
$priority = $notify;
}
} else {
@ -2912,7 +2912,7 @@ class Item
$_SESSION["authenticated"] = true;
$_SESSION["uid"] = $contact['uid'];
return $result;
return (bool)$result;
}
/**

View file

@ -623,7 +623,7 @@ class Feed
'taglist' => $taglist, 'attachments' => $attachments];
}
} else {
Logger::info('Post already crated or exists in the delayed posts queue', ['uid' => $item['uid'], 'uri' => $item["uri"]]);
Logger::info('Post already created or exists in the delayed posts queue', ['uid' => $item['uid'], 'uri' => $item["uri"]]);
}
}

View file

@ -22,9 +22,7 @@
namespace Friendica\Worker;
use Friendica\Core\Logger;
use Friendica\Model\Item;
use Friendica\Model\Post;
use Friendica\Model\Tag;
class DelayedPublish
{
@ -40,6 +38,6 @@ class DelayedPublish
public static function execute(array $item, int $notify = 0, array $taglist = [], array $attachments = [])
{
$id = Post\Delayed::publish($item, $notify, $taglist, $attachments);
Logger::notice('Post published', ['id' => $id, 'uid' => $item['uid'], 'cid' => $item['contact-id']]);
Logger::notice('Post published', ['id' => $id, 'uid' => $item['uid'], 'cid' => $item['contact-id'], 'notify' => $notify]);
}
}