Hi Georg, You discovered a bug. I filed a bug report for it (if you register as watcher, you'll receive email updates when it gets fixed). http://redmine.webtoolkit.eu/issues/850
For now, you can work around this by not deploying on '/'. Thank you for reporting. BR, Wim. 2011/6/7 Georg Sauthoff <[email protected]>: > Hi, > > developing a Wt application I noticed a lot of 'Timeout: expiring' and > 'Session > destroyed (#sessions = x)' messages I could not explain. > > To debug this, I created a minimal example: > > #include <Wt/WApplication> > #include <Wt/WLogger> > #include <Wt/WPushButton> > #include <Wt/WCheckBox> > > #include <string> > > using namespace Wt; > using namespace std; > > > class Main : public WApplication { > private: > bool emitchange; > unsigned state; > public: > Main(const WEnvironment &e) > : WApplication(e), emitchange(false), state(0) > { > log("info") << "Constructing new session"; > > WPushButton *a = new WPushButton("foo", root()); > a->clicked().connect(this, &Main::foo); > WPushButton *b = new WPushButton("bar", root()); > b->clicked().connect(this, &Main::bar); > WCheckBox *c = new WCheckBox("emit change", root()); > c->changed().connect(this, &Main::toggle); > } > void foo() > { > log("info") << "foo got clicked! state:" << state++; > setInternalPath("/foo", emitchange); > } > void bar() > { > log("info") << "bar got clicked! state:" << state++; > setInternalPath("/bar", emitchange); > } > void toggle() { emitchange = !emitchange; log("info") << "emit change: " > << emitchange; } > > }; > > Wt::WApplication *create_app(const Wt::WEnvironment& env) > { > return new Main(env); > } > > int main(int argc, char **argv) > { > return WRun(argc, argv, &create_app); > } > > > I run it with this command: > > ./p.wt --docroot='.;resources' --deploy-path '/' --http-address 127.0.0.1 > --http-port 8080 > > Using Chromium 11, for each button click I get following block of lines like > this: > > [2011-Jun-07 23:22:31.881103] 15768 [/ BgODYliXr92U50EP] [info] "foo got > clicked! state:1" > 127.0.0.1 - - [2011-Jun-07 23:22:31.881829] "POST /bar?wtd=BgODYliXr92U50EP > HTTP/1.1" 200 60 > [2011-Jun-07 23:22:31.912402] 15768 [/ DIISm4AkiYAgbzFm] [notice] "Session > created (#sessions = 5)" > Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) > Ubuntu/10.04 Chromium/11.0.696.65 Chrome/11.0.696.65 Safari/534.24 > 127.0.0.1 - - [2011-Jun-07 23:22:31.913249] "GET /favicon.ico HTTP/1.1" 200 > 1641 > > Or waiting a bit after some clicking: > > [2011-Jun-07 23:23:19.151773] 15768 [/ BgODYliXr92U50EP] [info] "foo got > clicked! state:2" > [2011-Jun-07 23:23:19.152229] 15768 [/ 0nOSG9eUL2kkLlZx] [notice] "Timeout: > expiring" > [2011-Jun-07 23:23:19.152313] 15768 [/ DIISm4AkiYAgbzFm] [notice] "Timeout: > expiring" > [2011-Jun-07 23:23:19.152373] 15768 [/ MXC0G56m4hj6Wjwa] [notice] "Timeout: > expiring" > [2011-Jun-07 23:23:19.152424] 15768 [/ QX1ff4P3FxWDCOet] [notice] "Timeout: > expiring" > [2011-Jun-07 23:23:19.152530] 15768 [/ 0nOSG9eUL2kkLlZx] [notice] "Session > destroyed (#sessions = 1)" > [2011-Jun-07 23:23:19.152630] 15768 [/ DIISm4AkiYAgbzFm] [notice] "Session > destroyed (#sessions = 1)" > [2011-Jun-07 23:23:19.152739] 15768 [/ MXC0G56m4hj6Wjwa] [notice] "Session > destroyed (#sessions = 1)" > [2011-Jun-07 23:23:19.152815] 15768 [/ QX1ff4P3FxWDCOet] [notice] "Session > destroyed (#sessions = 1)" > 127.0.0.1 - - [2011-Jun-07 23:23:19.153171] "POST /foo?wtd=BgODYliXr92U50EP > HTTP/1.1" 200 60 > > Or this: > > [2011-Jun-07 23:23:34.231512] 15768 [/ BgODYliXr92U50EP] [info] "bar got > clicked! state:3" > 127.0.0.1 - - [2011-Jun-07 23:23:34.232276] "POST /foo?wtd=BgODYliXr92U50EP > HTTP/1.1" 200 60 > [2011-Jun-07 23:23:34.262017] 15768 [/ b6x9sEGvQgn3AY41] [notice] "Session > created (#sessions = 2)" > Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) > Ubuntu/10.04 Chromium/11.0.696.65 Chrome/11.0.696.65 Safari/534.24 > 127.0.0.1 - - [2011-Jun-07 23:23:34.262780] "GET /favicon.ico HTTP/1.1" 200 > 1640 > > > What do these messages mean? > > How do I get rid of these messages? What is the purpose of them? > > I thought that for each new 'session' a WApplication instance (== a Main > instance in this case) is created (via create_app, which is invoked by > Wt). But this is not the case here, because the state value is not reset > (and no more 'Constructing new session' messages are displayed). > > With Firefox 3.6 I don't get such a massive amount of 'session > destroyed'/timeout messages, except at startup one/two spurious ones, e.g.: > > [2011-Jun-07 23:30:51.443921] 15809 [/ DzIjAsat35qI7CUG] [info] "foo got > clicked! state:0" > [2011-Jun-07 23:30:51.444487] 15809 [/ X3iTDjJ5vdo3a8h6] [notice] "Timeout: > expiring" > [2011-Jun-07 23:30:51.444600] 15809 [/ X3iTDjJ5vdo3a8h6] [notice] "Session > destroyed (#sessions = 1)" > 127.0.0.1 - - [2011-Jun-07 23:30:51.444827] "POST /?wtd=DzIjAsat35qI7CUG > HTTP/1.1" 200 85 > [2011-Jun-07 23:30:52.000871] 15809 [/ DzIjAsat35qI7CUG] [info] "bar got > clicked! state:1" > 127.0.0.1 - - [2011-Jun-07 23:30:52.001824] "POST /?wtd=DzIjAsat35qI7CUG > HTTP/1.1" 200 60 > [2011-Jun-07 23:30:53.125405] 15809 [/ DzIjAsat35qI7CUG] [info] "emit change: > 1" > 127.0.0.1 - - [2011-Jun-07 23:30:53.126185] "POST /?wtd=DzIjAsat35qI7CUG > HTTP/1.1" 200 41 > [2011-Jun-07 23:30:55.488739] 15809 [/ DzIjAsat35qI7CUG] [info] "bar got > clicked! state:2" > > > I am using Wt 3.1.9 and following CMakeLists.txt: > > cmake_minimum_required(VERSION 2.8) > set(CMAKE_VERBOSE_MAKEFILE on) > > LINK_DIRECTORIES(/mnt/juser/local/wt-3.1.9/lib) > > SET(EXAMPLES_CONNECTOR wthttp) > > ADD_EXECUTABLE(p.wt main.C) > > TARGET_LINK_LIBRARIES(p.wt ${EXAMPLES_CONNECTOR}) > > INCLUDE_DIRECTORIES(/mnt/juser/local/wt-3.1.9/include) > > > Best regards > Georg > > > > ------------------------------------------------------------------------------ > EditLive Enterprise is the world's most technically advanced content > authoring tool. Experience the power of Track Changes, Inline Image > Editing and ensure content is compliant with Accessibility Checking. > http://p.sf.net/sfu/ephox-dev2dev > _______________________________________________ > witty-interest mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/witty-interest > ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ witty-interest mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/witty-interest
