Skip to content
Snippets Groups Projects
  1. Oct 11, 2010
    • Iustin Pop's avatar
      Merge branch 'devel-2.2' · 69750d44
      Iustin Pop authored
      
      * devel-2.2:
        RPC: disable curl's Expect header
      
      Conflicts:
      	lib/rpc.py (trivial, copyright header)
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      69750d44
    • Iustin Pop's avatar
      RPC: disable curl's Expect header · 8e29563f
      Iustin Pop authored
      
      This patch solves the very slow (~8-9 seconds) gnt-instance modify
      behaviour. Well, it solves in general the slow RPC behaviour, but it was
      most visible in that LU.
      
      It seems that curl's behaviour with regard to file uploads (via PUT) and
      the 'Expect' header are interacting badly with our http server.
      
      First, our http server doesn't properly handle this header. According to
      RFC 2616:
      
        Requirements for HTTP/1.1 origin servers: Upon receiving a request
        which includes an Expect request-header field with the "100-continue"
        expectation, an origin server MUST either respond with 100 (Continue)
        status and continue to read from the input stream, or respond with a
        final status code.
      
      Our server doesn't do this, and hence it triggers this behaviour in curl
      (from the curl FAQ):
      
        4.16 My HTTP POST or PUT requests are slow!
      
        libcurl makes all POST and PUT requests (except for POST requests with a
        very tiny request body) use the "Expect: 100-continue" header. This header
        allows the server to deny the operation early so that libcurl can bail out
        already before having to send any data. This is useful in authentication
        cases and others.
      
        However, many servers don't implement the Expect: stuff properly and if the
        server doesn't respond (positively) within 1 second libcurl will continue
        and send off the data anyway.
      
        You can disable libcurl's use of the Expect: header the same way you disable
        any header, using -H / CURLOPT_HTTPHEADER, or by forcing it to use HTTP 1.0.
      
      This behaviour was detected by watching the captured traffic (in non-SSL
      mode), where between the initial HTTP headers (ending with the Expect
      one), there was a ~1-2 second pause until curl was sending the body.
      Properly RTFM-ing would have saved ~1 day of digging around, but hey…
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      8e29563f
  2. Oct 08, 2010
    • Guido Trotter's avatar
      Merge branch 'devel-2.2' · dedebc6b
      Guido Trotter authored
      
      * devel-2.2:
        Release Ganeti 2.2.0.1
        Bump version to 2.2.1~rc0
      
      Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
      Reviewed-by: default avatarLuca Bigliardi <shammash@google.com>
      dedebc6b
    • Guido Trotter's avatar
      Merge commit 'v2.2.0.1' into stable-2.2 · 2759d988
      Guido Trotter authored
      
      * commit 'v2.2.0.1':
        Release Ganeti 2.2.0.1
      
      Conflicts:
      	NEWS
      	  - merge
      	configure.ac
      	  - keep 2.2.1~rc0 version
      
      Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
      Reviewed-by: default avatarLuca Bigliardi <shammash@google.com>
      2759d988
    • Guido Trotter's avatar
      Release Ganeti 2.2.0.1 · bf21f985
      Guido Trotter authored
      
      2.2.0 was built with old autotools, and it's incompatible with Python
      2.6. Rebuilding with a newer autotools version fixes this.
      
      Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
      Reviewed-by: default avatarLuca Bigliardi <shammash@google.com>
      v2.2.0.1
      bf21f985
    • Iustin Pop's avatar
      Change QA log output · f89d59b9
      Iustin Pop authored
      
      Currently, the logging in QA doesn't show the duration of the various
      steps, and if it is needed one has to perform log manipulation. This
      patch changes the output so that the log informatio is line based (as
      opposed to block-based), such that it's easy to grep for all log lines:
      
      ./qa/ganeti-qa.py --yes-do-it qa.json  2>&1|grep ^----
      ---- 2010-10-08 14:40:21.730382 start Test SSH connection --------------
      ---- 2010-10-08 14:40:23.156633 time=0:00:01.426251 Test SSH connection
      ---- 2010-10-08 14:40:23.156735 start ICMP ping each node --------------
      ---- 2010-10-08 14:40:24.230479 time=0:00:01.073744 ICMP ping each node
      ---- 2010-10-08 14:40:24.230583 start Test availibility of Ganeti commands
      ---- 2010-10-08 14:40:32.314586 time=0:00:08.084003 Test availibility of Ganeti commands
      ---- 2010-10-08 14:40:32.314734 start gnt-node info --------------------
      ---- 2010-10-08 14:40:32.860884 time=0:00:00.546150 gnt-node info ------
      
      or just for the duration of the steps:
      ./qa/ganeti-qa.py --yes-do-it ../qa-mpgntac5.fra.json  2>&1|grep ^----.*time=
      ---- 2010-10-08 14:42:12.630067 time=0:00:01.239256 Test SSH connection
      ---- 2010-10-08 14:42:14.204393 time=0:00:01.574221 ICMP ping each node
      ---- 2010-10-08 14:42:22.170828 time=0:00:07.966331 Test availibility of Ganeti commands
      ---- 2010-10-08 14:42:22.701030 time=0:00:00.530037 gnt-node info ------
      
      This will help with identifying slow steps or even graphing the QA
      duration.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      f89d59b9
  3. Oct 07, 2010
  4. Oct 06, 2010
  5. Oct 05, 2010
  6. Oct 04, 2010
Loading