Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F3400846
D25957.1744561864.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Advanced/Developer...
View Handle
View Hovercard
Size
24 KB
Referenced Files
None
Subscribers
None
D25957.1744561864.diff
View Options
diff --git a/resources/sql/autopatches/20210215.changeset.02.phid-populate.php b/resources/sql/autopatches/20210215.changeset.02.phid-populate.php
--- a/resources/sql/autopatches/20210215.changeset.02.phid-populate.php
+++ b/resources/sql/autopatches/20210215.changeset.02.phid-populate.php
@@ -19,10 +19,11 @@
changeset_phid VARBINARY(64) NOT NULL)',
$temporary_table);
} catch (AphrontAccessDeniedQueryException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Failed to "CREATE TEMPORARY TABLE". You may need to "GRANT" the '.
'current MySQL user this permission.'),
+ 0,
$ex);
}
diff --git a/resources/sql/autopatches/20210802.legalpad_document_signature.02.phid-populate.php b/resources/sql/autopatches/20210802.legalpad_document_signature.02.phid-populate.php
--- a/resources/sql/autopatches/20210802.legalpad_document_signature.02.phid-populate.php
+++ b/resources/sql/autopatches/20210802.legalpad_document_signature.02.phid-populate.php
@@ -19,10 +19,11 @@
docsig_phid VARBINARY(64) NOT NULL)',
$temporary_table);
} catch (AphrontAccessDeniedQueryException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Failed to "CREATE TEMPORARY TABLE". You may need to "GRANT" the '.
'current MySQL user this permission.'),
+ 0,
$ex);
}
diff --git a/src/applications/auth/adapter/PhutilAmazonAuthAdapter.php b/src/applications/auth/adapter/PhutilAmazonAuthAdapter.php
--- a/src/applications/auth/adapter/PhutilAmazonAuthAdapter.php
+++ b/src/applications/auth/adapter/PhutilAmazonAuthAdapter.php
@@ -71,8 +71,9 @@
try {
return phutil_json_decode($body);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Expected valid JSON response from Amazon account data request.'),
+ 0,
$ex);
}
}
diff --git a/src/applications/auth/adapter/PhutilDisqusAuthAdapter.php b/src/applications/auth/adapter/PhutilDisqusAuthAdapter.php
--- a/src/applications/auth/adapter/PhutilDisqusAuthAdapter.php
+++ b/src/applications/auth/adapter/PhutilDisqusAuthAdapter.php
@@ -75,8 +75,9 @@
$data = phutil_json_decode($body);
return $data['response'];
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Expected valid JSON response from Disqus account data request.'),
+ 0,
$ex);
}
}
diff --git a/src/applications/auth/adapter/PhutilFacebookAuthAdapter.php b/src/applications/auth/adapter/PhutilFacebookAuthAdapter.php
--- a/src/applications/auth/adapter/PhutilFacebookAuthAdapter.php
+++ b/src/applications/auth/adapter/PhutilFacebookAuthAdapter.php
@@ -80,8 +80,9 @@
try {
$data = phutil_json_decode($body);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Expected valid JSON response from Facebook account data request.'),
+ 0,
$ex);
}
diff --git a/src/applications/auth/adapter/PhutilGitHubAuthAdapter.php b/src/applications/auth/adapter/PhutilGitHubAuthAdapter.php
--- a/src/applications/auth/adapter/PhutilGitHubAuthAdapter.php
+++ b/src/applications/auth/adapter/PhutilGitHubAuthAdapter.php
@@ -68,8 +68,9 @@
try {
return phutil_json_decode($body);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Expected valid JSON response from GitHub account data request.'),
+ 0,
$ex);
}
}
diff --git a/src/applications/auth/adapter/PhutilGoogleAuthAdapter.php b/src/applications/auth/adapter/PhutilGoogleAuthAdapter.php
--- a/src/applications/auth/adapter/PhutilGoogleAuthAdapter.php
+++ b/src/applications/auth/adapter/PhutilGoogleAuthAdapter.php
@@ -109,8 +109,9 @@
try {
$result = phutil_json_decode($body);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Expected valid JSON response from Google account data request.'),
+ 0,
$ex);
}
diff --git a/src/applications/auth/future/PhabricatorDuoFuture.php b/src/applications/auth/future/PhabricatorDuoFuture.php
--- a/src/applications/auth/future/PhabricatorDuoFuture.php
+++ b/src/applications/auth/future/PhabricatorDuoFuture.php
@@ -143,8 +143,9 @@
try {
$data = phutil_json_decode($body);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Expected JSON response from Duo.'),
+ 0,
$ex);
}
diff --git a/src/applications/auth/sshkey/PhabricatorAuthSSHPublicKey.php b/src/applications/auth/sshkey/PhabricatorAuthSSHPublicKey.php
--- a/src/applications/auth/sshkey/PhabricatorAuthSSHPublicKey.php
+++ b/src/applications/auth/sshkey/PhabricatorAuthSSHPublicKey.php
@@ -130,13 +130,14 @@
$tmp);
} catch (CommandException $ex) {
unset($tmp);
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Failed to convert public key into PKCS8 format. If you are '.
'developing on OSX, you may be able to use `%s` '.
'to work around this issue. %s',
'bin/auth cache-pkcs8',
$ex->getMessage()),
+ 0,
$ex);
}
unset($tmp);
diff --git a/src/applications/conduit/controller/PhabricatorConduitAPIController.php b/src/applications/conduit/controller/PhabricatorConduitAPIController.php
--- a/src/applications/conduit/controller/PhabricatorConduitAPIController.php
+++ b/src/applications/conduit/controller/PhabricatorConduitAPIController.php
@@ -689,10 +689,11 @@
try {
$params = phutil_json_decode($params_json);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
"Invalid parameter information was passed to method '%s'.",
$method),
+ 0,
$ex);
}
diff --git a/src/applications/conduit/ssh/ConduitSSHWorkflow.php b/src/applications/conduit/ssh/ConduitSSHWorkflow.php
--- a/src/applications/conduit/ssh/ConduitSSHWorkflow.php
+++ b/src/applications/conduit/ssh/ConduitSSHWorkflow.php
@@ -30,8 +30,9 @@
try {
$raw_params = phutil_json_decode($json);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Invalid JSON input.'),
+ 0,
$ex);
}
diff --git a/src/applications/differential/__tests__/DifferentialParseRenderTestCase.php b/src/applications/differential/__tests__/DifferentialParseRenderTestCase.php
--- a/src/applications/differential/__tests__/DifferentialParseRenderTestCase.php
+++ b/src/applications/differential/__tests__/DifferentialParseRenderTestCase.php
@@ -24,8 +24,9 @@
try {
$options = phutil_json_decode($options);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Invalid options file: %s.', $opt_file),
+ 0,
$ex);
}
} else {
diff --git a/src/applications/diffusion/protocol/DiffusionRepositoryClusterEngine.php b/src/applications/diffusion/protocol/DiffusionRepositoryClusterEngine.php
--- a/src/applications/diffusion/protocol/DiffusionRepositoryClusterEngine.php
+++ b/src/applications/diffusion/protocol/DiffusionRepositoryClusterEngine.php
@@ -189,12 +189,13 @@
'Acquired read lock immediately.'));
}
} catch (PhutilLockException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Failed to acquire read lock after waiting %s second(s). You '.
'may be able to retry later. (%s)',
new PhutilNumber($lock_wait),
$ex->getHint()),
+ 0,
$ex);
}
@@ -379,12 +380,13 @@
'Acquired write lock immediately.'));
}
} catch (PhutilLockException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Failed to acquire write lock after waiting %s second(s). You '.
'may be able to retry later. (%s)',
new PhutilNumber($lock_wait),
$ex->getHint()),
+ 0,
$ex);
}
diff --git a/src/applications/doorkeeper/bridge/DoorkeeperBridge.php b/src/applications/doorkeeper/bridge/DoorkeeperBridge.php
--- a/src/applications/doorkeeper/bridge/DoorkeeperBridge.php
+++ b/src/applications/doorkeeper/bridge/DoorkeeperBridge.php
@@ -75,8 +75,9 @@
->withObjectKeys(array($ref->getObjectKey()))
->executeOne();
if (!$obj) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Failed to load external object after collision.'),
+ 0,
$ex);
}
diff --git a/src/applications/drydock/worker/DrydockLeaseUpdateWorker.php b/src/applications/drydock/worker/DrydockLeaseUpdateWorker.php
--- a/src/applications/drydock/worker/DrydockLeaseUpdateWorker.php
+++ b/src/applications/drydock/worker/DrydockLeaseUpdateWorker.php
@@ -1066,10 +1066,11 @@
case DrydockLeaseStatus::STATUS_BROKEN:
case DrydockLeaseStatus::STATUS_RELEASED:
case DrydockLeaseStatus::STATUS_DESTROYED:
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Unexpected failure while destroying lease ("%s").',
$lease->getPHID()),
+ 0,
$ex);
}
diff --git a/src/applications/drydock/worker/DrydockResourceUpdateWorker.php b/src/applications/drydock/worker/DrydockResourceUpdateWorker.php
--- a/src/applications/drydock/worker/DrydockResourceUpdateWorker.php
+++ b/src/applications/drydock/worker/DrydockResourceUpdateWorker.php
@@ -266,10 +266,11 @@
case DrydockResourceStatus::STATUS_DESTROYED:
// If the resource was already broken, just throw a normal exception.
// This will retry the task eventually.
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Unexpected failure while destroying resource ("%s").',
$resource->getPHID()),
+ 0,
$ex);
}
diff --git a/src/applications/drydock/worker/DrydockWorker.php b/src/applications/drydock/worker/DrydockWorker.php
--- a/src/applications/drydock/worker/DrydockWorker.php
+++ b/src/applications/drydock/worker/DrydockWorker.php
@@ -151,8 +151,8 @@
}
}
- if ($ex instanceof PhutilProxyException) {
- return $this->isTemporaryException($ex->getPreviousException());
+ if ($ex->getPrevious()) {
+ return $this->isTemporaryException($ex->getPrevious());
}
return false;
diff --git a/src/applications/files/storage/PhabricatorFile.php b/src/applications/files/storage/PhabricatorFile.php
--- a/src/applications/files/storage/PhabricatorFile.php
+++ b/src/applications/files/storage/PhabricatorFile.php
@@ -683,7 +683,7 @@
}
} catch (Exception $ex) {
if ($redirects) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Failed to fetch remote URI "%s" after following %s redirect(s) '.
'(%s): %s',
@@ -691,6 +691,7 @@
phutil_count($redirects),
implode(' > ', array_keys($redirects)),
$ex->getMessage()),
+ 0,
$ex);
} else {
throw $ex;
diff --git a/src/applications/herald/controller/HeraldRuleController.php b/src/applications/herald/controller/HeraldRuleController.php
--- a/src/applications/herald/controller/HeraldRuleController.php
+++ b/src/applications/herald/controller/HeraldRuleController.php
@@ -286,8 +286,9 @@
try {
$data = phutil_json_decode($request->getStr('rule'));
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Failed to decode rule data.'),
+ 0,
$ex);
}
diff --git a/src/applications/metamta/adapter/PhabricatorMailMailgunAdapter.php b/src/applications/metamta/adapter/PhabricatorMailMailgunAdapter.php
--- a/src/applications/metamta/adapter/PhabricatorMailMailgunAdapter.php
+++ b/src/applications/metamta/adapter/PhabricatorMailMailgunAdapter.php
@@ -119,8 +119,9 @@
try {
$response = phutil_json_decode($body);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Failed to JSON decode response.'),
+ 0,
$ex);
}
diff --git a/src/applications/metamta/future/PhabricatorTwilioFuture.php b/src/applications/metamta/future/PhabricatorTwilioFuture.php
--- a/src/applications/metamta/future/PhabricatorTwilioFuture.php
+++ b/src/applications/metamta/future/PhabricatorTwilioFuture.php
@@ -89,8 +89,9 @@
try {
$data = phutil_json_decode($body);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Expected JSON response from Twilio.'),
+ 0,
$ex);
}
diff --git a/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php b/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php
--- a/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php
+++ b/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php
@@ -95,10 +95,11 @@
$input = phutil_json_decode($input);
$expect = phutil_json_decode($expect);
} catch (Exception $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Exception while decoding test data for test "%s".',
$file),
+ 0,
$ex);
}
diff --git a/src/applications/policy/controller/PhabricatorPolicyEditController.php b/src/applications/policy/controller/PhabricatorPolicyEditController.php
--- a/src/applications/policy/controller/PhabricatorPolicyEditController.php
+++ b/src/applications/policy/controller/PhabricatorPolicyEditController.php
@@ -91,8 +91,9 @@
try {
$data = phutil_json_decode($data);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Failed to JSON decode rule data!'),
+ 0,
$ex);
}
diff --git a/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php b/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php
--- a/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php
+++ b/src/applications/repository/daemon/PhabricatorRepositoryPullLocalDaemon.php
@@ -495,10 +495,11 @@
try {
list($stdout, $stderr) = $future->resolvex();
} catch (Exception $ex) {
- $proxy = new PhutilProxyException(
+ $proxy = new Exception(
pht(
'Error while updating the "%s" repository.',
$display_name),
+ 0,
$ex);
phlog($proxy);
diff --git a/src/applications/repository/management/PhabricatorRepositoryManagementUpdateWorkflow.php b/src/applications/repository/management/PhabricatorRepositoryManagementUpdateWorkflow.php
--- a/src/applications/repository/management/PhabricatorRepositoryManagementUpdateWorkflow.php
+++ b/src/applications/repository/management/PhabricatorRepositoryManagementUpdateWorkflow.php
@@ -126,10 +126,11 @@
} catch (Exception $ex) {
// TODO: We should report these into the UI properly, but for now just
// complain. These errors are much less severe than pull errors.
- $proxy = new PhutilProxyException(
+ $proxy = new Exception(
pht(
'Error while pushing "%s" repository to mirrors.',
$repository->getMonogram()),
+ 0,
$ex);
phlog($proxy);
}
diff --git a/src/applications/search/fulltextstorage/PhabricatorElasticFulltextStorageEngine.php b/src/applications/search/fulltextstorage/PhabricatorElasticFulltextStorageEngine.php
--- a/src/applications/search/fulltextstorage/PhabricatorElasticFulltextStorageEngine.php
+++ b/src/applications/search/fulltextstorage/PhabricatorElasticFulltextStorageEngine.php
@@ -533,8 +533,9 @@
return $data;
} catch (PhutilJSONParserException $ex) {
$host->didHealthCheck(false);
- throw new PhutilProxyException(
+ throw new Exception(
pht('Elasticsearch server returned invalid JSON!'),
+ 0,
$ex);
}
diff --git a/src/applications/transactions/editengine/PhabricatorEditEngine.php b/src/applications/transactions/editengine/PhabricatorEditEngine.php
--- a/src/applications/transactions/editengine/PhabricatorEditEngine.php
+++ b/src/applications/transactions/editengine/PhabricatorEditEngine.php
@@ -2295,11 +2295,12 @@
$value = $type->getTransactionValueFromConduit($value);
$xaction['value'] = $value;
} catch (Exception $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Exception when processing transaction of type "%s": %s',
$xaction['type'],
$ex->getMessage()),
+ 0,
$ex);
}
diff --git a/src/applications/xhprof/controller/PhabricatorXHProfProfileController.php b/src/applications/xhprof/controller/PhabricatorXHProfProfileController.php
--- a/src/applications/xhprof/controller/PhabricatorXHProfProfileController.php
+++ b/src/applications/xhprof/controller/PhabricatorXHProfProfileController.php
@@ -22,8 +22,9 @@
try {
$data = phutil_json_decode($data);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht('Failed to unserialize XHProf profile!'),
+ 0,
$ex);
}
diff --git a/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php b/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php
--- a/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php
+++ b/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php
@@ -25,19 +25,21 @@
if ($ex instanceof PhabricatorWorkerPermanentFailureException) {
// NOTE: Make sure these reach the daemon log, even when not
// running in verbose mode. See T12803 for discussion.
- $log_exception = new PhutilProxyException(
+ $log_exception = new Exception(
pht(
'Task "%s" encountered a permanent failure and was '.
'cancelled.',
$id),
+ 0,
$ex);
phlog($log_exception);
} else if ($ex instanceof PhabricatorWorkerYieldException) {
$this->log(pht('Task %s yielded.', $id));
} else {
$this->log(pht('Task %d failed!', $id));
- throw new PhutilProxyException(
+ throw new Exception(
pht('Error while executing Task ID %d.', $id),
+ 0,
$ex);
}
} else {
diff --git a/src/infrastructure/daemon/workers/PhabricatorTriggerDaemon.php b/src/infrastructure/daemon/workers/PhabricatorTriggerDaemon.php
--- a/src/infrastructure/daemon/workers/PhabricatorTriggerDaemon.php
+++ b/src/infrastructure/daemon/workers/PhabricatorTriggerDaemon.php
@@ -78,12 +78,13 @@
try {
$lock->lock(5);
} catch (PhutilLockException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Another process is holding the trigger lock. Usually, this '.
'means another copy of the trigger daemon is running elsewhere. '.
'Multiple processes are not permitted to update triggers '.
'simultaneously.'),
+ 0,
$ex);
}
diff --git a/src/infrastructure/daemon/workers/PhabricatorWorker.php b/src/infrastructure/daemon/workers/PhabricatorWorker.php
--- a/src/infrastructure/daemon/workers/PhabricatorWorker.php
+++ b/src/infrastructure/daemon/workers/PhabricatorWorker.php
@@ -169,10 +169,11 @@
$task_result = PhabricatorWorkerArchiveTask::RESULT_SUCCESS;
break;
} catch (PhabricatorWorkerPermanentFailureException $ex) {
- $proxy = new PhutilProxyException(
+ $proxy = new Exception(
pht(
'In-process task ("%s") failed permanently.',
$task_class),
+ 0,
$ex);
phlog($proxy);
diff --git a/src/infrastructure/env/PhabricatorConfigLocalSource.php b/src/infrastructure/env/PhabricatorConfigLocalSource.php
--- a/src/infrastructure/env/PhabricatorConfigLocalSource.php
+++ b/src/infrastructure/env/PhabricatorConfigLocalSource.php
@@ -29,23 +29,25 @@
try {
$data = Filesystem::readFile($path);
} catch (FilesystemException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Configuration file "%s" exists, but could not be read.',
$path),
+ 0,
$ex);
}
try {
$result = phutil_json_decode($data);
} catch (PhutilJSONParserException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Configuration file "%s" exists and is readable, but the content '.
'is not valid JSON. You may have edited this file manually and '.
'introduced a syntax error by mistake. Correct the file syntax '.
'to continue.',
$path),
+ 0,
$ex);
}
diff --git a/src/infrastructure/storage/lisk/LiskDAO.php b/src/infrastructure/storage/lisk/LiskDAO.php
--- a/src/infrastructure/storage/lisk/LiskDAO.php
+++ b/src/infrastructure/storage/lisk/LiskDAO.php
@@ -1095,12 +1095,13 @@
$data[$key] = qsprintf($conn, '%ns', $value);
}
} catch (AphrontParameterQueryException $parameter_exception) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
"Unable to insert or update object of class %s, field '%s' ".
"has a non-scalar value.",
get_class($this),
$key),
+ 0,
$parameter_exception);
}
}
diff --git a/src/infrastructure/storage/lisk/PhabricatorLiskDAO.php b/src/infrastructure/storage/lisk/PhabricatorLiskDAO.php
--- a/src/infrastructure/storage/lisk/PhabricatorLiskDAO.php
+++ b/src/infrastructure/storage/lisk/PhabricatorLiskDAO.php
@@ -114,11 +114,12 @@
// If we ended up here as the result of a failover, log the
// exception. This is seriously bad news even if we are able
// to recover from it.
- $proxy_exception = new PhutilProxyException(
+ $proxy_exception = new Exception(
pht(
'Failed to connect to master database ("%s"), failing over '.
'into read-only mode.',
$database),
+ 0,
$master_exception);
phlog($proxy_exception);
}
diff --git a/src/infrastructure/storage/management/PhabricatorStorageManagementAPI.php b/src/infrastructure/storage/management/PhabricatorStorageManagementAPI.php
--- a/src/infrastructure/storage/management/PhabricatorStorageManagementAPI.php
+++ b/src/infrastructure/storage/management/PhabricatorStorageManagementAPI.php
@@ -147,7 +147,7 @@
self::TABLE_STATUS);
return ipull($applied, 'patch');
} catch (AphrontAccessDeniedQueryException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Failed while trying to read schema status: the database "%s" '.
'exists, but the current user ("%s") does not have permission to '.
@@ -155,6 +155,7 @@
'different user.',
$this->getDatabaseName('meta_data'),
$this->getUser()),
+ 0,
$ex);
} catch (AphrontQueryException $ex) {
return null;
@@ -284,7 +285,7 @@
// avoiding it since we're executing raw text files full of SQL.
queryfx($conn, '%Z', $query);
} catch (AphrontAccessDeniedQueryException $ex) {
- throw new PhutilProxyException(
+ throw new Exception(
pht(
'Unable to access a required database or table. This almost '.
'always means that the user you are connecting with ("%s") does '.
@@ -292,6 +293,7 @@
'use `bin/storage databases` to get a list of all databases '.
'permission is required on.',
$this->getUser()),
+ 0,
$ex);
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Apr 13, 16:31 (2 d, 12 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1279742
Default Alt Text
D25957.1744561864.diff (24 KB)
Attached To
Mode
D25957: Replace usages of PhutilProxyException
Attached
Detach File
Event Timeline
Log In to Comment