Boost C++ Libraries: Ticket #1417: Regresson tests hang in Darwin (Tiger) https://svn.boost.org/trac10/ticket/1417 <p> The following is the point in bjam.log at which the regression sequence hangs (0% cpu) in as on this Intel <a class="missing wiki">MacBook</a> Pro, i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5465) </p> <p> The command that I used to invoke the regression was </p> <pre class="wiki">./run.py --runner=jrp-darwin --comment=comment.html --toolsets=darwin --bjam-too lset=darwin --pjl-toolset=darwin </pre><p> The user-config.jam file that I needed was: </p> <pre class="wiki"># Compiler configuration using darwin ; # Python configuration using python : 2.5 : /System/Library/Frameworks/Python.framework/Versions/2.5 ; </pre><p> The hang point: </p> <pre class="wiki">/bin.v2/libs/python/build/darwin/debug/arg_to_python_base.o" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug/iterator.o" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug/stl_iterator.o" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug/object_protocol.o" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug/object_operators.o" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug/wrapper.o" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug/import.o" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug/exec.o" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug/function_doc_signature.o" -lpython2.5 -g darwin.link.dll /Users/jrp/boost/regression/results/boost/bin.v2/libs/parameter/test/python_test.test/darwin/debug/python_test_ext.so g++ -dynamiclib -L"/System/Library/Frameworks/Python.framework/Versions/2.5/lib" -L"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config" -o "/Users/jrp/boost/regression/results/boost/bin.v2/libs/parameter/test/python_test.test/darwin/debug/python_test_ext.so" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/parameter/test/python_test.test/darwin/debug/python_test.o" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug/libboost_python-d-1_35.dylib" -lpython2.5 -g </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/1417 Trac 1.4.3 jrp@… Tue, 06 Nov 2007 22:06:43 GMT <link>https://svn.boost.org/trac10/ticket/1417#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1417#comment:1</guid> <description> <p> Hmmm. The tests do eventually time out -- capture output fails: </p> <pre class="wiki"> g++ -dynamiclib -L"/System/Library/Frameworks/Python.framework/Versions/2.5/lib" -L"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config" -o "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug/args_ext.so" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug/args.o" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug/libboost_python-d-1_35.dylib" -lpython2.5 -g capture-output /Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug/args DYLD_LIBRARY_PATH=/System/Library/Frameworks/Python.framework/Versions/2.5/lib:/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config:/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug:/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug:$DYLD_LIBRARY_PATH export DYLD_LIBRARY_PATH PYTHONPATH=/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug export PYTHONPATH /System/Library/Frameworks/Python.framework/Versions/2.5/bin/python "../libs/python/test/args.py" &gt; "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug/args.output" 2&gt;&amp;1 status=$? echo &gt;&gt; "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug/args.output" echo EXIT STATUS: $status &gt;&gt; "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug/args.output" if test $status -eq 0 ; then cp "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug/args.output" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug/args" fi verbose=0 if test $status -ne 0 ; then verbose=1 fi if test $verbose -eq 1 ; then echo ====== BEGIN OUTPUT ====== cat "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug/args.output" echo ====== END OUTPUT ====== fi exit $status 300 second time limit exceeded ...failed capture-output /Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/args.test/darwin/debug/args... MkDir1 /Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/raw_ctor.test mkdir "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/raw_ctor.test" MkDir1 /Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/raw_ctor.test/darwin mkdir "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/raw_ctor.test/darwin" MkDir1 /Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/raw_ctor.test/darwin/debug mkdir "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/raw_ctor.test/darwin/debug" darwin.compile.c++ /Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/raw_ctor.test/darwin/debug/raw_ctor.o "g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -fPIC -dynamic -Wno-long-double -no-cpp-precomp -DBOOST_ALL_NO_LIB=1 -I".." -I"/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5" -c -o "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/raw_ctor.test/darwin/debug/raw_ctor.o" "../libs/python/test/raw_ctor.cpp" darwin.link.dll /Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/raw_ctor.test/darwin/debug/raw_ctor_ext.so g++ -dynamiclib -L"/System/Library/Frameworks/Python.framework/Versions/2.5/lib" -L"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/config" -o "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/raw_ctor.test/darwin/debug/raw_ctor_ext.so" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/test/raw_ctor.test/darwin/debug/raw_ctor.o" "/Users/jrp/boost/regression/results/boost/bin.v2/libs/python/build/darwin/debug/libboost_python-d-1_35.dylib" -lpython2.5 -g </pre> </description> <category>Ticket</category> </item> <item> <author>John Pavel <jrp@…></author> <pubDate>Tue, 06 Nov 2007 23:00:28 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1417#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1417#comment:2</guid> <description> <p> Groping slightly in the dark, I came across this <a class="ext-link" href="http://developer.apple.com/releasenotes/DeveloperTools/RN-dyld/index.html"><span class="icon">​</span>http://developer.apple.com/releasenotes/DeveloperTools/RN-dyld/index.html</a> which points to a number of known issues: </p> <pre class="wiki">weak symbols are too expensive C++ uses weak symbols to tell ld and dyld to coalesce. Any weak external symbols in a linkage unit will cause dyld to do extra work to assure there is only one copy of that symbol in the process. The current implementation uses an O(n^2) algorithm. No fast thread local storage pthread_getspecific() is currently the only option No dl* way to load memory based mach-o images NSCreateObjectFileFromMemory is deprecated. Some programs decrypt or synthesize mach-o files in-memory. There should be a dl* based API which can use a mach-o file that exists only in memory and not on disk. Spurious “(com.apple.dyld): Throttling respawn:“ messages in Console If you alter or replace an OS dylib that participates in the dyld shared cache, dyld will continually try to update the shared cache. But the rebuilt shared cache will not take effect until you reboot. Until the reboot, launchd may throttle (pause) update_dyld_shared_cache. </pre><p> I don't know whether Boost uses dylib. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Noel Belcourt</dc:creator> <pubDate>Sat, 26 Jan 2008 20:24:22 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1417#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1417#comment:3</guid> <description> <p> Is this still an issue? By that, I mean the fact that the link phase times out is really out of the build systems control. Do the tests actually hang or does this one link step hang for 300s then terminate and the regression tests pick up and continue? </p> <p> I'm trying to figure out if there's a problem in the bjam sub-process control or not? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>jrp at dial dot pipex dot com</dc:creator> <pubDate>Mon, 28 Jan 2008 21:28:17 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1417#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1417#comment:4</guid> <description> <p> Yes, the tests continue after a timeout. The python tests seem to be the most problematic. See, eg, <a class="ext-link" href="http://tinyurl.com/2w755x"><span class="icon">​</span>http://tinyurl.com/2w755x</a> </p> <p> This is Darwin 10.5.1 </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Sat, 09 Feb 2008 05:40:40 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1417#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1417#comment:5</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/1417#comment:4" title="Comment 4">jrp at dial dot pipex dot com</a>: </p> <blockquote class="citation"> <p> Yes, the tests continue after a timeout. The python tests seem to be the most problematic. See, eg, <a class="ext-link" href="http://tinyurl.com/2w755x"><span class="icon">​</span>http://tinyurl.com/2w755x</a> </p> <p> This is Darwin 10.5.1 </p> </blockquote> <p> Okay, I don't yet have Leopard, but there definitely was an occasional hang in the nightly Boost test on PowerPC Tiger (10.4.11) hardware. This is the vfork issue and has been fixed in the trunk. I have never seen the hang on Intel hardware. </p> <p> I'll leave this ticket open for a bit longer. Please let me know if you have any other data on this issue. </p> <p> -- Noel </p> </description> <category>Ticket</category> </item> <item> <dc:creator>jrp at dial dot pipex dot com</dc:creator> <pubDate>Sat, 09 Feb 2008 15:05:59 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1417#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1417#comment:6</guid> <description> <p> Well all I can tell you is that the full boost regression test suite takes about 400m to run, of which only 120m is user time. So there is a lot of waiting for timeouts going on. <a class="ext-link" href="http://tinyurl.com/2wxvse"><span class="icon">​</span>http://tinyurl.com/2wxvse</a> is another test that seems to hang, eg. (Passes but does not seem to terminate in time.) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>René Rivera</dc:creator> <pubDate>Fri, 20 Jun 2008 04:57:43 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/1417#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/1417#comment:7</guid> <description> <p> Is there a reliably reproducible instance of where the hanging occurs? Now that I have a 10.5.3 x86 machine I can try and replicate this. But running all the regression tests is not feasible at the moment. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>René Rivera</dc:creator> <pubDate>Tue, 01 Jul 2008 13:55:23 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/1417#comment:8 https://svn.boost.org/trac10/ticket/1417#comment:8 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">invalid</span> </li> </ul> <p> Giving up without test case. </p> Ticket