vtune hangs with strace in getdents64(7, /* 0 entries */, 32768) = 0

vtune hangs with strace in getdents64(7, /* 0 entries */, 32768) = 0

amplxe-cl is hanging when I start any analysis. gdb and strace shows getdents64 function call. 

strace shows below output

getdents64(7, /* 0 entries */, 32768)   = 0
getdents64(7, /* 0 entries */, 32768)   = 0
getdents64(7, /* 0 entries */, 32768)   = 0
getdents64(7, /* 0 entries */, 32768)   = 0
getdents64(7, /* 0 entries */, 32768)   = 0
getdents64(7, /* 0 entries */, 32768)   = 0
getdents64(7, /* 0 entries */, 32768)   = 0
getdents64(7, /* 0 entries */, 32768)   = 0
getdents64(7, /* 0 entries */, 32768)   = 0

any idea what is the issue? It used to work before with no issues.

 

Thanks and Regards,

C Jaiprakash

 

 

6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Can you post gdb dump file?

Below is the command I ran

amplxe-cl -collect snb-general-exploration -knob collect-memory-bandwidth=true --duration unlimited

I dont get any message when this is executed. 

Below is top command output

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
20178 root      20   0  261m  26m  20m R  100  0.0   1:17.57 amplxe-cl
20468 root      20   0 17368 1708  976 R    0  0.0   0:00.25 top

I attached gdb to the PID 20178, below is backtrace shown in gdb

#0  0x00007ffff0eb8dea in __getdents64 () from /lib64/libc.so.6
#1  0x00007ffff0eb88f7 in readdir_r () from /lib64/libc.so.6
#2  0x00007ffff18fb724 in boost::filesystem2::detail::dir_itr_increment(void*&, void*&, std::string&, boost::filesystem2::file_status&, boost::filesystem2::file_status&) ()
   from /var/opt/teradata/intel/vtune_amplifier_xe_2013/bin64/../lib64/libamplxe_boost_filesystem_1.47.so
#3  0x00007ffff772fd27 in boost::filesystem2::basic_directory_iterator<boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits> >::increment() ()
   from /var/opt/teradata/intel/vtune_amplifier_xe_2013/bin64/../lib64/libamplxe_cctrl_core_2.29.so
#4  0x00007ffff2935ef4 in cfgmgr2::MessageCatalogSource::loadMessageCatalog(std::list<boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits>, std::allocator<boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits> > > const&, std::string const&) const ()
   from /var/opt/teradata/intel/vtune_amplifier_xe_2013/bin64/../lib64/libamplxe_cfgmgr_2.15.so
#5  0x00007ffff29352b6 in cfgmgr2::MessageCatalogSource::catalog(std::string const&) const ()
   from /var/opt/teradata/intel/vtune_amplifier_xe_2013/bin64/../lib64/libamplxe_cfgmgr_2.15.so
#6  0x00007ffff2937175 in cfgmgr2::getMessageCatalog(std::string const&) ()
   from /var/opt/teradata/intel/vtune_amplifier_xe_2013/bin64/../lib64/libamplxe_cfgmgr_2.15.so
#7  0x00007ffff6e2a8ef in dicerengine2::internal::EngineUtil::getMessageCatalog() ()
   from /var/opt/teradata/intel/vtune_amplifier_xe_2013/bin64/../lib64/libamplxe_dicerengine_core_2.13.so
#8  0x00007ffff6e2a45e in dicerengine2::internal::EngineUtil::translate(CPIL_2_14::strings::ustring8 const&, CPIL_2_14::types::variant const&, CPIL_2_14::types::variant const&, CPIL_2_14::types::variant const&) ()
   from /var/opt/teradata/intel/vtune_amplifier_xe_2013/bin64/../lib64/libamplxe_dicerengine_core_2.13.so
#9  0x00007ffff71eedc4 in dicerengine2::CliManager::initActionDescriptions(clpt_3_3::IParser*) const ()
   from /var/opt/teradata/intel/vtune_amplifier_xe_2013/bin64/../lib64/libamplxe_dicerengine_climgr_2.13.so
#10 0x000000000040bc8d in ?? ()
#11 0x000000000041dab7 in ?? ()
#12 0x00007ffff0e35be6 in __libc_start_main () from /lib64/libc.so.6
#13 0x0000000000406e8a in ?? ()
#14 0x00007fffffffde28 in ?? ()
#15 0x000000000000001c in ?? ()
#16 0x0000000000000007 in ?? ()
#17 0x00007fffffffe229 in ?? ()
#18 0x00007fffffffe233 in ?? ()
#19 0x00007fffffffe23c in ?? ()
#20 0x00007fffffffe254 in ?? ()
#21 0x00007fffffffe25a in ?? ()
#22 0x00007fffffffe278 in ?? ()
#23 0x00007fffffffe283 in ?? ()
#24 0x0000000000000000 in ?? ()

 

Thanks

 

My uneducated guess is this call  could be responsible for the hang.The hang itself could be originating deep inside the called function(s).

#2  0x00007ffff18fb724 in boost::filesystem2::detail::dir_itr_increment(void*&, void*&, std::string&, boost::filesystem2::file_status&, boost::filesystem2::file_status&) ()

I suppose that dir_itr_increment () is calling readdir_r () which in turn calls  __getdents64 () and code execution is stuck either in __getdents64() or deeper in the next call chain.

By doing a little research on the web it seems that your hang description could be related to deadlock condition.

It seems that this issue is more Linux kernel related.

Leave a Comment

Please sign in to add a comment. Not a member? Join today