| 319 | | |
| 320 | | |
| 321 | | |
| 322 | | |
| 323 | | |
| 324 | | |
| 325 | | |
| 326 | | |
| 327 | | |
| | 319 | |
| | 320 | == Investigating Issues == |
| | 321 | |
| | 322 | The primary duty is to isolate the cause and report the problem to the author/responsible in the form of a Trac ticket that |
| | 323 | enables the investigator to rapidly reproduce the issue. |
| | 324 | |
| | 325 | While investigating remember to stop the slave to avoid interference and resource competition from additional builds starting ... |
| | 326 | eg if using supervisord : |
| | 327 | {{{ |
| | 328 | [blyth@cms01 dybgaudi]$ supervisorctl |
| | 329 | dybslv RUNNING pid 28651, uptime 1 day, 22:27:01 |
| | 330 | C> stop dybslv |
| | 331 | dybslv: stopped |
| | 332 | }}} |
| | 333 | |
| | 334 | === attach to python nuwa.py process with gdb === |
| | 335 | |
| | 336 | Start the failing test : |
| | 337 | {{{ |
| | 338 | [blyth@cms01 MDC10b]$ nosetests tests/test_mdc10b.py:test_dby0 |
| | 339 | Warning in <TEnvRec::ChangeValue>: duplicate entry <Library.vector<short>=vector.dll> for level 0; ignored |
| | 340 | Run MDC10b.runLED_Muon.FullChain with double-pulsing of LEDs and no muons to produces 50 readouts ... |
| | 341 | }}} |
| | 342 | |
| | 343 | Attach gdb to the process and continue '''c''' : |
| | 344 | {{{ |
| | 345 | [blyth@cms01 dybgaudi]$ gdb `which python` $(pgrep -f $(which nuwa.py)) |
| | 346 | ... |
| | 347 | Loaded symbols for /data/env/local/dyb/trunk/NuWa-trunk/dybgaudi/InstallArea/i686-slc4-gcc34-dbg/lib/libG4DataHelpers.so |
| | 348 | 0xb6687b23 in ParticlePropertySvc::anti (this=0xaa28798, pp=0xaa66a98) at ../src/ParticlePropertySvc/ParticlePropertySvc.cpp:445 |
| | 349 | 445 const ParticleProperty* ap = *it ; |
| | 350 | (gdb) |
| | 351 | }}} |
| | 352 | |
| | 353 | Unfortunately this approach sometimes gets '''Killed''' for gdb '''Out of Memory'''. |
| | 354 | |
| | 355 | === running the command under gdb === |
| | 356 | |
| | 357 | Grab the command from the source of the test(if simple) or process table : |
| | 358 | {{{ |
| | 359 | ps --no-headers -o command -p $(pgrep -f $(which nuwa.py)) > cmd |
| | 360 | }}} |
| | 361 | |
| | 362 | Edit the cmd file, fixup any missing quotes and prefixing with gdb command : '''set args''' |
| | 363 | |
| | 364 | Allowing : |
| | 365 | {{{ |
| | 366 | [blyth@cms01 dybgaudi]$ gdb `which python` -x cmd |
| | 367 | GNU gdb Red Hat Linux (6.3.0.0-1.162.el4rh) |
| | 368 | Copyright 2004 Free Software Foundation, Inc. |
| | 369 | ... |
| | 370 | }}} |
| | 371 | |
| | 372 | |
| | 373 | Capture the backtrace '''bt''' when meet problems : |
| | 374 | {{{ |
| | 375 | ElecSimProc INFO Processing hit collections |
| | 376 | ToolSvc.EsIdealFeeTool INFO Processing 73 pmt pulses. |
| | 377 | ToolSvc.TsMultTriggerTool INFO Max multiplicity for DayaBayAD1 is 44 |
| | 378 | *** glibc detected *** malloc(): memory corruption: 0x0fe95d10 *** |
| | 379 | |
| | 380 | Program received signal SIGABRT, Aborted. |
| | 381 | [Switching to Thread -1208318272 (LWP 17858)] |
| | 382 | 0x00a1e7a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 |
| | 383 | (gdb) |
| | 384 | |
| | 385 | (gdb) bt |
| | 386 | #0 0x00a1e7a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 |
| | 387 | #1 0x00a5f915 in raise () from /lib/tls/libc.so.6 |
| | 388 | #2 0x00a61379 in abort () from /lib/tls/libc.so.6 |
| | 389 | #3 0x00a93e1a in __libc_message () from /lib/tls/libc.so.6 |
| | 390 | #4 0x00a9b473 in _int_malloc () from /lib/tls/libc.so.6 |
| | 391 | #5 0x00a9d0f1 in malloc () from /lib/tls/libc.so.6 |
| | 392 | #6 0x04fa911e in operator new () from /usr/lib/libstdc++.so.6 |
| | 393 | #7 0x032762ca in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<char const* const, DybDaq::FeeTraits*> > >::allocate (this=0x32798c4, __n=1) at /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ext/new_allocator.h:81 |
| | 394 | #8 0x03276232 in std::_Rb_tree<char const*, std::pair<char const* const, DybDaq::FeeTraits*>, std::_Select1st<std::pair<char const* const, DybDaq::FeeTraits*> >, std::less<char const*>, std::allocator<std::pair<char const* const, DybDaq::FeeTraits*> > >::_M_get_node (this=0x32798c4) at /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tree.h:356 |
| | 395 | #9 0x03276159 in std::_Rb_tree<char const*, std::pair<char const* const, DybDaq::FeeTraits*>, std::_Select1st<std::pair<char const* const, DybDaq::FeeTraits*> >, std::less<char const*>, std::allocator<std::pair<char const* const, DybDaq::FeeTraits*> > >::_M_create_node (this=0x32798c4, __x=@0xbfe81c88) at /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tree.h:365 |
| | 396 | #10 0x03275ce5 in std::_Rb_tree<char const*, std::pair<char const* const, DybDaq::FeeTraits*>, std::_Select1st<std::pair<char const* const, DybDaq::FeeTraits*> >, std::less<char const*>, std::allocator<std::pair<char const* const, DybDaq::FeeTraits*> > >::_M_insert (this=0x32798c4, __x=0x0, __p=0xfe95b88, __v=@0xbfe81c88) at /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tree.h:809 |
| | 397 | #11 0x03275ac9 in std::_Rb_tree<char const*, std::pair<char const* const, DybDaq::FeeTraits*>, std::_Select1st<std::pair<char const* const, DybDaq::FeeTraits*> >, std::less<char const*>, std::allocator<std::pair<char const* const, DybDaq::FeeTraits*> > >::insert_unique (this=0x32798c4, __v=@0xbfe81c88) at /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tree.h:929 |
| | 398 | #12 0x0327583f in std::map<char const*, DybDaq::FeeTraits*, std::less<char const*>, std::allocator<std::pair<char const* const, DybDaq::FeeTraits*> > >::insert (this=0x32798c4, __x=@0xbfe81c88) |
| | 399 | at /usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_map.h:360 |
| | 400 | #13 0x032755cf in DybDaq::FeeTraits::defaultTraits () at ../src/FeeTraits.cc:52 |
| | 401 | #14 0xb5880e3c in DayaBay::DaqReadoutPmtCrate::channel (this=0xfe97a80, channelId=@0xbfe81dc0) at ../src/DaqReadoutPmtCrate.cc:170 |
| | 402 | #15 0xb5884bd5 in DayaBay::ReadoutPmtCrate::daqReadout (this=0xfe97780, run=0, event=0) at ../src/ReadoutPmtCrate.cc:77 |
| | 403 | #16 0xaeb14500 in SingleLoader::execute (this=0xab6ec28) at ../src/SingleLoader.cc:112 |
| | 404 | #17 0x03f95d2c in Algorithm::sysExecute (this=0xab6ec28) at ../src/Lib/Algorithm.cpp:558 |
| | 405 | #18 0xaeb1f6fc in DybAlgorithm<DayaBay::ReadoutHeader>::sysExecute (this=0xab6ec28) at /data/env/local/dyb/trunk/NuWa-trunk/dybgaudi/InstallArea/include/DybAlg/DybAlgorithmImp.h:59 |
| | 406 | #19 0x01825d45 in GaudiSequencer::execute (this=0xab6bc00) at ../src/lib/GaudiSequencer.cpp:100 |
| | 407 | #20 0xb58d3823 in Stage::nextElement (this=0xab6ae78, pIStgData=@0xbfe8248c, erase=true) at ../src/Stage.cc:48 |
| | 408 | #21 0xb58c0a4e in Sim15::execute (this=0xaae7608) at ../src/Sim15.cc:121 |
| | 409 | Killed |
| | 410 | }}} |
| | 411 | |
| | 412 | |
| | 413 | Report findings in Trac tickets such as #565 |
| | 414 | |
| | 415 | |
| | 416 | |
| | 417 | |
| | 418 | |
| | 419 | |
| | 420 | |
| | 421 | |
| | 422 | |
| | 423 | |
| | 424 | |
| | 425 | |
| | 426 | |
| | 427 | |
| | 428 | |
| | 429 | |