Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cli/dump: fails with column-less tables #37768

Open
lopezator opened this issue May 23, 2019 · 3 comments

Comments

2 participants
@lopezator
Copy link
Contributor

commented May 23, 2019

To Reproduce

Given an empty database:

CREATE DATABASE foo;
CREATE TABLE bar();
$> cockroach dump --insecure foo

Results in:

CREATE TABLE bar (,
	FAMILY "primary" (rowid)
);
Error: pq: syntax error at or near "from"
Failed running "dump"

Quite evident in the example but can very frustating in a large database.

CC \ @knz

@lopezator lopezator changed the title dump crashes whith column-less tables dump crashes with column-less tables May 23, 2019

@knz

This comment has been minimized.

Copy link
Member

commented May 23, 2019

Note for the reader: the problem is not create table accepting an empty column list.
(We could discuss that but it's not in scope.)

The problem is really in cockroach dump and it's possible to reproduce by creating a regular table, and using alter table drop column to remove all the visible columns.

(Such usage of alter is supported by postgres so we can't just disallow it)

@knz

This comment has been minimized.

Copy link
Member

commented May 23, 2019

cc #28948.

@knz knz changed the title dump crashes with column-less tables cli/dump: crashes with column-less tables May 23, 2019

@knz knz added this to To do in Command Line Interface (CLI) via automation May 23, 2019

@knz knz changed the title cli/dump: crashes with column-less tables cli/dump: fails with column-less tables May 23, 2019

knz added a commit to knz/cockroach that referenced this issue Jul 8, 2019

cli/dump: inform the user clearly when dumping no-col tables
Before:

```
kena@kenax ~/cockroach % ./cockroach dump --insecure defaultdb
CREATE TABLE t (,
        FAMILY "primary" (rowid)
);
Error: pq: at or near "from": syntax error
Failed running "dump"
```

After:

```
kena@kenax ~/cockroach % ./cockroach dump --insecure defaultdb
CREATE TABLE t (,
        FAMILY "primary" (rowid)
);
Error: table "defaultdb.public.t" has no visible columns
HINT: To proceed with the dump, either omit this table from the list of tables to dump, drop the table, or add some visible columns.
--
See: cockroachdb#37768
Failed running "dump"
```

Release note (cli change): `cockroach dump` will now more clearly
refer to issue cockroachdb#37768 when it encounters a table with no visible
columns, which (currently) cannot be dumped successfully.

knz added a commit to knz/cockroach that referenced this issue Jul 8, 2019

cli/dump: inform the user clearly when dumping no-col tables
Before:

```
kena@kenax ~/cockroach % ./cockroach dump --insecure defaultdb
CREATE TABLE t (,
        FAMILY "primary" (rowid)
);
Error: pq: at or near "from": syntax error
Failed running "dump"
```

After:

```
kena@kenax ~/cockroach % ./cockroach dump --insecure defaultdb
CREATE TABLE t (,
        FAMILY "primary" (rowid)
);
Error: table "defaultdb.public.t" has no visible columns
HINT: To proceed with the dump, either omit this table from the list of tables to dump, drop the table, or add some visible columns.
--
See: cockroachdb#37768
Failed running "dump"
```

Release note (cli change): `cockroach dump` will now more clearly
refer to issue cockroachdb#37768 when it encounters a table with no visible
columns, which (currently) cannot be dumped successfully.

@knz knz removed the S-3-ux-surprise label Jul 8, 2019

@knz

This comment has been minimized.

Copy link
Member

commented Jul 8, 2019

Added clearer error in code in #38725, to remove the UX-surprise label.

craig bot pushed a commit that referenced this issue Jul 8, 2019

Merge #37199 #38397 #38654 #38725
37199: storage: propagate errors from contentionQueue, catch stalls in roachtest r=nvanbenschoten a=nvanbenschoten

Informs #36089.

The PR is split into a series of commits. The first fixes part of a bug that was causing #36089  to fail (thanks to #36748) and the second improves the test to have a more obvious failure condition for this class of bug in the future. The third, fifth, and sixth clean up code. Finally, the fourth fixes another bug that could cause issues with #36089.

Before the first commit, requests could get stuck repeatedly attempting to push a transaction only to repeatedly find that they themselves were already aborted. The error would not propagate up to the transaction coordinator and the request would get stuck. This commit fixes this behavior by correctly propagating errors observed by the `contentionQueue`.

The second commit bumps the TxnLivenessThreshold for clusters running `kv/contention/nodes=4` to 10 minutes. This is sufficiently large such that if at any point a transaction is abandoned then all other transactions will begin waiting for it, throughput will drop to 0 for 10 straight minutes, and the test will fail to achieve its minimum QPS requirement.

The fourth commit instructs pushers in the `txnwait.Queue` to inform all other pushers that are waiting for the same transaction when it observes an ABORTED transaction. I never saw this cause issues with #36089, but it seems very possible that it could given frequent tscache rotations.

38397: sql: deflake TestLogic//crdb_internal/max_retry_counter r=knz a=knz

Fixes #38062.

Release note: None

38654: exec: Handle NULLS in TopK sorter r=rohany a=rohany

This commit fixes NULLs in the TopK sorter by avoiding use
of the vec copy method, which has a bug. Instead, we add
a set method to the vec comparator, and use the templatized
comparator to perform the sets that the TopK sorter needs.

To facilitate this, we add an UnsetNull method to the Nulls
object. However, use of this method results in HasNull()
maybe returning true even if the vector doesn't have nulls.
This behavior already occurs when selection vectors are used.
Based on discussions with @solongordon and @asubiotto, this behavior
is OK, and future PR's will attempt to make this behavior better, and address
the bugs within the Vec Copy method.

38725: cli/dump: more clearly inform the user upon tables with no visible columns r=knz a=knz

Informs #37768.
Informs #28948.
This is coming up quite often on support, lately again on gitter and forum https://forum.cockroachlabs.com/t/error-while-dumping-core-backup/2901/3.

This PR aims to lessen the burden on support and propose a clear "next action" for the user.

Before:

```
kena@kenax ~/cockroach % ./cockroach dump --insecure defaultdb
CREATE TABLE t (,
        FAMILY "primary" (rowid)
);
Error: pq: at or near "from": syntax error
Failed running "dump"
```

After:

```
kena@kenax ~/cockroach % ./cockroach dump --insecure defaultdb
CREATE TABLE t (,
        FAMILY "primary" (rowid)
);
Error: table "defaultdb.public.t" has no visible columns
HINT: To proceed with the dump, either omit this table from the list of tables to dump, drop the table, or add some visible columns.
--
See: #37768
Failed running "dump"
```

Release note (cli change): `cockroach dump` will now more clearly
refer to issue #37768 when it encounters a table with no visible
columns, which (currently) cannot be dumped successfully.

Co-authored-by: Nathan VanBenschoten <nvanbenschoten@gmail.com>
Co-authored-by: Raphael 'kena' Poss <knz@cockroachlabs.com>
Co-authored-by: Rohan Yadav <rohany@alumni.cmu.edu>

@rolandcrosby rolandcrosby added this to Triage in Bulk I/O Jul 9, 2019

@rolandcrosby rolandcrosby moved this from Triage to Bug in Bulk I/O Jul 10, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.