ydb-platform / ydb

YDB is an open source Distributed SQL Database that combines high availability and scalability with strong consistency and ACID transactions
https://ydb.tech
Apache License 2.0
4.02k stars 588 forks source link

Coredump TPC-DS q9, main, all scales #11890

Open iddqdex opened 5 days ago

iddqdex commented 5 days ago

Вот свежая корка Это sas9-1578.host.testing.ydb.yandex.net, d-c0fjkvqa4ttf6kb24g9j-ydb-testing-sas-0-4.d-c0fjkvqa4ttf6kb24g9j-interconnect.ydb-cluster-c0fhtggrtcjnh4sfq8o3.svc.cluster.local, сегодня в 8.33 утра Все зеленое, но если скопировать белый текст сверху, то там вот

Core was generated by `/opt/ydb/bin/ydbd server --mon-port 8765 --ic-port 19001 --yaml-config /opt/ydb'.

#0  shared_ptr () at /place/sandbox-data/tasks/4/0/2695063104/ydb/contrib/libs/cxxsupp/libcxx/include/__memory/shared_ptr.h:690
#1  Build () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/program.cpp:446
#2  0x0000564ea61722e5 in FillTaskMeta () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp:953
#3  0x0000564ea61752d8 in SerializeTaskToProto () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp:1188
#4  0x0000564ea6175594 in ArenaSerializeTaskToProto () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp:1193
#5  0x0000564ea61526f4 in SerializeRequest () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/kqp/executer_actor/kqp_planner.cpp:218
#6  0x0000564ea615905d in PlanExecution () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/kqp/executer_actor/kqp_planner.cpp:597
#7  0x0000564ea6124c16 in ExecuteTasks () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/kqp/executer_actor/kqp_data_executer.cpp:2675
#8  0x0000564ea61229d9 in ContinueExecute () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/kqp/executer_actor/kqp_data_executer.cpp:2289
#9  0x0000564ea610af13 in OnShardsResolve () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/kqp/executer_actor/kqp_data_executer.cpp:2241
#10 0x0000564ea60fab7d in Execute () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/kqp/executer_actor/kqp_data_executer.cpp:2155
#11 0x0000564ea60ec9ef in HandleResolve () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/kqp/executer_actor/kqp_data_executer.cpp:1873
#12 WaitResolveState () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/core/kqp/executer_actor/kqp_data_executer.cpp:386
#13 0x0000564e96e1c36b in Execute () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/library/actors/core/executor_thread.cpp:248
#14 0x0000564e96e203fb in operator() () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/library/actors/core/executor_thread.cpp:425
#15 0x0000564e96e1fe13 in ProcessExecutorPool () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/library/actors/core/executor_thread.cpp:479
#16 0x0000564e96e20c76 in ThreadProc () at /place/sandbox-data/tasks/4/0/2695063104/ydb/ydb/library/actors/core/executor_thread.cpp:510
#17 0x0000564e96176218 in ThreadProxy () at /place/sandbox-data/tasks/4/0/2695063104/ydb/util/system/thread.cpp:244
#18 0x00007fc58c124609 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#19 0x00007fc58c044133 in clone () from /lib/x86_64-linux-gnu/libc.so.6

Если например GetSteps (в #1) отдает пустой вектор (а он может), то там segfault будет.

А пустой он может быть видимо из-за какого-то неправильного построения плана. Это TPC-DS q09, @pavel_velikhov, ты там как раз недавно планы менял, погляди пожалуйста. Вот отчет

iddqdex commented 5 days ago

Дополнительные верификации https://github.com/ydb-platform/ydb/pull/11873 поймали проблему