Skip to content

NATURAL JOIN panic not handled gracefully #651

Closed
@carlosms

Description

@carlosms

Gitbase version: v0.17.1
This query makes gitbase drop the connection instead of returning an error message:

/* Top languages by repository count */
SELECT language, COUNT(repository_id) AS repository_count
FROM   (SELECT DISTINCT
          r.repository_id,
          LANGUAGE(t.tree_entry_name, b.blob_content) AS language
        FROM   refs r
                JOIN commits c ON r.commit_hash = c.commit_hash
                NATURAL JOIN commit_trees
                NATURAL JOIN tree_entries t
                NATURAL JOIN blobs b
        WHERE  r.ref_name = 'HEAD') AS q1
GROUP  BY language
ORDER  BY repository_count DESC 
time="2018-12-05T11:18:12Z" level=info msg="NewConnection: client 65"
time="2018-12-05T11:18:12Z" level=debug msg="executing query" query="SELECT language, COUNT(repository_id) AS repository_count FROM   (SELECT DISTINCT           r.repository_id,           LANGUAGE(t.tree_entry_name, b.blob_content) AS language         FROM   refs r                 JOIN commits c ON r.commit_hash = c.commit_hash          NATURAL JOIN commit_trees                 NATURAL JOIN tree_entries t                 NATURAL JOIN blobs b         WHERE  r.ref_name = 'HEAD') AS q1 GROUP  BY language ORDER  BY repository_count DESC"
time="2018-12-05T11:18:12Z" level=info msg="ConnectionClosed: client 65"
ERROR: logging before flag.Parse: E1205 11:18:12.863805       9 server.go:237] mysql_server caught panic:
NaturalJoin is a placeholder, Schema called
/home/travis/.gimme/versions/go1.11.1.linux.amd64/src/runtime/panic.go:513 (0x42eee8)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/plan/naturaljoin.go:25 (0x8cef08)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/analyzer/optimization_rules.go:114 (0xbbfb9e)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/plan/filter.go:45(0x8c8296)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/plan/filter.go:45(0x8c8296)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/analyzer/optimization_rules.go:86 (0xbc0584)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/plan/project.go:78 (0x8d1e98)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/plan/distinct.go:42 (0x8c47a0)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/analyzer/optimization_rules.go:68 (0xbb69a2)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/analyzer/batch.go:67 (0xbb5757)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/analyzer/batch.go:38 (0xbb53fe)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/analyzer/analyzer.go:178 (0xbadceb)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/analyzer/resolve_subqueries.go:17 (0xbcdfbd)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/plan/subqueryalias.go:50 (0x8d7ebb)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/plan/group_by.go:98 (0x8c9526)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/plan/sort.go:98 (0x8d6510)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/analyzer/resolve_subqueries.go:13 (0xbbccd0)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/analyzer/batch.go:67 (0xbb5757)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/analyzer/batch.go:38 (0xbb53fe)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/sql/analyzer/analyzer.go:178 (0xbadceb)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/engine.go:78 (0xbe6a90)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-mysql-server.v0/server/handler.go:84 (0xbe7738)
/home/travis/gopath/src/github.com/src-d/gitbase/vendor/gopkg.in/src-d/go-vitess.v1/mysql/server.go:417 (0xb9d3cb)
/home/travis/.gimme/versions/go1.11.1.linux.amd64/src/runtime/asm_amd64.s:1333 (0x45c310)

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions