daphne-eu / daphne

DAPHNE: An Open and Extensible System Infrastructure for Integrated Data Analysis Pipelines
Apache License 2.0
67 stars 62 forks source link

InferencePass: InferTypesOpInterface failed on while condition, partial inference is not allowed at this point #900

Open m-birke opened 1 week ago

m-birke commented 1 week ago

In an internal script, I encounter a runtime error regarding boolean condition checking.

The var to_terminate is set to false just one line before.

terminate called after throwing an instance of 'std::runtime_error' what(): InferencePass.cpp:472 -> InferencePass.cpp:169 -> InferTypesOpInterface failed with the following message [ type inference returned an unknown result type for some op, but partial inference is not allowed at this point: daphne.cast ]

      | Source file -> "/.../librdp.daphne":57:4
      | 
      |     while (to_terminate == false) {
      |     ^~~

0 0x00007ffff49d8acf in raise () from /lib64/libc.so.6

1 0x00007ffff49abea5 in abort () from /lib64/libc.so.6

2 0x00007ffff53a1e0b in __gnu_cxx::__verbose_terminate_handler () at ../../../../gcc-13.2.0/libstdc++-v3/libsupc++/vterminate.cc:95

3 0x00007ffff53b15ba in cxxabiv1::terminate (handler=) at ../../../../gcc-13.2.0/libstdc++-v3/libsupc++/eh_terminate.cc:48

4 0x00007ffff53b1625 in std::terminate () at ../../../../gcc-13.2.0/libstdc++-v3/libsupc++/eh_terminate.cc:58

5 0x00007ffff53b1878 in cxxabiv1::cxa_throw (obj=, tinfo=0x7ffff5749160 ,

dest=0x7ffff53c73b0 <std::runtime_error::~runtime_error()>) at ../../../../gcc-13.2.0/libstdc++-v3/libsupc++/eh_throw.cc:98

6 0x0000000001685cfd in InferencePass::runOnOperation() ()

7 0x0000000001ed6095 in mlir::detail::OpToOpPassAdaptor::run(mlir::Pass, mlir::Operation, mlir::AnalysisManager, bool, unsigned int) ()

8 0x0000000001ed66e7 in mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor, mlir::PassInstrumentation::PipelineParentInfo const*) ()

9 0x0000000001edb79c in std::_Function_handler<void (), mlir::failableParallelForEach<gnu_cxx::normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&>(mlir::MLIRContext, gnu_cxx::normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, __gnu_cxx::__normal_iterator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::vector<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo, std::allocator<mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::OpPMInfo> > >, mlir::detail::OpToOpPassAdaptor::runOnOperationAsyncImpl(bool)::$_0&)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()

10 0x0000000001dec8b2 in std::_Function_handler<void (), llvm::ThreadPool::createTaskAndFuture(std::function<void ()>)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()

11 0x0000000003ddbd17 in llvm::ThreadPool::processTasks(llvm::ThreadPoolTaskGroup*) ()

12 0x0000000003ddca03 in void llvm::thread::ThreadProxy<std::tuple<llvm::ThreadPool::grow(int)::$_0> >(void) ()

13 0x00007ffff7ab61ca in start_thread () from /lib64/libpthread.so.0

14 0x00007ffff49c3e73 in clone () from /lib64/libc.so.6