Hey Tom, 2011/8/12 Tom <tom.robin...@miranda.com>: > We did look into this further though and found some more information; > We used the Wt homepage example app, but massively cut down so it's > pretty much just a WServer. > When a web browser connects to the wt app (using wthttpd connector btw) > it hangs and receives no data from Wt, although Wt does spit out some > logging with the browser type on stdout. > > After running gdb it looks like a thread is hanging after a call from > WServer. In once.hpp line 78 (which is a pthread_cond_broadcast). > The trace is at the end of this post.
It's hanging in spirit. Spirit is one of those libraries in boost which need an explicit compile flag to be used safely in multi-threaded builds (-DBOOST_SPIRIT_THREADSAFE) You could start with checking that this flag is indeed being used while building Wt ? We did discover this when we built for an ARM target and got also a hang in the first call to spirit code. > Heres the problem: > > It doesn't seem to us like this is really the issue here. > It seems more like this has just moved the problem around, and that the > problem was probably there with the old compiler also. > Note that with either version, once the web browser connects, the Wt app > can no longer be Ctrl-C, it just says stopping sessions and never does, > needs to be Ctrl-Z and killed. So, do I get this correctly: in any build so far, you've never been able to Ctrl-C a Wt application to exit cleanly ? > So I guess the question is now, has anyone ever seen a problem with > Ctrl-C a Wt app, probably using WServer in particular. Actually, even if you use WRun() this creates and manipulates a WServer instance. This probably doesn't matter ? This is the stacktrace which hangs within expireSessions() ? This stacktrace indicates that expireSessions is waiting to get a session lock. That would be the case if one session is still actively handling a request, or, there is a problem with an update lock. In either case, it would be informative to get stacktraces of all threads ? We've recently identified one problem in expireSessions(), which was patched on July 25th in git trunk as part of patch 45555e5fe1549e80018401b4d2fd3c2ee9ddf125 (those hunks that touch WebSession.C). But this should not explain why it consistently hangs though. > Also, Does anyone know of any issues with the way Wt uses boost_thread > that might not be 100% "correct" I'ld be interested in knowing that too ;-), but, so far, it does behave correctly on different targets (ARM, linux i386, i686 and windows). And what we do is fairly standard boost::asio code. Regards, koen ------------------------------------------------------------------------------ uberSVN's rich system and user administration capabilities and model configuration take the hassle out of deploying and managing Subversion and the tools developers use with it. Learn more about uberSVN and get a free download at: http://p.sf.net/sfu/wandisco-dev2dev _______________________________________________ witty-interest mailing list witty-interest@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/witty-interest