Release note: None
Commits:
ui: Upgrade to Webpack@^4 and babel@^7 versions Release note: None
ui: Add missed dependency on babel-loader Release note: None
ui: Upgrade to Webpack@^4 and babel@^7 versions
Opened by Koorosh at Thu Jan 2 09:05:47 with 2,083 additions, 1,454 deletions, 1 comments
●●●●● SIZE
pkg/ui: 3,537
|
|
Release note: None Commits:
|
[wip] event system take 3: save mapping in DB from event names to job kinds
Opened by vilterp at Thu Jan 2 20:33:15 with 739 additions, 166 deletions, 0 comments
●●●● SIZE
pkg/jobs: 203
, pkg/eventsystem: 187
, console/mailers: 116
, console/events: 69
, console/migrations: 53
, intrusion/server: 40
|
|
BackgroundGoals
ProblemThe central point of a pub/sub system is to decouple publishers from subscribers: a publisher publishes an event without knowing or caring how it will be reacted to; an arbitrary number of subscribers pick it up and do stuff with it. We have infrastructure for the "doing stuff" part: the job system. The remaining question is: where does the mapping from events to jobs live? My previous attempts #1293 and #1299, kept it in the memory of the subscribing process. The awkward part of this was always "claiming" events to react to them — how could we ensure that all necessary reactions to an event were executed exactly once? RealizationIf we store the mapping from events to jobs in the DB, the publishing process can just look up this mapping and create jobs, and they'll be picked up by the job system of the subscribing process using the existing polling mechanism for running unclaimed jobs. The mapping would be stored in a table where each row represents a job that should be created in response to an event, e.g.:
This event-to-jobs lookup could be done in a couple ways:
DesignTo subscribe to an event:
To publish an event:
Statussending an email on cluster creation finishing works. polling interval is 30s, which is pretty ok.
TODOs / issues:
Commits:
|
colexec: begin refactor of colexec type system
Opened by yuzefovich at Thu Jan 2 21:28:00 with 1,518 additions, 1,487 deletions, 1 comments
●●●● SIZE
pkg/col/colserde: 204
, pkg/sql/colexec: 178
, pkg/col/coldata: 168
|
|
pkg/col: rename coltypes package to phystypes This commit renames col/coltypes to col/phystypes. We have "logical" type system (sql/types) and "physical" type system (previously col/coltypes). Later we will introduce "vectorized execution" type system (maybe something like colexec/colexectypes) which will combine two others. And the goal of this change is to reduce the amount of confusion. Release note: None colexec/typeconv: rename typeconv to colexectypes This commit renames colexec/typeconv to colexec/colexectypes which will soon become the "vectorized execution type system" package. Release note: None colexectypes: introduce new colexectypes.T struct This commit introduces a new "columnar execution" type that is a wrapper around phystypes.T that also stores the original "logical" SQL type. Addresses: #43559. Release note: None Commits:
|
storage/batcheval/result: perform various cleanup on LocalResult struct
Opened by nvanbenschoten at Thu Jan 2 21:38:22 with 204 additions, 220 deletions, 1 comments
●●● SIZE
pkg/storage/batcheval/result: 164
, pkg/storage: 141
, pkg/storage/intentresolver: 105
|
|
This PR contains a series of cleanups to the The changes are broken into a series of incremental steps to make them easier to review in isolation. Commits:
|
sqlsmith: add support for interleaved tables
Opened by mjibson at Thu Jan 2 20:59:32 with 114 additions, 47 deletions, 2 comments
●●● SIZE
pkg/sql/sqlbase: 140
|
|
This commit adds interleaved table support to sqlsmith. When running with the rand-tables configuration, there's a 50% chance of all tables but the first one to get interleaved into a random other table. Release note: None Commits:
|
opt: add a rule to push filters into project-set
Opened by rohany at Thu Jan 2 18:54:19 with 81 additions, 0 deletions, 1 comments
●● SIZE
pkg/sql/opt/norm/rules: 28
, pkg/sql/opt/exec/execbuilder/testdata: 27
, pkg/sql/opt/norm/testdata/rules: 26
|
|
Fixes #42202. This PR adds an optimizer rule to push filters down into project-set operations. Release note: None Commits:
|
roachprod/vm/aws: distribute nodes over zones rather than regions for geo
Opened by ajwerner at Thu Jan 2 19:07:59 with 4 additions, 21 deletions, 2 comments
●● SIZE
pkg/cmd/roachprod/vm/aws: 25
|
|
Before this commit, for This PR brings the Release note: None Commits:
|
sql: fix GetAllDatabaseDescriptorIDs panic
Opened by solongordon at Thu Jan 2 18:20:41 with 6 additions, 0 deletions, 1 comments
● SIZE
pkg/sql: 6
|
|
The GetAllDatabaseDescriptorIDs function was panicking when it encountered namespace rows which had been migrated from the old namespace table. Since the migration uses the SQL layer rather than KV puts, it writes sentinel KVs which are not normally written to this table. GetAllDatabaseDescriptorIDs was choking when it encountered these KVs since the value was an empty TUPLE rather than the INT it was expecting. I added a bit of logic to skip these sentinel KVs. Fixes #43616 Release note: None Commits:
|
sql: ignore SCRUB for SYSTEM in RSG tests
Opened by mjibson at Thu Jan 2 17:40:52 with 3 additions, 0 deletions, 1 comments
● SIZE
pkg/sql/tests: 3
|
|
See #43693 Release note: None Commits:
|
opt: fix optsteps crash caused by constraint expressions
Closed by craig[bot] at Thu Jan 2 17:56:15 with 1,266 additions, 86 deletions, 5 comments
●●●●● SIZE
pkg/sql/opt/optbuilder/testdata: 688
, pkg/sql/opt/testutils/opttester/testdata: 434
|
|
opt: make FormatExpr easier to useDuring debugging, it's sometimes useful to add a statement to print an
expression. This is fairly hard and can crash easily because the memo
or the catalog isn't set in the formatting context. In particular, it
is impossible to print a scalar expression that contains a relational
expression because This change improves the situation by allowing the caller of
Release note: None opt: fix optsteps crash caused by TableMeta expressionsThe optbuilder creates scalar constraint and computed column
expressions and hangs them off the This change fixes the problem by adding special code in opt_steps which effectively treats these expressions as children of Scan expressions. Release note: None opt: show TableMeta expressions when formatting expressionsWe build check constraint and computed column expressions and attach
them to Release note: None Commits:
|
storage: write to AbortSpan less, clean up AbortSpan more
Closed by craig[bot] at Thu Jan 2 21:20:18 with 971 additions, 205 deletions, 4 comments
●●●● SIZE
pkg/storage/batcheval: 797
|
|
This PR introduces two improvements to our handling of the AbortSpan. It also introduces the first set of comprehensive testing around AbortSpan entry state transitions, which was sorely missing. This comes after a few different customer issues that at least at first glance appeared to be AbortSpan leaks. There's still more to do to resolve those, mostly by improving GC, but anything we can do here on the frontend to reduce the number of AbortSpan entries that need to be GCed in the first place helps. Clean up span on non-poisoning, aborting EndTransaction requestFixes #29128. Before this change, an EndTransaction request sent to rollback a transaction record would not remove any AbortSpan entries, even if its own Poison flag was set to false. This allowed AbortSpan entries to leak. This commit fixes this behavior by removing the AbortSpan entry in this case. There were concerns raised in #29128 about this being safe. It turns out that we already do this on every Range except the transaction record's Range during normal intent resolution, so this isn't introducing any new concerns. Only write AbortSpan entries if intents are removedThis reduces the frequency of AbortSpan entries that can be abandoned even without a transaction coordinator failure. Specifically, it protects against the case where intent resolution races with a transaction coordinator cleaning up its own transaction record and intents. This can happen for both aborted and committed transactions. In the first case, a pusher might find a transaction's intent and then find its record to be aborted after that transaction had cleanly rolled back its own intents. Even though the transaction's coordinator had already cleaned up and potentially "unpoisoned" AbortSpans, the pusher would happily re-introduce AbortSpan records when it goes to resolve the intents that were already cleaned up. These AbortSpan entries would be fully abandoned and have to wait out the GC. Similarly, in the second case, the transaction might have committed. Here, the pushee might hit an intent and the txn coordinator might clean up and auto-GC its txn record before the pushee arrives at the txn record. Once the pushee gets there, it would mistake the txn for aborted (by design) and proceed to write an AbortSpan record where the intent it had once observed had been (not by design). We can tell both of these cases by simply recognizing whether intent resolution actually succeeds. If intent resolution doesn't find an intent, then we might be in either case. That's fine, because we only need to ever poison the abort span if we actually remove an intent that could confuse a zombie transaction. Commits:
|
protectedts/ptcache: implement the Cache to watch protectedts state
Closed by craig[bot] at Thu Jan 2 22:14:18 with 865 additions, 1 deletions, 2 comments
●●●● SIZE
pkg/storage/protectedts/ptcache: 763
|
|
The Cache periodically polls the protectedts state. The Cache polls the meta row from each node at a period defined by a cluster setting. Clients can toggle a manual refresh. Release note: None. Commits:
|
rfc: temporary tables support
Closed by craig[bot] at Thu Jan 2 22:14:49 with 528 additions, 0 deletions, 31 comments
●●●● SIZE
docs/RFCS: 528
|
|
This RFC proposes to add support for temporary tables. RFC text: https://github.com/arulajmani/cockroach/blob/temp-tables-rfc/docs/RFCS/20191009_temp_tables.md Release note: None Commits:
|
rfcs: resurrect RFC for altering primary key
Closed by craig[bot] at Thu Jan 2 22:14:46 with 253 additions, 175 deletions, 5 comments
●●● SIZE
docs/RFCS: 428
|
|
A year-and-a-half ago, David Taylor wrote an RFC for how to support primary key changes, but that work was deprioritized while the RFC was still a draft. Now we are ready to perform that work, so Rohan and I are bringing that RFC back from the dead. The core approach remains the same, but we've filled in a few TODOs and added more implementation details, syntax examples, and follow-up work ideas. The original RFC got a few comments before it was shelved (see #25208), but we intend to go through a more thorough review process this time around. Release note: None Commits:
|
lint: rename roachlint to roachvet, fold std vet into it, run roachvet on every PR
Closed by craig[bot] at Fri Jan 3 00:04:08 with 210 additions, 143 deletions, 15 comments
●●● SIZE
pkg/testutils/lint: 184
, pkg/cmd/roachvet: 84
, .: 37
|
|
In #42595 we disabled the The last second commit fixes a vet problem which was uncovered. The third commit enables vet for test files and fixes issues found in test files. Release note: None Commits:
|
release-19.2: importccl: resilient import over http
Closed by craig[bot] at Thu Jan 2 21:53:00 with 295 additions, 11 deletions, 3 comments
●●● SIZE
pkg/ccl/storageccl: 294
|
|
Backport:
Please see individual PRs for details. /cc @cockroachdb/release Commits:
|
storage: stop modifying requests and returning responses from TxnWaitQueue
Closed by craig[bot] at Thu Jan 2 21:20:06 with 174 additions, 106 deletions, 6 comments
●●● SIZE
pkg/storage: 153
, pkg/storage/txnwait: 120
|
|
This PR contains three pieces of cleanup that pave the way for pulling the TxnWaitQueue underneath the upcoming Commits:
|
release-19.1: storage/intentresolver: don't capture loop iteration vars in async task
Closed by nvanbenschoten at Thu Jan 2 19:22:21 with 200 additions, 12 deletions, 1 comments
●●● SIZE
pkg/storage/intentresolver: 208
|
|
Backport 1/1 commits from #43563. /cc @cockroachdb/release It's unclear if we've ever seen issues from this, but I intend to backport the fix to v19.2, v19.1, and v2.1. I believe the worst thing that could have happened is that a batch that observed multiple intents or pushed multiple txns would only end up cleaning up a single one of these. It would then run into some of these intents again when it tried to re-evaluate, forcing it to push again. This subverts the parallelism that we were trying to achieve here, but would never cause a stall. Release note (bug fix): Ensure that all intents or transactions that a batch observes are asynchronously cleaned up. Commits:
|
release-19.2: storage/intentresolver: don't capture loop iteration vars in async task
Closed by nvanbenschoten at Thu Jan 2 19:22:13 with 200 additions, 12 deletions, 3 comments
●●● SIZE
pkg/storage/intentresolver: 208
|
|
Backport 1/1 commits from #43563. /cc @cockroachdb/release It's unclear if we've ever seen issues from this, but I intend to backport the fix to v19.2, v19.1, and v2.1. I believe the worst thing that could have happened is that a batch that observed multiple intents or pushed multiple txns would only end up cleaning up a single one of these. It would then run into some of these intents again when it tried to re-evaluate, forcing it to push again. This subverts the parallelism that we were trying to achieve here, but would never cause a stall. Release note (bug fix): Ensure that all intents or transactions that a batch observes are asynchronously cleaned up. Commits:
|
Misc. IMPORT updates
Closed by lnhsingh at Thu Jan 2 18:21:33 with 124 additions, 64 deletions, 8 comments
●●● SIZE
v19.2: 94
, v20.1: 94
|
|
Edits:
Commits:
|
storage: improve the error for aborted txns after lease transfer
Closed by craig[bot] at Thu Jan 2 17:32:24 with 309 additions, 241 deletions, 7 comments
●● SIZE
pkg/storage: 51
, pkg/roachpb: 27
|
|
Lease transfers wipe the timestamp cache, and so a txn that straddles a lease transfer will not be allowed to create its txn record. This commit introduces a specific reason for the TransactionAbortedError highlighting that there's a new lease. Release note: None Commits:
|
sql: minor error handling improvements
Closed by craig[bot] at Thu Jan 2 18:26:49 with 18 additions, 40 deletions, 3 comments
●● SIZE
pkg/sql/parser: 38
, pkg/sql: 11
|
|
See individual commits. Commits:
|
roachtest: add a tpcc+alter for sqlsmith
Closed by craig[bot] at Thu Jan 2 23:25:34 with 27 additions, 9 deletions, 3 comments
●● SIZE
pkg/internal/sqlsmith: 34
|
|
This will test a large set of existing tables with schema changes. Also rejigger the alter statement frequency. Drops are 1, renames 5, and creates 10. This should prevent the problem of drops happening too often. Release note: None Commits:
|
sql: move Arul's TODOs to Solon
Closed by craig[bot] at Thu Jan 2 17:00:51 with 15 additions, 15 deletions, 2 comments
●● SIZE
pkg/sql: 16
, pkg/sql/sqlbase: 12
|
|
There are a bunch of TODO(whomever) left over. As per the Google style guide, a TODO is addressed to the person others can ask about the TODO. Asking whomever is not a thing. Solon, I guess you're the closest thing. Instead or after this patch, please do me a favor if you don't mind and improve these TODOs. A bunch of them seem to be about code gated on a cluster version being ok to remove in the next version. That doesn't need a TODO. Others seem to be about not using a DeprecatedDatabaseKey thing. I think they can all be centralized on the struct definition, which struct also cries for an explanation. Release note: None Commits:
|
build(deps): bump handlebars from 4.1.2 to 4.5.3 in /console
Closed by chrisseto at Thu Jan 2 15:41:00 with 13 additions, 8 deletions, 0 comments
●● SIZE
console: 21
|
|
Bumps handlebars from 4.1.2 to 4.5.3. ChangelogSourced from handlebars's changelog.
|
c819c8b
v4.5.3827c9d0
Update release notesf7f05d7
fix: add "no-prototype-builtins" eslint-rule and fix all occurences1988878
fix: add more properties required to be enumerable886ba86
test/chore: add chai/expect and sinon to "runtime"-environment0817dad
test: add sinon as global variable to eslint in the specs93516a0
test: add sinon.js for spies, deprecate current assertions93e284e
chore: add chai and dirty-chai for better test assertionsc02b05f
fix: use !== 0 instead of != 08de121d
v4.5.2Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot ignore this [patch|minor|major] version
will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labels
will set the current labels as the default for future PRs for this repo and language@dependabot use these reviewers
will set the current reviewers as the default for future PRs for this repo and language@dependabot use these assignees
will set the current assignees as the default for future PRs for this repo and language@dependabot use this milestone
will set the current milestone as the default for future PRs for this repo and languageYou can disable automated security fix PRs for this repo from the Security Alerts page.
build(deps): bump handlebars from 4.1.2 to 4.5.3 in /console Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.1.2 to 4.5.3. - [Release notes](https://github.com/wycats/handlebars.js/releases) - [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md) - [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.2...v4.5.3) Signed-off-by: dependabot[bot]
reducesql: also attempt to remove columns from PKs
Closed by craig[bot] at Thu Jan 2 17:56:13 with 11 additions, 6 deletions, 3 comments
● SIZE
pkg/testutils/reduce/reducesql: 17
|
|
Release note: None Commits:
|
colexec/typeconv: remove orphaned Int1 case
Closed by craig[bot] at Fri Jan 3 00:04:01 with 0 additions, 8 deletions, 4 comments
● SIZE
pkg/sql/colexec/typeconv: 8
|
|
At some point we had support for Int1 (8 bit integer) in the vectorized engine, but it has been removed. This commit removes one of the leftover pieces. Release note: None Commits:
|
console: make billing email accept long TLDs
Closed by DuskEagle at Thu Jan 2 15:52:50 with 6 additions, 2 deletions, 2 comments
● SIZE
console/apipb: 6
|
|
Previously, long TLDs such as Commits:
|
kv: don't close TCS interceptors on errors
Closed by craig[bot] at Thu Jan 2 17:32:23 with 2 additions, 3 deletions, 3 comments
● SIZE
pkg/kv: 5
|
|
Before this patch, the TxnCoordSender was closing all the interceptors when on non-retriable errors. This was a useless optimization serving to stop the heartbeat loop early; the client was required to send a rollback to clean up the intents. This patch gets rid of the optimization in anticipation of the savepoints API, which will serve for error recovery. Release note: None Commits:
|
release-19.2: sql/flowinfra: stop swallowing error while flushing
Closed by ajwerner at Thu Jan 2 20:36:42 with 1 additions, 1 deletions, 1 comments
● SIZE
pkg/sql/flowinfra: 2
|
|
@solongordon I omitted a release note because I can't think of what the user-visible impact of not returning this error might be. If you can think of one let me know and I'll update the commit message. Release note: None Commits:
|
Enable saving bad csv rows to a side file
Closed by lnhsingh at Fri Jan 3 04:55:25 with 2 additions, 0 deletions, 5 comments
● SIZE
v19.2: 1
, v20.1: 1
|
|
Closes #5906. Commits:
|