https://bugs.linaro.org/show_bug.cgi?id=2798

            Bug ID: 2798
           Summary: ODP random and other crypto functions (possibly) not
                    thread safe?
           Product: OpenDataPlane - linux- generic reference
           Version: unspecified
          Hardware: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: ---
         Component: Crypto
          Assignee: nikhil.agar...@linaro.org
          Reporter: christophe.mil...@linaro.org
                CC: lng-odp@lists.linaro.org
  Target Milestone: ---

I have noticed that (rarely enough to be a pain to catch) odp_shm and
odpdrv_shm sress test segfaults.

Segfault can of course be due to very different bug, but still the
location of the segfault may tell something:
Here follows the baktrace:
Thread 14 "drvshmem_main" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffc3f2a700 (LWP 40073)]
0x00007ffff73e59f8 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
(gdb) bt
#0  0x00007ffff73e59f8 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#1  0xca62c1d6ca62c1d6 in ?? ()
#2  0xca62c1d6ca62c1d6 in ?? ()
#3  0xca62c1d6ca62c1d6 in ?? ()
#4  0xca62c1d6ca62c1d6 in ?? ()
#5  0xca62c1d6ca62c1d6 in ?? ()
#6  0xca62c1d6ca62c1d6 in ?? ()
#7  0xca62c1d6ca62c1d6 in ?? ()
#8  0xca62c1d6ca62c1d6 in ?? ()
#9  0x00000000000003e8 in ?? ()
#10 0x0000000000000068 in ?? ()
#11 0x00007ffff754a6b0 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#12 0x00007ffff73dae78 in CRYPTO_malloc () from
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#13 0x00007ffff73e29c8 in SHA1_Update () from
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#14 0x00007ffff74931c0 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#15 0x00007ffff74935b5 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#16 0x000000000040d038 in odp_random_data (buf=0x7fffc3f17ba3 "",
len=5, kind=ODP_RANDOM_BASIC) at odp_crypto.c:1015
#17 0x0000000000407367 in run_test_stress (arg=0x7fffffffdc58) at
drvshmem.c:599
#18 0x000000000040a6ae in odpthread_run_start_routine (arg=0x665890
<thread_tbl>) at linux.c:275
#19 0x00007ffff6d146ba in start_thread (arg=0x7fffc3f2a700) at
pthread_create.c:333
#20 0x00007ffff6a4a82d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:109

That triggered the following question:
The ODP threads used to stress the memory allocator during the test
use odp_random_data() to generate random allocation sizes (and a few
other random things). My assumption was that being an ODP basic block
it would be odpthread safe (right now odp_thread = pthread). Is it?
https://wiki.openssl.org/index.php/Libcrypto_API#Thread_Safety says
"OpenSSL currently is thread-NOT-safe by default"...

Are we hitting this limitation here?

Actual Results: Segfaults

Expected Results: No Segfault!

Additional Information:

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to