GitHub user Game-Cruz edited a discussion: [VL] TPCDS Bloomfilter fallback all 
time

I've upgraded Gluten to support Spark 3.5.3 and tried running TPCDS benchmark 
queries which use bloom filter. But, it's failing with below mentioned 
segmentation fault. Can someone who uses Gluten/Velox with Spark 3.5.3 help me 
with the issue?

Spark Conf used:
```spark-shell --conf spark.gluten.sql.columnar.backend.lib=velox --conf 
spark.gluten.loadLibFromJar=true --conf 
spark.shuffle.manager=org.apache.spark.shuffle.sort.ColumnarShuffleManager 
--conf 
"spark.driver.extraJavaOptions"="-Dio.netty.tryReflectionSetAccessible=true 
-XX:+ErrorFileToStderr" --conf 
"spark.executor.extraJavaOptions"="-Dio.netty.tryReflectionSetAccessible=true 
-XX:+ErrorFileToStderr" --conf "spark.plugins"="org.apache.gluten.GlutenPlugin" 
--conf spark.executor.memory=4g --conf spark.memory.offHeap.enabled=true --conf 
spark.memory.offHeap.size=22g --conf spark.sql.autoBroadcastJoinThreshold=10m```

TPCDS Query q1:
```
spark.sql("""WITH customer_total_return AS
(SELECT sr_customer_sk AS ctr_customer_sk, sr_store_sk AS ctr_store_sk,
         sum(sr_return_amt) AS ctr_total_return
    FROM store_returns, date_dim
    WHERE sr_returned_date_sk = d_date_sk AND d_year = 2000
    GROUP BY sr_customer_sk, sr_store_sk)
 SELECT c_customer_id
   FROM customer_total_return ctr1, store, customer
   WHERE ctr1.ctr_total_return >
    (SELECT avg(ctr_total_return)*1.2
      FROM customer_total_return ctr2
       WHERE ctr1.ctr_store_sk = ctr2.ctr_store_sk)
   AND s_store_sk = ctr1.ctr_store_sk
   AND s_state = 'TN'
   AND ctr1.ctr_customer_sk = c_customer_sk
   ORDER BY c_customer_id LIMIT 100
""").collect
```
Query Failure:
```
terminate called after throwing an instance of 'facebook::velox::VeloxUserError'
what():  Exception: VeloxUserError
Error Source: USER
Error Code: INVALID_ARGUMENT
Reason: (1 vs. 0)
Retriable: False
Expression: kBloomFilterV1 == version
Function: merge
File: /root/velox/velox/common/base/BloomFilter.h
Line: 67
Stack trace:
# 0  facebook::velox::VeloxException::VeloxException(char const*, unsigned 
long, char const*, std::basic_string_view<char, std::char_traits<char> >, 
std::basic_string_view<char, std::char_traits<char> >, 
std::basic_string_view<char, std::char_traits<char> >, 
std::basic_string_view<char, std::char_traits<char> >, bool, 
facebook::velox::VeloxException::Type, std::basic_string_view<char, 
std::char_traits<char> >)
# 1  void 
facebook::velox::detail::veloxCheckFail<facebook::velox::VeloxUserError, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&>(facebook::velox::detail::VeloxCheckFailArgs const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&)
# 2  void 
facebook::velox::exec::SimpleFunctionAdapter<facebook::velox::core::UDFHolder<facebook::velox::functions::sparksql::BloomFilterMightContainFunction<facebook::velox::exec::VectorExec>,
 facebook::velox::exec::VectorExec, bool, 
facebook::velox::ConstantChecker<facebook::velox::Varbinary, long>, 
facebook::velox::Varbinary, long> >::unpackInitialize<1, 
facebook::velox::StringView>(std::vector<std::shared_ptr<facebook::velox::Type 
const>, std::allocator<std::shared_ptr<facebook::velox::Type const> > > const&, 
facebook::velox::core::QueryConfig const&, 
std::vector<std::shared_ptr<facebook::velox::BaseVector>, 
std::allocator<std::shared_ptr<facebook::velox::BaseVector> > > const&, 
facebook::velox::StringView const*) const [clone .isra.0]
# 3  
facebook::velox::exec::SimpleFunctionAdapterFactoryImpl<facebook::velox::core::UDFHolder<facebook::velox::functions::sparksql::BloomFilterMightContainFunction<facebook::velox::exec::VectorExec>,
 facebook::velox::exec::VectorExec, bool, 
facebook::velox::ConstantChecker<facebook::velox::Varbinary, long>, 
facebook::velox::Varbinary, long> 
>::createVectorFunction(std::vector<std::shared_ptr<facebook::velox::Type 
const>, std::allocator<std::shared_ptr<facebook::velox::Type const> > > const&, 
std::vector<std::shared_ptr<facebook::velox::BaseVector>, 
std::allocator<std::shared_ptr<facebook::velox::BaseVector> > > const&, 
facebook::velox::core::QueryConfig const&) const
# 4  facebook::velox::exec::(anonymous 
namespace)::compileRewrittenExpression(std::shared_ptr<facebook::velox::core::ITypedExpr
 const> const&, facebook::velox::exec::(anonymous namespace)::Scope*, 
facebook::velox::core::QueryConfig const&, 
facebook::velox::memory::MemoryPool*, 
std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >, 
std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > > > const&, bool)
# 5  facebook::velox::exec::(anonymous 
namespace)::compileExpression(std::shared_ptr<facebook::velox::core::ITypedExpr 
const> const&, facebook::velox::exec::(anonymous namespace)::Scope*, 
facebook::velox::core::QueryConfig const&, 
facebook::velox::memory::MemoryPool*, 
std::unordered_set<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >, 
std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > > > const&, bool)
# 6  
facebook::velox::exec::compileExpressions(std::vector<std::shared_ptr<facebook::velox::core::ITypedExpr
 const>, std::allocator<std::shared_ptr<facebook::velox::core::ITypedExpr 
const> > > const&, facebook::velox::core::ExecCtx*, 
facebook::velox::exec::ExprSet*, bool)
# 7  
facebook::velox::exec::ExprSet::ExprSet(std::vector<std::shared_ptr<facebook::velox::core::ITypedExpr
 const>, std::allocator<std::shared_ptr<facebook::velox::core::ITypedExpr 
const> > > const&, facebook::velox::core::ExecCtx*, bool)
# 8  gluten::SubstraitToVeloxPlanValidator::validate(substrait::FilterRel 
const&)
# 9  gluten::SubstraitToVeloxPlanValidator::validate(substrait::Plan const&)
# 10 
Java_org_apache_gluten_vectorized_PlanEvaluatorJniWrapper_nativeValidateWithFailureReason
# 11 0x00007f9a3460fa10
# 12 0x00007f9a34609fc0
# 13 0x00007f9a34609fc0
# 14 0x00007f9a34609fc0
# 15 0x00007f9a3460a0a2
# 16 0x00007f9a34609fc0
# 17 0x00007f9a3460a0a2
# 18 0x00007f9a34609fc0
# 19 0x00007f9a34609fc0
# 20 0x00007f9a34609fc0
# 21 0x00007f9a3460a0a2
# 22 0x00007f9a34609fc0
# 23 0x00007f9a34609fc0
# 24 0x00007f9a3460a0a2
# 25 0x00007f9a3460a0a2
# 26 0x00007f9a34609fc0
# 27 0x00007f9a3d1073e0
```

GitHub link: https://github.com/apache/incubator-gluten/discussions/9820

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to