Github user zuyu commented on the issue:
https://github.com/apache/incubator-quickstep/pull/155
Hi @jianqiao,
I encountered three distributed query execution unit tests failures due to
this PR, but I am still working on a fix.
```
The following tests FAILED:
3 -
quickstep_queryoptimizer_tests_distributed_executiongenerator_distinct
(SEGFAULT)
6 -
quickstep_queryoptimizer_tests_distributed_executiongenerator_insert (SEGFAULT)
7 -
quickstep_queryoptimizer_tests_distributed_executiongenerator_join (SEGFAULT)
```
They are the same segfault caused by that `CatalogRelationStatistics` got
from `SaveBlocksOperator` is `nullptr`.
```
* thread #2: tid = 0x7cafb, 0x000000010030e029
quickstep_queryoptimizer_tests_DistributedExecutionGeneratorTest`quickstep::CatalogRelationStatistics::setExactness(this=0x0000000000000000,
is_exact=false) + 25 at CatalogRelationStatistics.hpp:86, stop reason =
EXC_BAD_ACCESS (code=1, address=0x0)
* frame #0: 0x000000010030e029
quickstep_queryoptimizer_tests_DistributedExecutionGeneratorTest`quickstep::CatalogRelationStatistics::setExactness(this=0x0000000000000000,
is_exact=false) + 25 at CatalogRelationStatistics.hpp:86
frame #1: 0x000000010030dfd3
quickstep_queryoptimizer_tests_DistributedExecutionGeneratorTest`quickstep::SaveBlocksOperator::updateCatalogOnCompletion(this=0x000000011c707020)
+ 35 at SaveBlocksOperator.cpp:81
frame #2: 0x000000010021df08
quickstep_queryoptimizer_tests_DistributedExecutionGeneratorTest`quickstep::QueryManagerBase::markOperatorFinished(this=0x000000011c512420,
index=2) + 152 at QueryManagerBase.cpp:212
frame #3: 0x000000010021d885
quickstep_queryoptimizer_tests_DistributedExecutionGeneratorTest`quickstep::QueryManagerBase::processWorkOrderCompleteMessage(this=0x000000011c512420,
op_index=2) + 469 at QueryManagerBase.cpp:123
frame #4: 0x000000010020a617
quickstep_queryoptimizer_tests_DistributedExecutionGeneratorTest`quickstep::PolicyEnforcerBase::processMessage(this=0x000000011c512be0,
tagged_message=0x0000700000186be8) + 1431 at PolicyEnforcerBase.cpp:78
frame #5: 0x00000001000d3364
quickstep_queryoptimizer_tests_DistributedExecutionGeneratorTest`quickstep::ForemanDistributed::run(this=0x000000011d005e80)
+ 3988 at ForemanDistributed.cpp:183
frame #6: 0x00000001104d3c44
quickstep_queryoptimizer_tests_DistributedExecutionGeneratorTest`quickstep::threading_internal::executeRunMethodForThreadReturnNothing(thread_ptr=0x000000011d005e80)
+ 36 at Thread.cpp:30
frame #7: 0x000000010001d17d
quickstep_queryoptimizer_tests_DistributedExecutionGeneratorTest`void*
std::__1::__thread_proxy<std::__1::tuple<void (*)(void*),
quickstep::ThreadImplCPP11*> >(void*) [inlined]
decltype(__f=0x000000011c513f30,
__args=0x000000011c513f38)(void*)>(fp)(std::__1::forward<quickstep::ThreadImplCPP11*>(fp0)))
std::__1::__invoke<void (*)(void*), quickstep::ThreadImplCPP11*>(void
(*&&)(void*), quickstep::ThreadImplCPP11*&&) + 24 at __functional_base:416
frame #8: 0x000000010001d165
quickstep_queryoptimizer_tests_DistributedExecutionGeneratorTest`void*
std::__1::__thread_proxy<std::__1::tuple<void (*)(void*),
quickstep::ThreadImplCPP11*> >(void*) [inlined] void
std::__1::__thread_execute<void (*)(void*), quickstep::ThreadImplCPP11*,
1ul>(__t=0x000000011c513f30)(void*), quickstep::ThreadImplCPP11*>&,
std::__1::__tuple_indices<1ul>) + 40 at thread:347
frame #9: 0x000000010001d13d
quickstep_queryoptimizer_tests_DistributedExecutionGeneratorTest`void*
std::__1::__thread_proxy<std::__1::tuple<void (*)(void*),
quickstep::ThreadImplCPP11*> >(__vp=0x000000011c513f30) + 365 at thread:357
frame #10: 0x00007fff876ed99d libsystem_pthread.dylib`_pthread_body +
131
frame #11: 0x00007fff876ed91a libsystem_pthread.dylib`_pthread_start +
168
frame #12: 0x00007fff876eb351 libsystem_pthread.dylib`thread_start + 13
(quickstep::CatalogRelation) $1 = {
quickstep::CatalogRelationSchema = {
parent_ = 0x0000000000000000
id_ = 28
name_ = "_qstemp_result_5_0"
temporary_ = true
attr_vec_ = {
internal_vector_ = size=0 {}
}
attr_map_ = size=2 {
[0] = {
__cc = {
first = ""
second = 0x000300011c70b1d0
}
__nc = {
first = ""
second = 0x000300011c70b1d0
}
}
}
num_nullable_attributes_ = 1
num_variable_length_attributes_ = 0
max_byte_length_ = 12
min_byte_length_ = 12
estimated_byte_length_ = 12
fixed_byte_length_ = 12
max_variable_byte_length_ = 0
min_variable_byte_length_ = 0
min_variable_byte_length_excluding_nullable_ = 0
estimated_variable_byte_length_ = 0
fixed_length_attribute_offsets_ = size=0 {}
max_byte_lengths_ = size=0 {}
nullable_attribute_indices_ = size=0 {}
current_nullable_attribute_index_ = 0
variable_length_attribute_indices_ = size=0 {}
current_variable_length_attribute_index_ = -1
}
blocks_ = size=0 {}
blocks_mutex_ = {
state_ = 0
}
default_layout_ = {
__ptr_ = {
std::__1::__libcpp_compressed_pair_imp<quickstep::StorageBlockLayout
*, std::__1::default_delete<quickstep::StorageBlockLayout>, 2> = {
__first_ = 0x0000000000000000
}
}
}
partition_scheme_ = {
__ptr_ = {
std::__1::__libcpp_compressed_pair_imp<quickstep::PartitionScheme *,
std::__1::default_delete<quickstep::PartitionScheme>, 2> = {
__first_ = 0x0000000000000000
}
}
}
index_scheme_ = {
__ptr_ = {
std::__1::__libcpp_compressed_pair_imp<quickstep::IndexScheme *,
std::__1::default_delete<quickstep::IndexScheme>, 2> = {
__first_ = 0x0000000000000000
}
}
}
index_scheme_mutex_ = {
state_ = 0
}
statistics_ = {
__ptr_ = {
std::__1::__libcpp_compressed_pair_imp<quickstep::CatalogRelationStatistics *,
std::__1::default_delete<quickstep::CatalogRelationStatistics>, 2> = {
__first_ = 0x0000000000000000
}
}
}
}
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---