From 37a4edbaff59ee9de1d4ad04cc420636da8bc974 Mon Sep 17 00:00:00 2001 From: paul cannon Date: Wed, 10 Aug 2022 10:35:58 -0500 Subject: [PATCH] all: reformat comments as required by gofmt 1.19 I don't know why the go people thought this was a good idea, because this automatic reformatting is bound to do the wrong thing sometimes, which is very annoying. But I don't see a way to turn it off, so best to get this change out of the way. Change-Id: Ib5dbbca6a6f6fc944d76c9b511b8c904f796e4f3 --- private/cui/screen.go | 5 +- private/testmonkit/run.go | 6 +- private/testplanet/doc.go | 25 ++-- satellite/audit/collector_test.go | 6 +- satellite/audit/disqualification_test.go | 2 +- satellite/compensation/db.go | 7 +- satellite/metabase/get.go | 4 +- satellite/oidc/oauth_generates.go | 12 +- satellite/payments/monetary/amount.go | 2 +- satellite/repair/priority.go | 6 +- satellite/repair/repair_test.go | 152 ++++++++++----------- satellite/reputation/calculations.go | 12 +- satellite/satellitedb/nodeselection.go | 9 +- satellite/satellitedb/projectaccounting.go | 8 +- satellite/satellitedb/reputations.go | 8 +- storagenode/trust/source.go | 8 +- 16 files changed, 134 insertions(+), 138 deletions(-) diff --git a/private/cui/screen.go b/private/cui/screen.go index 060e875db..5b66c3217 100644 --- a/private/cui/screen.go +++ b/private/cui/screen.go @@ -18,8 +18,9 @@ var initialized = false const padding = 2 // Point is a 2D coordinate in console. -// X is the column -// Y is the row +// +// X is the column +// Y is the row type Point struct{ X, Y int } // Rect is a 2D rectangle in console, excluding Max edge. diff --git a/private/testmonkit/run.go b/private/testmonkit/run.go index 84c5c8657..fd7d37b36 100644 --- a/private/testmonkit/run.go +++ b/private/testmonkit/run.go @@ -5,13 +5,13 @@ // // It allows to set an environment variable to get a trace per test. // -// STORJ_TEST_MONKIT=svg -// STORJ_TEST_MONKIT=json +// STORJ_TEST_MONKIT=svg +// STORJ_TEST_MONKIT=json // // By default, it saves the output the same folder as the test. However, if you wish // to specify a separate folder, you can specify an absolute directory: // -// STORJ_TEST_MONKIT=json,svg,dir=/home/user/debug/trace +// STORJ_TEST_MONKIT=json,svg,dir=/home/user/debug/trace // // Note, due to how go tests work, it's not possible to specify a relative directory. package testmonkit diff --git a/private/testplanet/doc.go b/private/testplanet/doc.go index 9403e635b..65efbffa0 100644 --- a/private/testplanet/doc.go +++ b/private/testplanet/doc.go @@ -6,38 +6,35 @@ // testplanet provides access to most of the internals of satellites, // storagenodes and uplinks. // -// -// Database +// # Database // // It does require setting two variables for the databases: // -// STORJ_TEST_POSTGRES=postgres://storj:storj-pass@test-postgres/teststorj?sslmode=disable -// STORJ_TEST_COCKROACH=cockroach://root@localhost:26257/master?sslmode=disable +// STORJ_TEST_POSTGRES=postgres://storj:storj-pass@test-postgres/teststorj?sslmode=disable +// STORJ_TEST_COCKROACH=cockroach://root@localhost:26257/master?sslmode=disable // // When you wish to entirely omit either of them from the test output, it's possible to use: // -// STORJ_TEST_POSTGRES=omit -// STORJ_TEST_COCKROACH=omit +// STORJ_TEST_POSTGRES=omit +// STORJ_TEST_COCKROACH=omit // -// -// Host +// # Host // // It's possible to change the listing host with: // -// STORJ_TEST_HOST=127.0.0.2;127.0.0.3 +// STORJ_TEST_HOST=127.0.0.2;127.0.0.3 // -// -// Debugging +// # Debugging // // For debugging, it's possible to set STORJ_TEST_MONKIT to get a trace per test. // -// STORJ_TEST_MONKIT=svg -// STORJ_TEST_MONKIT=json +// STORJ_TEST_MONKIT=svg +// STORJ_TEST_MONKIT=json // // By default, it saves the output the same folder as the test. However, if you wish // to specify a separate folder, you can specify an absolute directory: // -// STORJ_TEST_MONKIT=svg,dir=/home/user/debug/trace +// STORJ_TEST_MONKIT=svg,dir=/home/user/debug/trace // // Note, due to how go tests work, it's not possible to specify a relative directory. package testplanet diff --git a/satellite/audit/collector_test.go b/satellite/audit/collector_test.go index 35be3ff84..232f586c9 100644 --- a/satellite/audit/collector_test.go +++ b/satellite/audit/collector_test.go @@ -26,9 +26,9 @@ import ( // - create a audit observer and call metaloop.Join(auditObs) // // Then for every node in testplanet: -// - expect that there is a reservoir for that node on the audit observer -// - that the reservoir size is <= 2 (the maxReservoirSize) -// - that every item in the reservoir is unique +// - expect that there is a reservoir for that node on the audit observer +// - that the reservoir size is <= 2 (the maxReservoirSize) +// - that every item in the reservoir is unique func TestAuditCollector(t *testing.T) { testplanet.Run(t, testplanet.Config{ SatelliteCount: 1, StorageNodeCount: 5, UplinkCount: 1, diff --git a/satellite/audit/disqualification_test.go b/satellite/audit/disqualification_test.go index b98a9827c..cead45cfb 100644 --- a/satellite/audit/disqualification_test.go +++ b/satellite/audit/disqualification_test.go @@ -27,7 +27,7 @@ import ( // TestDisqualificationTooManyFailedAudits does the following: // - Create a failed audit report for a storagenode // - Record the audit report several times and check that the node isn't -// disqualified until the audit reputation reaches the cut-off value. +// disqualified until the audit reputation reaches the cut-off value. func TestDisqualificationTooManyFailedAudits(t *testing.T) { var ( auditDQCutOff = 0.4 diff --git a/satellite/compensation/db.go b/satellite/compensation/db.go index 076193fed..a00188ef1 100644 --- a/satellite/compensation/db.go +++ b/satellite/compensation/db.go @@ -13,9 +13,10 @@ import ( // TotalAmounts holds the amounts held and disposed. // // Invariants: -// TotalHeld >= TotalDisposed -// TotalPaid >= TotalDisposed -// TotalPaid >= TotalDistributed (we may distribute less due to minimum payout threshold) +// +// TotalHeld >= TotalDisposed +// TotalPaid >= TotalDisposed +// TotalPaid >= TotalDistributed (we may distribute less due to minimum payout threshold) type TotalAmounts struct { TotalHeld currency.MicroUnit // portion from owed that was held back TotalDisposed currency.MicroUnit // portion from held back that went into paid diff --git a/satellite/metabase/get.go b/satellite/metabase/get.go index f758df186..691f71c65 100644 --- a/satellite/metabase/get.go +++ b/satellite/metabase/get.go @@ -25,8 +25,8 @@ type Object RawObject // IsMigrated returns whether the object comes from PointerDB. // Pointer objects are special that they are missing some information. // -// * TotalPlainSize = 0 and FixedSegmentSize = 0. -// * Segment.PlainOffset = 0, Segment.PlainSize = 0 +// - TotalPlainSize = 0 and FixedSegmentSize = 0. +// - Segment.PlainOffset = 0, Segment.PlainSize = 0 func (obj *Object) IsMigrated() bool { return obj.TotalPlainSize <= 0 } diff --git a/satellite/oidc/oauth_generates.go b/satellite/oidc/oauth_generates.go index 4c07be368..067a67095 100644 --- a/satellite/oidc/oauth_generates.go +++ b/satellite/oidc/oauth_generates.go @@ -88,12 +88,12 @@ func (a *MacaroonAccessGenerate) apiKeyForProject(ctx context.Context, data *oau // Token issues access and refresh tokens that are backed by storj's Macaroons. This expects several scopes to be set on // the request. The following describes the available scopes supported by the macaroon style of access token. // -// project: - required, scopes operations to a single project (one) -// bucket: - optional, scopes operations to one or many buckets (repeatable) -// object:list - optional, allows listing object data -// object:read - optional, allows reading object data -// object:write - optional, allows writing object data -// object:delete - optional, allows deleting object data +// project: - required, scopes operations to a single project (one) +// bucket: - optional, scopes operations to one or many buckets (repeatable) +// object:list - optional, allows listing object data +// object:read - optional, allows reading object data +// object:write - optional, allows writing object data +// object:delete - optional, allows deleting object data // // In OAuth2.0, access_tokens are short-lived tokens that authorize operations to be performed on behalf of an end user. // refresh_tokens are longer lived tokens that allow you to obtain new authorization tokens. diff --git a/satellite/payments/monetary/amount.go b/satellite/payments/monetary/amount.go index ffc069c45..4a4e392ac 100644 --- a/satellite/payments/monetary/amount.go +++ b/satellite/payments/monetary/amount.go @@ -130,7 +130,7 @@ func AmountFromBaseUnits(units int64, currency *Currency) Amount { // // Example: // -// AmountFromDecimal(decimal.NewFromFloat(3.50), USDollars) == Amount{baseUnits: 350, currency: USDollars} +// AmountFromDecimal(decimal.NewFromFloat(3.50), USDollars) == Amount{baseUnits: 350, currency: USDollars} func AmountFromDecimal(d decimal.Decimal, currency *Currency) Amount { return AmountFromBaseUnits(d.Shift(currency.decimalPlaces).Round(0).IntPart(), currency) } diff --git a/satellite/repair/priority.go b/satellite/repair/priority.go index d7236af6a..8b389b0aa 100644 --- a/satellite/repair/priority.go +++ b/satellite/repair/priority.go @@ -18,9 +18,9 @@ import "math" // First, we calculate the expected number of iterations for a segment to // survive if we were to lose exactly one node every iteration: // -// r = numHealthy - minPieces + 1 -// p = (totalNodes - numHealthy) / totalNodes -// X ~ NB(r, p) +// r = numHealthy - minPieces + 1 +// p = (totalNodes - numHealthy) / totalNodes +// X ~ NB(r, p) // // Then we take the mean of that distribution to use as our expected value, // which is pr/(1-p). diff --git a/satellite/repair/repair_test.go b/satellite/repair/repair_test.go index c6ad8dd93..6a09280e9 100644 --- a/satellite/repair/repair_test.go +++ b/satellite/repair/repair_test.go @@ -42,13 +42,13 @@ import ( ) // TestDataRepair does the following: -// - Uploads test data -// - Kills some nodes and disqualifies 1 -// - Triggers data repair, which repairs the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold -// - Shuts down several nodes, but keeping up a number equal to the minim -// threshold -// - Downloads the data from those left nodes and check that it's the same than the uploaded one. +// - Uploads test data +// - Kills some nodes and disqualifies 1 +// - Triggers data repair, which repairs the data from the remaining nodes to +// the numbers of nodes determined by the upload repair max threshold +// - Shuts down several nodes, but keeping up a number equal to the minim +// threshold +// - Downloads the data from those left nodes and check that it's the same than the uploaded one. func TestDataRepairInMemory(t *testing.T) { testDataRepair(t, true) } @@ -204,14 +204,14 @@ func testDataRepair(t *testing.T, inMemoryRepair bool) { } // TestDataRepairPendingObject does the following: -// - Starts new multipart upload with one part of test data. Does not complete the multipart upload. -// - Kills some nodes and disqualifies 1 -// - Triggers data repair, which repairs the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold -// - Shuts down several nodes, but keeping up a number equal to the minim -// threshold -// - Completes the multipart upload. -// - Downloads the data from those left nodes and check that it's the same than the uploaded one. +// - Starts new multipart upload with one part of test data. Does not complete the multipart upload. +// - Kills some nodes and disqualifies 1 +// - Triggers data repair, which repairs the data from the remaining nodes to +// the numbers of nodes determined by the upload repair max threshold +// - Shuts down several nodes, but keeping up a number equal to the minim +// threshold +// - Completes the multipart upload. +// - Downloads the data from those left nodes and check that it's the same than the uploaded one. func TestDataRepairPendingObject(t *testing.T) { const ( RepairMaxExcessRateOptimalThreshold = 0.05 @@ -351,12 +351,12 @@ func TestDataRepairPendingObject(t *testing.T) { } // TestMinRequiredDataRepair does the following: -// - Uploads test data -// - Kills all but the minimum number of nodes carrying the uploaded segment -// - Triggers data repair, which attempts to repair the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold -// - Expects that the repair succeed. -// Reputation info to be updated for all remaining nodes. +// - Uploads test data +// - Kills all but the minimum number of nodes carrying the uploaded segment +// - Triggers data repair, which attempts to repair the data from the remaining nodes to +// the numbers of nodes determined by the upload repair max threshold +// - Expects that the repair succeed. +// Reputation info to be updated for all remaining nodes. func TestMinRequiredDataRepair(t *testing.T) { const RepairMaxExcessRateOptimalThreshold = 0.05 @@ -453,14 +453,14 @@ func TestMinRequiredDataRepair(t *testing.T) { } // TestFailedDataRepair does the following: -// - Uploads test data -// - Kills some nodes carrying the uploaded segment but keep it above minimum requirement -// - On one of the remaining nodes, return unknown error during downloading of the piece -// - Stop one of the remaining nodes, for it to be offline during repair -// - Triggers data repair, which attempts to repair the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold -// - Expects that the repair failed and the pointer was not updated. -// Reputation info to be updated for all remaining nodes. +// - Uploads test data +// - Kills some nodes carrying the uploaded segment but keep it above minimum requirement +// - On one of the remaining nodes, return unknown error during downloading of the piece +// - Stop one of the remaining nodes, for it to be offline during repair +// - Triggers data repair, which attempts to repair the data from the remaining nodes to +// the numbers of nodes determined by the upload repair max threshold +// - Expects that the repair failed and the pointer was not updated. +// Reputation info to be updated for all remaining nodes. func TestFailedDataRepair(t *testing.T) { const RepairMaxExcessRateOptimalThreshold = 0.05 @@ -574,13 +574,13 @@ func TestFailedDataRepair(t *testing.T) { } // TestOfflineNodeDataRepair does the following: -// - Uploads test data -// - Kills some nodes carrying the uploaded segment but keep it above minimum requirement -// - Stop one of the remaining nodes, for it to be offline during repair -// - Triggers data repair, which attempts to repair the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold -// - Expects that the repair succeed and the pointer should contain the offline piece. -// Reputation info to be updated for all remaining nodes. +// - Uploads test data +// - Kills some nodes carrying the uploaded segment but keep it above minimum requirement +// - Stop one of the remaining nodes, for it to be offline during repair +// - Triggers data repair, which attempts to repair the data from the remaining nodes to +// the numbers of nodes determined by the upload repair max threshold +// - Expects that the repair succeed and the pointer should contain the offline piece. +// Reputation info to be updated for all remaining nodes. func TestOfflineNodeDataRepair(t *testing.T) { const RepairMaxExcessRateOptimalThreshold = 0.05 @@ -691,13 +691,13 @@ func TestOfflineNodeDataRepair(t *testing.T) { } // TestUnknownErrorDataRepair does the following: -// - Uploads test data -// - Kills some nodes carrying the uploaded segment but keep it above minimum requirement -// - On one of the remaining nodes, return unknown error during downloading of the piece -// - Triggers data repair, which attempts to repair the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold -// - Expects that the repair succeed and the pointer should contain the unknown piece. -// Reputation info to be updated for all remaining nodes. +// - Uploads test data +// - Kills some nodes carrying the uploaded segment but keep it above minimum requirement +// - On one of the remaining nodes, return unknown error during downloading of the piece +// - Triggers data repair, which attempts to repair the data from the remaining nodes to +// the numbers of nodes determined by the upload repair max threshold +// - Expects that the repair succeed and the pointer should contain the unknown piece. +// Reputation info to be updated for all remaining nodes. func TestUnknownErrorDataRepair(t *testing.T) { const RepairMaxExcessRateOptimalThreshold = 0.05 @@ -813,13 +813,13 @@ func TestUnknownErrorDataRepair(t *testing.T) { } // TestMissingPieceDataRepair_Succeed does the following: -// - Uploads test data -// - Kills some nodes carrying the uploaded segment but keep it above minimum requirement -// - On one of the remaining nodes, delete the piece data being stored by that node -// - Triggers data repair, which attempts to repair the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold -// - Expects that the repair succeed and the pointer should not contain the missing piece. -// Reputation info to be updated for all remaining nodes. +// - Uploads test data +// - Kills some nodes carrying the uploaded segment but keep it above minimum requirement +// - On one of the remaining nodes, delete the piece data being stored by that node +// - Triggers data repair, which attempts to repair the data from the remaining nodes to +// the numbers of nodes determined by the upload repair max threshold +// - Expects that the repair succeed and the pointer should not contain the missing piece. +// Reputation info to be updated for all remaining nodes. func TestMissingPieceDataRepair_Succeed(t *testing.T) { const RepairMaxExcessRateOptimalThreshold = 0.05 @@ -928,13 +928,13 @@ func TestMissingPieceDataRepair_Succeed(t *testing.T) { } // TestMissingPieceDataRepair_Failed does the following: -// - Uploads test data -// - Kills all but the minimum number of nodes carrying the uploaded segment -// - On one of the remaining nodes, delete the piece data being stored by that node -// - Triggers data repair, which attempts to repair the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold -// - Expects that the repair failed and the pointer was not updated. -// Reputation info to be updated for node missing the piece. +// - Uploads test data +// - Kills all but the minimum number of nodes carrying the uploaded segment +// - On one of the remaining nodes, delete the piece data being stored by that node +// - Triggers data repair, which attempts to repair the data from the remaining nodes to +// the numbers of nodes determined by the upload repair max threshold +// - Expects that the repair failed and the pointer was not updated. +// Reputation info to be updated for node missing the piece. func TestMissingPieceDataRepair(t *testing.T) { const RepairMaxExcessRateOptimalThreshold = 0.05 @@ -1043,13 +1043,13 @@ func TestMissingPieceDataRepair(t *testing.T) { } // TestCorruptDataRepair_Succeed does the following: -// - Uploads test data -// - Kills some nodes carrying the uploaded segment but keep it above minimum requirement -// - On one of the remaining nodes, corrupt the piece data being stored by that node -// - Triggers data repair, which attempts to repair the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold -// - Expects that the repair succeed and the pointer should not contain the corrupted piece. -// Reputation info to be updated for all remaining nodes. +// - Uploads test data +// - Kills some nodes carrying the uploaded segment but keep it above minimum requirement +// - On one of the remaining nodes, corrupt the piece data being stored by that node +// - Triggers data repair, which attempts to repair the data from the remaining nodes to +// the numbers of nodes determined by the upload repair max threshold +// - Expects that the repair succeed and the pointer should not contain the corrupted piece. +// Reputation info to be updated for all remaining nodes. func TestCorruptDataRepair_Succeed(t *testing.T) { const RepairMaxExcessRateOptimalThreshold = 0.05 @@ -1157,13 +1157,13 @@ func TestCorruptDataRepair_Succeed(t *testing.T) { } // TestCorruptDataRepair_Failed does the following: -// - Uploads test data -// - Kills all but the minimum number of nodes carrying the uploaded segment -// - On one of the remaining nodes, corrupt the piece data being stored by that node -// - Triggers data repair, which attempts to repair the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold -// - Expects that the repair failed and the pointer was not updated. -// Reputation info to be updated for corrupted node. +// - Uploads test data +// - Kills all but the minimum number of nodes carrying the uploaded segment +// - On one of the remaining nodes, corrupt the piece data being stored by that node +// - Triggers data repair, which attempts to repair the data from the remaining nodes to +// the numbers of nodes determined by the upload repair max threshold +// - Expects that the repair failed and the pointer was not updated. +// Reputation info to be updated for corrupted node. func TestCorruptDataRepair_Failed(t *testing.T) { const RepairMaxExcessRateOptimalThreshold = 0.05 @@ -1908,7 +1908,7 @@ func TestRepairMultipleDisqualifiedAndSuspended(t *testing.T) { // - Uploads test data // - Kills nodes to fall to the Repair Override Value of the checker but stays above the original Repair Threshold // - Triggers data repair, which attempts to repair the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold +// the numbers of nodes determined by the upload repair max threshold func TestDataRepairOverride_HigherLimit(t *testing.T) { const repairOverride = 6 @@ -1995,7 +1995,7 @@ func TestDataRepairOverride_HigherLimit(t *testing.T) { // - Starts Checker and Repairer and ensures this is the case. // - Kills more nodes to fall to the Override Value to trigger repair // - Triggers data repair, which attempts to repair the data from the remaining nodes to -// the numbers of nodes determined by the upload repair max threshold +// the numbers of nodes determined by the upload repair max threshold func TestDataRepairOverride_LowerLimit(t *testing.T) { const repairOverride = 4 @@ -3076,9 +3076,9 @@ func TestSegmentInExcludedCountriesRepair(t *testing.T) { // - run the checker and check the segment is in the repair queue // - run the repairer // - check the segment has been repaired and that: -// - piece in excluded is still there -// - piece held by offline node is not -// - there are no duplicate +// - piece in excluded is still there +// - piece held by offline node is not +// - there are no duplicate func TestSegmentInExcludedCountriesRepairIrreparable(t *testing.T) { testplanet.Run(t, testplanet.Config{ SatelliteCount: 1, diff --git a/satellite/reputation/calculations.go b/satellite/reputation/calculations.go index bb1a3c08f..325cf7f93 100644 --- a/satellite/reputation/calculations.go +++ b/satellite/reputation/calculations.go @@ -25,13 +25,12 @@ func UpdateReputation(isSuccess bool, alpha, beta, lambda, w float64) (newAlpha, // With the arguments as named, applies 'count' successful audits. To apply negative // audits, swap the alpha and beta parameters and return values. // -// // WARNING: GREEK LETTER MATH AHEAD // // Applying n successful audit results to an initial alpha value of α₀ gives a // new α₁ value of: // -// α₁ = λⁿα₀ + λⁿ⁻¹w + λⁿ⁻²w + ... + λ²w + λw + w +// α₁ = λⁿα₀ + λⁿ⁻¹w + λⁿ⁻²w + ... + λ²w + λw + w // // The terms with w are the first n terms of a geometric series with coefficient // w and common ratio λ. The closed form formula for the sum of those first n @@ -39,20 +38,19 @@ func UpdateReputation(isSuccess bool, alpha, beta, lambda, w float64) (newAlpha, // (https://en.wikipedia.org/wiki/Geometric_series#Closed-form_formula). // Adding the initial λⁿα₀ term, we get // -// α₁ = λⁿα₀ + w(1-λⁿ) / (1-λ) +// α₁ = λⁿα₀ + w(1-λⁿ) / (1-λ) // // The formula has the same structure for beta for n _failures_. // -// β₁ = λⁿβ₀ + w(1-λⁿ) / (1-λ) +// β₁ = λⁿβ₀ + w(1-λⁿ) / (1-λ) // // For n _failures_, // -// α₁ = λⁿα₀ +// α₁ = λⁿα₀ // // For n _successes_, // -// β₁ = λⁿβ₀ -// +// β₁ = λⁿβ₀ func UpdateReputationMultiple(count int, alpha, beta, lambda, w float64) (newAlpha, newBeta float64) { if lambda == 1 { // special case: when the coefficient is 1, the closed-form formula is invalid diff --git a/satellite/satellitedb/nodeselection.go b/satellite/satellitedb/nodeselection.go index 43b987166..4264339f2 100644 --- a/satellite/satellitedb/nodeselection.go +++ b/satellite/satellitedb/nodeselection.go @@ -224,14 +224,13 @@ func nodeSelectionCondition(ctx context.Context, criteria *overlay.NodeCriteria, // partialQuery corresponds to a query. // -// distinct=false +// distinct=false // -// $selection WHERE $condition ORDER BY $orderBy, RANDOM() LIMIT $limit +// $selection WHERE $condition ORDER BY $orderBy, RANDOM() LIMIT $limit // -// distinct=true -// -// SELECT * FROM ($selection WHERE $condition ORDER BY $orderBy, RANDOM()) filtered ORDER BY RANDOM() LIMIT $limit +// distinct=true // +// SELECT * FROM ($selection WHERE $condition ORDER BY $orderBy, RANDOM()) filtered ORDER BY RANDOM() LIMIT $limit type partialQuery struct { selection string condition condition diff --git a/satellite/satellitedb/projectaccounting.go b/satellite/satellitedb/projectaccounting.go index 39ae58adc..b758c1f77 100644 --- a/satellite/satellitedb/projectaccounting.go +++ b/satellite/satellitedb/projectaccounting.go @@ -728,11 +728,11 @@ func (db *ProjectAccounting) getSingleBucketRollup(ctx context.Context, projectI // bytes), returns false for ok. // // examples: prefixIncrement([]byte("abc")) -> ([]byte("abd", true) -// prefixIncrement([]byte("ab\xff\xff")) -> ([]byte("ac", true) -// prefixIncrement([]byte("")) -> (nil, false) -// prefixIncrement([]byte("\x00")) -> ([]byte("\x01", true) -// prefixIncrement([]byte("\xff\xff\xff")) -> (nil, false) // +// prefixIncrement([]byte("ab\xff\xff")) -> ([]byte("ac", true) +// prefixIncrement([]byte("")) -> (nil, false) +// prefixIncrement([]byte("\x00")) -> ([]byte("\x01", true) +// prefixIncrement([]byte("\xff\xff\xff")) -> (nil, false) func prefixIncrement(origPrefix []byte) (incremented []byte, ok bool) { incremented = make([]byte, len(origPrefix)) copy(incremented, origPrefix) diff --git a/satellite/satellitedb/reputations.go b/satellite/satellitedb/reputations.go index c719f1705..14aa26f23 100644 --- a/satellite/satellitedb/reputations.go +++ b/satellite/satellitedb/reputations.go @@ -44,10 +44,10 @@ func (reputations *reputations) Update(ctx context.Context, updateReq reputation // The update is done in a loop to handle concurrent update calls and to avoid // the need for an explicit transaction. // There are three main steps go into the update process: -// 1. Get existing row for the node -// a. if no row found, insert a new row. -// 2. Evaluate what the new values for the row fields should be. -// 3. Update row using compare-and-swap. +// 1. Get existing row for the node +// (if no row found, insert a new row). +// 2. Evaluate what the new values for the row fields should be. +// 3. Update row using compare-and-swap. // // If the node (as represented in the returned info) becomes newly vetted, // disqualified, or suspended as a result of these updates, the caller is diff --git a/storagenode/trust/source.go b/storagenode/trust/source.go index 24d8247de..6ca0a0629 100644 --- a/storagenode/trust/source.go +++ b/storagenode/trust/source.go @@ -71,10 +71,10 @@ func isReserved(s string) (schema string, ok bool) { // reProbablySatelliteURL matches config strings that are (intended, but // possibly misconfigured) satellite URLs, like the following: // -// - @ -// - id@ -// - host:9999 -// - id@host:9999 +// - @ +// - id@ +// - host:9999 +// - id@host:9999 var reProbablySatelliteURL = regexp.MustCompile(`@|(^[^/\\]{2,}:\d+$)`) func isProbablySatelliteURL(s string) bool {