Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[UBSAN] Legion::Internal::Runtime::find_or_request_equivalence_set(): Downcast of address ... which does not point to an object of type 'EquivalenceSet' #1830

Open
Jacobfaib opened this issue Feb 10, 2025 · 1 comment

Comments

@Jacobfaib
Copy link
Contributor

Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/legion/runtime.cc:30647:14: runtime error: downcast of address 0x61b000020680 which does not point to an object of type 'EquivalenceSet'
0x61b000020680: note: object has invalid vptr
 0d 00 00 00  be be be be be be be be  be be be be be be be be  be be be be be be be be  be be be be
              ^~~~~~~~~~~~~~~~~~~~~~~
              invalid vptr
    #0 0x134ce0528 in Legion::Internal::Runtime::find_or_request_equivalence_set(unsigned long long, Legion::Internal::RtEvent&) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/legion/runtime.cc:30647:14
    #1 0x1316a3e48 in Legion::Internal::InnerContext::handle_compute_equivalence_sets_response(Legion::Deserializer&, Legion::Internal::Runtime*) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/legion/legion_context.cc:2555:20
    #2 0x134b34244 in Legion::Internal::Runtime::handle_compute_equivalence_sets_response(Legion::Deserializer&) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/legion/runtime.cc:28935:7
    #3 0x134b1e8c8 in Legion::Internal::VirtualChannel::handle_messages(unsigned int, Legion::Internal::Runtime*, unsigned int, unsigned char const*, unsigned long) const /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/legion/runtime.cc:15970:24
    #4 0x134b1820c in Legion::Internal::VirtualChannel::process_message(void const*, unsigned long, Legion::Internal::Runtime*, unsigned int) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/legion/runtime.cc:14830:13
    #5 0x134b4a3c0 in Legion::Internal::MessageManager::receive_message(void const*, unsigned long) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/legion/runtime.cc:16630:25
    #6 0x134ccaaac in Legion::Internal::Runtime::process_message_task(void const*, unsigned long) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/legion/runtime.cc:30165:31
    #7 0x134d7408c in Legion::Internal::Runtime::legion_runtime_task(void const*, unsigned long, void const*, unsigned long, Realm::Processor) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/legion/runtime.cc:35667:22
    #8 0x1470f3c9c in Realm::LocalTaskProcessor::execute_task(unsigned int, Realm::ByteArrayRef const&) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/realm/proc_impl.cc:1176:5
    #9 0x1474f8894 in Realm::Task::execute_on_processor(Realm::Processor) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/realm/tasks.cc:326:40
    #10 0x147528664 in Realm::KernelThreadTaskScheduler::execute_task(Realm::Task*) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/realm/tasks.cc:1421:11
    #11 0x14751d98c in Realm::ThreadedTaskScheduler::scheduler_loop() /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/realm/tasks.cc:1160:6
    #12 0x147522824 in Realm::ThreadedTaskScheduler::scheduler_loop_wlock() /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/realm/tasks.cc:1272:5
    #13 0x1475abbc8 in void Realm::Thread::thread_entry_wrapper<Realm::ThreadedTaskScheduler, &Realm::ThreadedTaskScheduler::scheduler_loop_wlock()>(void*) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/realm/threads.inl:97:5
    #14 0x1475c66b8 in Realm::KernelThread::pthread_entry(void*) /Users/jfaibussowit/soft/nv/legate.core.internal/arch-darwin-debug/cmake_build/_deps/legion-src/runtime/realm/threads.cc:853:5
    #15 0x111041858 in asan_thread_start(void*) (/Library/Developer/CommandLineTools/usr/lib/clang/16/lib/darwin/libclang_rt.asan_osx_dynamic.dylib:arm64e+0x51858)
    #16 0x199b482e0 in _pthread_start (/usr/lib/system/libsystem_pthread.dylib:arm64e+0x72e0)
    #17 0x199b430f8 in thread_start (/usr/lib/system/libsystem_pthread.dylib:arm64e+0x20f8)
@lightsighter
Copy link
Contributor

This is a false positive. Legion casts pointers before the allocation has been in-place constructed because it knows it won't refer to the pointer by the actual type until the corresponding Realm event has triggered. It always does this with a static_cast to ensure that it is never checked dynamically.

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

No branches or pull requests

2 participants