Skip to content

Make errors caused by undefined symbols in adapter libraries more visible #2691

Open
@aarongreig

Description

@aarongreig

If a UR entry point is left undefined in an adapter library the loader will fail to load it and quietly behave as if no devices belonging to that adapter are available. In this state you can enable loader logging to get an error message like the following:

<LOADER>[INFO]: failed to load adapter 'unified-runtime/build/lib/libur_adapter_level_zero_v2.so' with error: unified-runtime/build/lib/libur_adapter_level_zero_v2.so: undefined symbol: _ZN2ur10level_zero25urCommandBufferEnqueueExpEP31ur_exp_command_buffer_handle_t_P18ur_queue_handle_t_jPKP18ur_event_handle_t_PS6_

When a situation like this is causing CI fails it isn't currently obvious what's going on, it takes a bit of manual debugging (and knowing about the existence of loader logging) to figure it out. We should take steps to improve visibility of this error condition. One proposed solution is to make sure we're running urinfo with loader logging enabled as an early step in our CI, with the step failing if no devices are available for the adapters being tested.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ci/cdContinuous integration/devlieryloaderLoader related feature/bug

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions