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

Reply via email to