Page MenuHomePhabricator

D20077.diff
No OneTemporary

D20077.diff

diff --git a/src/applications/diffusion/ssh/DiffusionSSHWorkflow.php b/src/applications/diffusion/ssh/DiffusionSSHWorkflow.php
--- a/src/applications/diffusion/ssh/DiffusionSSHWorkflow.php
+++ b/src/applications/diffusion/ssh/DiffusionSSHWorkflow.php
@@ -222,8 +222,10 @@
pht('No repository "%s" exists!', $identifier));
}
+ $is_cluster = $this->getIsClusterRequest();
+
$protocol = PhabricatorRepositoryURI::BUILTIN_PROTOCOL_SSH;
- if (!$repository->canServeProtocol($protocol, false)) {
+ if (!$repository->canServeProtocol($protocol, false, $is_cluster)) {
throw new Exception(
pht(
'This repository ("%s") is not available over SSH.',
diff --git a/src/applications/repository/storage/PhabricatorRepository.php b/src/applications/repository/storage/PhabricatorRepository.php
--- a/src/applications/repository/storage/PhabricatorRepository.php
+++ b/src/applications/repository/storage/PhabricatorRepository.php
@@ -1506,9 +1506,18 @@
return $this->setDetail('hosting-enabled', $enabled);
}
- public function canServeProtocol($protocol, $write) {
- if (!$this->isTracked()) {
- return false;
+ public function canServeProtocol(
+ $protocol,
+ $write,
+ $is_intracluster = false) {
+
+ // See T13192. If a repository is inactive, don't serve it to users. We
+ // still synchronize it within the cluster and serve it to other repository
+ // nodes.
+ if (!$is_intracluster) {
+ if (!$this->isTracked()) {
+ return false;
+ }
}
$clone_uris = $this->getCloneURIs();

File Metadata

Mime Type
text/plain
Expires
Thu, May 9, 8:15 PM (3 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6276543
Default Alt Text
D20077.diff (1 KB)

Event Timeline