clvk icon indicating copy to clipboard operation
clvk copied to clipboard

segfault running CTS tests

Open rjodinchr opened this issue 3 years ago • 0 comments

buffers_buffer_migrate
buffers_buffer_read_array_barrier_char
buffers_buffer_read_array_barrier_float
buffers_buffer_read_array_barrier_int
buffers_buffer_read_array_barrier_long
buffers_buffer_read_array_barrier_short
buffers_buffer_read_array_barrier_uchar
buffers_buffer_read_array_barrier_uint
buffers_buffer_read_array_barrier_ulong
buffers_buffer_read_array_barrier_ushort
buffers_image_migrate
events_event_enqueue_barrier_with_event_list
events_event_enqueue_marker
events_event_enqueue_marker_with_event_list

All of them are now failing with this error:

queue.hpp:355: virtual const std::vector<cvk_mem *> cvk_command::memory_objects() const: Assertion `false && "Should never be called"' failed.

Here is the backtrace from buffer buffer_migrate:

$ lldb -o r -- test_buffers buffer_migrate
(lldb) target create "test_buffers"
Current executable set to 'test_buffers' (x86_64).
(lldb) settings set -- target.run-args  "buffer_migrate"
(lldb) r
 Initializing random seed to 0.
Requesting Default device based on command line for platform index 0 and device index 0
Compute Device Name = SwiftShader Device (LLVM 10.0.0), Compute Device Vendor = FIXME, Compute Device Version = OpenCL 3.0 CLVK on Vulkan v1.3.0 driver 20971520, CL C Version = OpenCL C 1.2 CLVK on Vulkan v1.3.0 driver 20971520
Device latest conformance version passed: FIXME
Supports single precision denormals: NO
sizeof( void*) = 8  (host)
sizeof( void*) = 4  (device)
buffer_migrate...
test_buffers: /usr/local/google/home/rjodin/work/clvk/src/queue.hpp:355: virtual const std::vector<cvk_mem*> cvk_command::memory_objects() const: Assertion `false && "Should never be called"' failed.
Process 1117297 stopped
* thread #1, name = 'test_buffers', stop reason = hit program assert
    frame #4: 0x00007fffedbbf3f4 libOpenCL.so.1`cvk_command::memory_objects(this=0x00005555556a01b0) const at queue.hpp:355:9
   352      const std::vector<cvk_event*>& dependencies() const { return m_event_deps; }
   353
   354      virtual const std::vector<cvk_mem*> memory_objects() const {
-> 355          CVK_ASSERT(false && "Should never be called");
   356          return {};
   357      }
   358
Process 1117297 launched: '/usr/local/google/home/rjodin/work/clvk/build/conformance/test_buffers' (x86_64)
(lldb) bt
* thread #1, name = 'test_buffers', stop reason = hit program assert
    frame #0: 0x00007fffecfa18a1 libc.so.6`__GI_raise(sig=<unavailable>) at raise.c:50:1
    frame #1: 0x00007fffecf8b546 libc.so.6`__GI_abort at abort.c:79:7
    frame #2: 0x00007fffecf8b42f libc.so.6`__assert_fail_base(fmt=<unavailable>, assertion=<unavailable>, file=<unavailable>, line=<unavailable>, function=<unavailable>) at assert.c:92:3
    frame #3: 0x00007fffecf9a222 libc.so.6`__GI___assert_fail(assertion=<unavailable>, file=<unavailable>, line=<unavailable>, function=<unavailable>) at assert.c:101:3
  * frame #4: 0x00007fffedbbf3f4 libOpenCL.so.1`cvk_command::memory_objects(this=0x00005555556a01b0) const at queue.hpp:355:9
    frame #5: 0x00007fffedc29fd3 libOpenCL.so.1`cvk_command_queue::satisfy_data_dependencies(this=0x0000555555699770, cmd=0x00005555556a01b0) at queue.cpp:67:41
    frame #6: 0x00007fffedc2a264 libOpenCL.so.1`cvk_command_queue::enqueue_command(this=0x0000555555699770, cmd=0x00005555556a01b0, event=0x0000000000000000) at queue.cpp:105:36
    frame #7: 0x00007fffedc2a539 libOpenCL.so.1`cvk_command_queue::enqueue_command_with_deps(this=0x0000555555699770, cmd=0x00005555556a01b0, num_dep_events=0, dep_events=0x0000000000000000, event=0x0000000000000000) at queue.cpp:168:27
    frame #8: 0x00007fffedbaf733 libOpenCL.so.1`::clEnqueueMigrateMemObjects(cq=0x0000555555699788, num_mem_objects=1, mem_objects=0x000055555569b1a0, flags=0, num_events_in_wait_list=0, event_wait_list=0x0000000000000000, event=0x0000000000000000) at api.cpp:1799:52
    frame #9: 0x00005555555723f0 test_buffers`::migrateMemObject(migrate=MIGRATE_PREFERRED, queues=0x000055555569b120, mem_objects=0x000055555569b1a0, num_devices=1, flags=0x000055555569b140, d=0x0000555555699d70) at test_buffer_migrate.cpp:74:42
    frame #10: 0x0000555555572ec0 test_buffers`test_buffer_migrate(deviceID=0x0000555555627a88, context=0x000055555570c950, queue=0x0000555555699788, num_elements=16384) at test_buffer_migrate.cpp:253:27
    frame #11: 0x000055555558bf21 test_buffers`callSingleTestFunction(test=test_definition @ 0x00007fffffffd770, deviceToUse=0x0000555555627a88, forceNoContextCreation=0, numElementsToUse=16384, queueProps=0) at testHarness.cpp:838:28
    frame #12: 0x000055555558bb8c test_buffers`callTestFunctions(testList=0x00005555555be340, selectedTestList="", resultTestList=0x00005555556995f0, testNum=93, deviceToUse=0x0000555555627a88, forceNoContextCreation=0, numElementsToUse=16384, queueProps=0) at testHarness.cpp:749:55
    frame #13: 0x000055555558ba24 test_buffers`parseAndCallCommandLineTests(argc=2, argv=0x00007fffffffdf18, device=0x0000555555627a88, testNum=93, testList=0x00005555555be340, forceNoContextCreation=0, queueProps=0, num_elements=16384) at testHarness.cpp:703:26
    frame #14: 0x000055555558b2f4 test_buffers`runTestHarnessWithCheck(argc=2, argv=0x00007fffffffdf18, testNum=93, testList=0x00005555555be340, forceNoContextCreation=0, queueProps=0, deviceCheckFn=0x0000000000000000)(_cl_device_id*)) at testHarness.cpp:518:45
    frame #15: 0x000055555558a150 test_buffers`runTestHarness(argc=2, argv=0x00007fffffffdf18, testNum=93, testList=0x00005555555be340, forceNoContextCreation=0, queueProps=0) at testHarness.cpp:67:35
    frame #16: 0x000055555555cd31 test_buffers`main(argc=2, argv=0x00007fffffffdf18) at main.cpp:144:26
    frame #17: 0x00007fffecf8c7fd libc.so.6`__libc_start_main(main=(test_buffers`main at main.cpp:143:1), argc=2, argv=0x00007fffffffdf18, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007fffffffdf08) at libc-start.c:332:16
    frame #18: 0x000055555555cc3a test_buffers`_start + 42

I think we are missing something in cvk_command_deps. Maybe somewhere else, I did not check them all.

rjodinchr avatar Aug 08 '22 18:08 rjodinchr