Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.

Tbb container free causing segfault

Kaiyuan_Z_
Beginner
642 Views

Hi,

We are using the Intel® TBB concurrent container concurrent_unordered_map (as an outer level) and concurrent_vector (as the inner level) to create a hashmap, allowing concurrent fetching and growth. However, when using large amount of memory (>500G, the Linux machine has ~1T RAM space), the free operation brings segfault as follows:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffdf5b5cc75 in __TBB_machine_cmpswp1 (this=0x7ffdf4448000,
    objectToFree=0x7ffdf4449100)
    at ../../include/tbb/machine/linux_intel64.h:74
74      ../../include/tbb/machine/linux_intel64.h: No such file or directory.
        in ../../include/tbb/machine/linux_intel64.h

Here are the backtrace information:

#0  0x00007ffdf5b5cc75 in __TBB_machine_cmpswp1 (this=0x7ffdf4448000,
    objectToFree=0x7ffdf4449100)
    at ../../include/tbb/machine/linux_intel64.h:74
#1  __TBB_TryLockByte (this=0x7ffdf4448000, objectToFree=0x7ffdf4449100)
    at ../../include/tbb/tbb_machine.h:903
#2  __TBB_LockByte (this=0x7ffdf4448000, objectToFree=0x7ffdf4449100)
    at ../../include/tbb/tbb_machine.h:910
#3  scoped_lock (this=0x7ffdf4448000, objectToFree=0x7ffdf4449100)
    at ../../src/tbbmalloc/Customize.h:66
#4  rml::internal::Block::freePublicObject (this=0x7ffdf4448000,
    objectToFree=0x7ffdf4449100) at ../../src/tbbmalloc/frontend.cpp:1380
#5  0x00007ffdf5b5f100 in freeSmallObject (object=0x7ffdf4448000)
    at ../../src/tbbmalloc/frontend.cpp:2467
#6  internalPoolFree (object=0x7ffdf4448000)
    at ../../src/tbbmalloc/frontend.cpp:2568
#7  internalFree (object=0x7ffdf4448000)
    at ../../src/tbbmalloc/frontend.cpp:2591
#8  scalable_free (object=0x7ffdf4448000)
    at ../../src/tbbmalloc/frontend.cpp:2839

Note that everything is normal (the above segfault does not appear) with smaller memory usage (<500G). Is there any particular (possible) issue causing this kind of problems? Or it's due to the usage of elder version?

0 Kudos
3 Replies
Maksim_D_Intel
Employee
642 Views

Hello

Could you please specify version of the TBB library.
You can get it from library file with next command:
  strings libtbb.so.2 | grep TBB:

0 Kudos
Kaiyuan_Z_
Beginner
642 Views

The intel compiler version is 16.0.1 with TBB version 4.4.1.

Maybe I should first try later version and come back.

Maksim D. (Intel) wrote:

Hello

Could you please specify version of the TBB library.
You can get it from library file with next command:
  strings libtbb.so.2 | grep TBB:

0 Kudos
Kaiyuan_Z_
Beginner
642 Views

The bug is fixed with higher version of TBB.

Kaiyuan Z. wrote:

The intel compiler version is 16.0.1 with TBB version 4.4.1.

Maybe I should first try later version and come back.

Quote:

Maksim D. (Intel) wrote:

 

Hello

Could you please specify version of the TBB library.
You can get it from library file with next command:
  strings libtbb.so.2 | grep TBB:

 

 

0 Kudos
Reply