Skip to content
This repository has been archived by the owner on Sep 27, 2019. It is now read-only.

Segfault when inserting into a nonexistent table #1055

Closed
schedutron opened this issue Jan 14, 2018 · 2 comments
Closed

Segfault when inserting into a nonexistent table #1055

schedutron opened this issue Jan 14, 2018 · 2 comments

Comments

@schedutron
Copy link
Contributor

schedutron commented Jan 14, 2018

When I write a query like insert into foo values(33);, where foo is a table not yet created, the client hangs and Peloton server logs show Segmentation fault: 11.

@ChTimTsubasa
Copy link
Member

ChTimTsubasa commented Feb 12, 2018

This error is thrown in the database.cpp

I have printed the logs by gdb:

0x00007ffff63b5abe in peloton::catalog::TableCatalogObject::GetTableOid (this=0x0)
at /home/tianyi/Documents/project/peloton/src/include/catalog/table_catalog.h:74
74 inline oid_t GetTableOid() { return table_oid; }
(gdb) backtrace
#0 0x00007ffff63b5abe in peloton::catalog::TableCatalogObject::GetTableOid (this=0x0)
at /home/tianyi/Documents/project/peloton/src/include/catalog/table_catalog.h:74
#1 0x00007ffff63bffd6 in peloton::optimizer::PlanGenerator::Visit (this=0x7fffc8e1d350, op=0x7fffc0007af0)
at /home/tianyi/Documents/project/peloton/src/optimizer/plan_generator.cpp:276
#2 0x00007ffff6421de2 in peloton::optimizer::OperatorNodepeloton::optimizer::PhysicalInsert::Accept (this=0x7fffc0007af0, v=0x7fffc8e1d350)
at /home/tianyi/Documents/project/peloton/src/optimizer/operators.cpp:830
#3 0x00007ffff63e2156 in peloton::optimizer::Operator::Accept (this=0x7fffc00079c0, v=0x7fffc8e1d350)
at /home/tianyi/Documents/project/peloton/src/optimizer/operator_node.cpp:25
#4 0x00007ffff63be093 in peloton::optimizer::PlanGenerator::ConvertOpExpression (this=0x7fffc8e1d350,
op=std::shared_ptr (count 2, weak 0) 0x7fffc00079c0, required_props=std::shared_ptr (empty) 0x0,
required_cols=std::vector of length 0, capacity 0, output_cols=std::vector of length 0, capacity 0,
children_plans=std::vector of length 0, capacity 0, children_expr_map=std::vector of length 0, capacity 0)
at /home/tianyi/Documents/project/peloton/src/optimizer/plan_generator.cpp:65
---Type to continue, or q to quit---
#5 0x00007ffff6436850 in peloton::optimizer::Optimizer::ChooseBestPlan (this=0x7fffc0004c30, id=0,
required_props=std::shared_ptr (count 6, weak 0) 0x7fffc0007940, required_cols=std::vector of length 0, capacity 0)
at /home/tianyi/Documents/project/peloton/src/optimizer/optimizer.cpp:334
#6 0x00007ffff6434fab in peloton::optimizer::Optimizer::BuildPelotonPlanTree (this=0x7fffc0004c30, parse_tree_list=
std::unique_ptrpeloton::parser::SQLStatementList containing 0x7fffc0006ff0, default_database_name="default_database", txn=0x7fffc0007640)
at /home/tianyi/Documents/project/peloton/src/optimizer/optimizer.cpp:131
#7 0x00007ffff659e4f6 in peloton::tcop::TrafficCop::PrepareStatement (this=0x7fffc00049b0, stmt_name="unamed",
query_string="insert into foo values(33);", sql_stmt_list=std::unique_ptrpeloton::parser::SQLStatementList containing 0x0, thread_id=0)
at /home/tianyi/Documents/project/peloton/src/traffic_cop/traffic_cop.cpp:318
#8 0x00007ffff638661b in peloton::network::PostgresProtocolHandler::ExecQueryMessage (this=0x7fffc00066e0, pkt=0x7fffc0006708, thread_id=0)
at /home/tianyi/Documents/project/peloton/src/network/postgres_protocol_handler.cpp:342
#9 0x00007ffff638c97c in peloton::network::PostgresProtocolHandler::ProcessPacket (this=0x7fffc00066e0, pkt=0x7fffc0006708, thread_id=0)
at /home/tianyi/Documents/project/peloton/src/network/postgres_protocol_handler.cpp:1180

@mengranwo Can you take a look at this? I think it is relevant to catalog.

@schedutron
Copy link
Contributor Author

There's a throw statement in catalog.cpp as well which addresses this. I'm using it to fix this issue in #1056.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants