mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-29 18:22:41 +01:00
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
5c73c169fd
commit
cd14194a32
1 changed files with 22 additions and 9 deletions
|
@ -203,6 +203,18 @@ abstract class PhabricatorApplicationTransactionQuery
|
||||||
$xaction = $this->getTemplateApplicationTransaction();
|
$xaction = $this->getTemplateApplicationTransaction();
|
||||||
$comment = $xaction->getApplicationTransactionCommentObject();
|
$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) {
|
if ($this->withComments) {
|
||||||
$joins[] = qsprintf(
|
$joins[] = qsprintf(
|
||||||
$conn,
|
$conn,
|
||||||
|
@ -215,6 +227,7 @@ abstract class PhabricatorApplicationTransactionQuery
|
||||||
$comment->getTableName());
|
$comment->getTableName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $joins;
|
return $joins;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue