I am writing my own module to generate contents. <br>I am getting random time-outs with it. <br>What can be the issue ?<br><br>Following is the source code for my module <br><br><br>/*<br> * Copyright (C) Igor Sysoev<br> * Copyright (C) Nginx, Inc.<br>
 */<br><br>#include <ngx_config.h><br>#include <ngx_core.h><br>#include <ngx_http.h><br><br>typedef struct {<br>    ngx_flag_t done : 1;<br>    ngx_flag_t waiting_more_body : 1;<br>} ngx_http_helloworld_ctx_t;<br>
<br><br>static char *ngx_http_helloworld(ngx_conf_t *cf, ngx_command_t *cmd,<br>        void *conf);<br>static void ngx_http_form_input_post_read(ngx_http_request_t *r);<br><br>static ngx_command_t ngx_http_helloworld_commands[] = {<br>
<br>    { ngx_string("helloworld"),<br>        NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_NOARGS,<br>        ngx_http_helloworld,<br>        0,<br>        0,<br>        NULL},<br><br>    ngx_null_command<br>
};<br><br><br><br><br>//static u_char ngx_helloworld[] = "ABCD";<br><br><br>static ngx_http_module_t ngx_http_helloworld_module_ctx = {<br>    NULL, /* preconfiguration */<br>    NULL, /* postconfiguration */<br>
<br>    NULL, /* create main configuration */<br>    NULL, /* init main configuration */<br><br>    NULL, /* create server configuration */<br>    NULL, /* merge server configuration */<br><br>    NULL, /* create location configuration */<br>
    NULL /* merge location configuration */<br>};<br><br><br>ngx_module_t ngx_http_helloworld_module = {<br>    NGX_MODULE_V1,<br>    &ngx_http_helloworld_module_ctx, /* module context */<br>    ngx_http_helloworld_commands, /* module directives */<br>
    NGX_HTTP_MODULE, /* module type */<br>    NULL, /* init master */<br>    NULL, /* init module */<br>    NULL, /* init process */<br>    NULL, /* init thread */<br>    NULL, /* exit thread */<br>    NULL, /* exit process */<br>
    NULL, /* exit master */<br>    NGX_MODULE_V1_PADDING<br>};<br><br><br>static ngx_str_t ngx_http_gif_type = ngx_string("text/html");<br><br>static ngx_int_t<br>ngx_http_helloworld_handler(ngx_http_request_t *r) {<br>
    ngx_http_complex_value_t cv;<br>    ngx_http_helloworld_ctx_t *ctx;<br><br><br><br>    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,<br>            "http form_input rewrite phase handler");<br>
<br>    ctx = ngx_http_get_module_ctx(r, ngx_http_helloworld_module);<br><br>    if (ctx != NULL) {<br>        if (ctx->done) {<br>            ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,<br>                    "http form_input rewrite phase handler done");<br>
<br>            return NGX_DECLINED;<br>        }<br><br>        return NGX_DONE;<br>    }<br><br>    ctx = ngx_pcalloc(r->pool, sizeof (ngx_http_helloworld_ctx_t));<br>    if (ctx == NULL) {<br>        return NGX_ERROR;<br>
    }<br><br>    /* set by ngx_pcalloc:<br>     *      ctx->done = 0;<br>     *      ctx->waiting_more_body = 0;<br>     */<br><br>    ngx_http_set_ctx(r, ctx, ngx_http_helloworld_module);<br><br><br><br><br><br>    if (!(r->method & (NGX_HTTP_GET | NGX_HTTP_POST))) {<br>
        return NGX_HTTP_NOT_ALLOWED;<br>    }<br><br>    ngx_memzero(&cv, sizeof (ngx_http_complex_value_t));<br>    if (r->method == NGX_HTTP_POST) {<br>        ngx_int_t rc = ngx_http_read_client_request_body(r, ngx_http_form_input_post_read);<br>
        if (rc) {<br>        }<br>    }<br><br>    /*<br>          ngx_str_t b;<br>          ngx_str_set(&b,"/b");<br>          return ngx_http_internal_redirect(r, &b,NULL);<br>     */<br>    return ngx_http_send_response(r, NGX_HTTP_OK, &ngx_http_gif_type, &cv);<br>
}<br><br>static char *<br>ngx_http_helloworld(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) {<br>    ngx_http_core_loc_conf_t *clcf;<br><br>    clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module);<br>    clcf->handler = ngx_http_helloworld_handler;<br>
<br>    return NGX_CONF_OK;<br>}<br><br>static void ngx_http_form_input_post_read(ngx_http_request_t *r) {<br>    ngx_http_helloworld_ctx_t *ctx;<br><br>    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,<br>
            "http form_input post read request body");<br><br>    r->read_event_handler = ngx_http_request_empty_handler;<br><br>    ctx = ngx_http_get_module_ctx(r, ngx_http_helloworld_module);<br>    if (ctx == NULL) {<br>
        return;<br>    }<br>    ctx->done = 1;<br><br>#if defined(nginx_version) && nginx_version >= 8011<br><br>    r->main->count--;<br>#endif<br><br><br><br><br>    if (ctx->waiting_more_body) {<br>
        ctx->waiting_more_body = 0;<br><br>        ngx_http_core_run_phases(r);<br>    }<br>}<br><br><br clear="all">regards<div>Vivek Goel</div><br>