mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-15 10:00:55 +01:00
(stable) Fix transaction queries using withComments() for transactions with no comments
Summary: See <https://discourse.phabricator-community.org/t/daemons-tasks-crashing-in-a-loop-during-reindex/506/1>. Some object types (for example, Passphrase Credentials) support indexing but not commenting. Make `withComments(...)` work properly if the transaction type does not support comments. Test Plan: Indexed a credential (no comments) and a revision (comments) with `bin/search index --trace ...`. Before, credential fataled. After, credetial succeeds, and skips the transaction query. Before and after, the revision queries the transaction table. Reviewers: amckinley Reviewed By: amckinley Differential Revision: https://secure.phabricator.com/D18667
This commit is contained in:
parent
ce9e30b020
commit
8297f7a182
1 changed files with 22 additions and 9 deletions
|
@ -203,6 +203,18 @@ abstract class PhabricatorApplicationTransactionQuery
|
|||
$xaction = $this->getTemplateApplicationTransaction();
|
||||
$comment = $xaction->getApplicationTransactionCommentObject();
|
||||
|
||||
// Not every transaction type has comments, so we may be able to
|
||||
// implement this constraint trivially.
|
||||
|
||||
if (!$comment) {
|
||||
if ($this->withComments) {
|
||||
throw new PhabricatorEmptyQueryException();
|
||||
} else {
|
||||
// If we're querying for transactions with no comments and the
|
||||
// transaction type does not support comments, we don't need to
|
||||
// do anything.
|
||||
}
|
||||
} else {
|
||||
if ($this->withComments) {
|
||||
$joins[] = qsprintf(
|
||||
$conn,
|
||||
|
@ -215,6 +227,7 @@ abstract class PhabricatorApplicationTransactionQuery
|
|||
$comment->getTableName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $joins;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue