Here's where 1.6.7 fails for CGI (but 1.6.6 works fine):

In do_cgi():

    /* Register the event into the worker event-loop */
    ret = mk_api->ev_add(mk_api->sched_loop(),
                         readpipe[0],
                         MK_EVENT_CUSTOM, MK_EVENT_READ, r);
    if (ret != 0) {
        return 403; <--------------
    }

because in mk_event_add():

    if ((event->status & MK_EVENT_NONE) == 0) {
        return -1; <--------------
    }

I don't know how the event system works, so I stopped debugging at that point.

Trace output:
~ 4.700198 [mk|mk_server/mk_server.c:97 ] mk_server_listen_handler() [server] New connection arrived: FD 40 ~ 4.703876 [mk|mk_server/mk_server.c:419] mk_server_worker_loop() [FD 40] Event READ ~ 4.703992 [mk|mk_server/mk_scheduler.c:570] mk_sched_event_read() [FD 40] Connection Handler / read ~ 4.704072 [mk|mk_server/mk_http.c:1455] mk_http_sched_read() [FD 40] Create HTTP session ~ 4.704144 [mk|mk_server/mk_http.c:284] mk_http_handler_read() MAX REQUEST SIZE: 32768 ~ 4.704210 [mk|mk_server/mk_http.c:328] mk_http_handler_read() [FD 40] read 411 ~ 4.704253 [mk|mk_server/mk_http.c:355] mk_http_handler_read() [FD 40] Retry total bytes: 411 ~ 4.704356 [mk|mk_server/mk_http.c:1477] mk_http_sched_read() [FD 40] HTTP_PARSER_OK ~ 4.704428 [mk|mk_server/mk_http.c:619] mk_http_init() [FD 40] HTTP Protocol Init, session 0xb3a064e8
---- CGI file: /home/carl/monkey-1.6.7/htdocs//cgi-bin/test.cgi
~ 4.706330 [mk|mk_server/mk_header.c:395] mk_header_set_http_status() Set HTTP status = 403 ~ 4.706393 [mk|mk_server/mk_http.c:795] mk_http_init() [FD 40] STAGE_30 returned 300 ~ 4.706445 [mk|mk_server/mk_header.c:395] mk_header_set_http_status() Set HTTP status = 403 ~ 4.706528 [mk|mk_server/mk_stream.c:191] mk_channel_write() [CH 40] STREAM_IOV, wrote 318 bytes ~ 4.706816 [mk|mk_server/mk_stream.c:202] mk_stream_bytes_consumed() [STREAM_IOV 0xb3a064f8] bytes consumed 318/318 ~ 4.706889 [mk|mk_server/mk_stream.c:227] mk_channel_write() Stream done, unlinking (channel=0xb3a05474) ~ 4.706945 [mk|mk_server/mk_stream.c:236] mk_channel_write() [CH 40] CHANNEL_DONE ~ 4.707003 [mk|mk_server/mk_http.c:225] mk_http_request_prepare() [FD 40] HTTP Init returning 0 ~ 4.707057 [mk|mk_server/mk_stream.c:174] mk_channel_write() [CH 40] CHANNEL_EMPTY ~ 40.533664 [mk|mk_server/mk_server.c:419] mk_server_worker_loop() [FD 40] Event READ ~ 40.533796 [mk|mk_server/mk_scheduler.c:570] mk_sched_event_read() [FD 40] Connection Handler / read ~ 40.533859 [mk|mk_server/mk_http.c:284] mk_http_handler_read() MAX REQUEST SIZE: 32768 ~ 40.533939 [mk|mk_server/mk_http.c:328] mk_http_handler_read() [FD 40] read 0 ~ 40.533998 [mk|mk_server/mk_http.c:331] mk_http_handler_read() [FD 40] broken pipe? ~ 40.534051 [mk|mk_server/mk_server.c:431] mk_server_worker_loop() [FD 40] Event FORCE CLOSE | ret = -1 ~ 40.534101 [mk|mk_server/mk_scheduler.c:687] mk_sched_event_close() [FD 40] Connection Handler, closed ~ 40.534147 [mk|mk_server/mk_http.c:1511] mk_http_sched_close() [FD 40] HTTP sched close (type=0) ~ 40.534193 [mk|mk_server/mk_http.c:1271] mk_http_session_remove() [FD 40] HTTP Session remove ~ 40.534240 [mk|mk_server/mk_http.c:1280] mk_http_session_remove() Hangup stage30 handler ~ 40.534288 [pl|plugins/cgi/cgi.c:464] mk_cgi_stage30_hangup() CGI / Parent connection closed (hangup) ~ 40.534339 [mk|mk_server/mk_http.c:1388] mk_http_request_free_list() [FD 40] Free struct client_session ~ 40.534390 [mk|mk_server/mk_scheduler.c:455] mk_sched_remove_client() [FD 40] Scheduler remove

_______________________________________________
Monkey mailing list
[email protected]
http://lists.monkey-project.com/listinfo/monkey

Reply via email to