Skip to content

[Bug]: RTTI failures at runtime when built with CLANG complier #27855

Open
@vraghavulu

Description

@vraghavulu

OpenVINO Version

Openvino master branch

Operating System

Android System

Device used for inference

GPU

Framework

None

Model used

TFlite

Issue description

When built with CLANG complier (Android NDK tool chains), at run time many RTTI failures are observed.

Step-by-step reproduction

Build it following the instruction https://github.com/openvinotoolkit/openvino/blob/master/docs/dev/build_android.md
a. set ANDROID_ABI = x86_64
b. Additionally, one can use this build flags -DCMAKE_CXX_FLAGS="-fsanitize=address -fno-omit-frame-pointer"
and perform the build.

After build is completed, when benchmark_app is ran with GPU device it leads to reporting RTTI issue.

Relevant log output

Runtime logs without RTTI tracing: 

1|base_aaos:/data/local/tmp/openvino # LD_LIBRARY_PATH=. ./benchmark_app -m 000.tflite -d GPU -hint latency
[Step 1/11] Parsing and validating input arguments
[ INFO ] Parsing input parameters
[Step 2/11] Loading OpenVINO Runtime
[ INFO ] OpenVINO:
[ INFO ] Build ................................. 2024.4.1-16618-643f23d1318
[ INFO ]
[ INFO ] Device info:
GPU_Debug: ocl_device.cpp:293:init_device_info: GPU version: 12.71.4 with separate cache
[ INFO ] GPU
[ INFO ] Build ................................. 2024.4.1-16618-643f23d1318
[ INFO ]
[ INFO ]
[Step 3/11] Setting device configuration
[Step 4/11] Reading model files
[ INFO ] Loading model files
[ INFO ] Read model took 1081.21 ms
[ INFO ] Original model I/O parameters:
[ INFO ] Network inputs:
[ INFO ]     input_1 (node: input_1) : f32 / [...] / [1,224,224,3]
[ INFO ] Network outputs:
[ INFO ]     Identity (node: 35) : f32 / [...] / [1,1000]
[Step 5/11] Resizing model to match image sizes and given batch
[ WARNING ] input_1: layout is not set explicitly, so it is defaulted to NHWC. It is STRONGLY recommended to set layout manually to avoid further issues.
[Step 6/11] Configuring input of the model
[ INFO ] Model batch size: 1
[ INFO ] Network inputs:
[ INFO ]     input_1 (node: input_1) : u8 / [N,H,W,C] / [1,224,224,3]
[ INFO ] Network outputs:
[ INFO ]     Identity (node: 35) : f32 / [...] / [1,1000]
[Step 7/11] Loading the model to the device
[ ERROR ] Exception from src/inference/src/cpp/core.cpp:107:
Exception from src/inference/src/dev/plugin.cpp:53:
Exception from src/plugins/intel_gpu/src/plugin/program_builder.cpp:252:
Operation: Convolution_68 of type Convolution(opset1) is not supported


Run time logs of RTTI errors:
/home/celadon/openvino/openvino-android/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/shared_ptr.h:279:23: runtime error: member call on address 0x75aee5a1f2d0 which does not point to an object of type 'std::__shared_ptr_emplace<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter *>, std::allocator<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter *>>>'
0x75aee5a1f2d0: note: object is of type 'std::__ndk1::__shared_ptr_emplace<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter*>, std::__ndk1::allocator<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter*>>>'
 00 00 00 00  40 3f 52 bf ad 75 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'std::__ndk1::__shared_ptr_emplace<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter*>, std::__ndk1::allocator<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter*>>>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/celadon/openvino/openvino-android/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/shared_ptr.h:279:23 in 
/home/celadon/openvino/openvino-android/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/shared_ptr.h:297:42: runtime error: member access within address 0x75aee5a1f2d0 which does not point to an object of type 'std::__shared_ptr_emplace<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter *>, std::allocator<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter *>>>'
0x75aee5a1f2d0: note: object is of type 'std::__ndk1::__shared_ptr_emplace<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter*>, std::__ndk1::allocator<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter*>>>'
 00 00 00 00  40 3f 52 bf ad 75 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'std::__ndk1::__shared_ptr_emplace<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter*>, std::__ndk1::allocator<ov::threading::ThreadLocal<ov::intel_cpu::jit_uni_segfault_detector_emitter*>>>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/celadon/openvino/openvino-android/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__memory/shared_ptr.h:297:42 in

Issue submission checklist

  • I'm reporting an issue. It's not a question.
  • I checked the problem with the documentation, FAQ, open issues, Stack Overflow, etc., and have not found a solution.
  • There is reproducer code and related data files such as images, videos, models, etc.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions