Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

output filters infinite loop #206

Open
yyamano opened this issue Aug 23, 2016 · 2 comments
Open

output filters infinite loop #206

yyamano opened this issue Aug 23, 2016 · 2 comments

Comments

@yyamano
Copy link
Collaborator

yyamano commented Aug 23, 2016

The following configuration can cause an infinite loop.

        location /content_handler_with_header_filter {
            mruby_content_handler_code 'Nginx.rputs "OK"';
            mruby_output_header_filter_code 'Nginx::Request.new.headers_out["X-New-Header"] = "header_filetr"';
        }

        location /content_handler_with_body_filter {
            mruby_content_handler_code 'Nginx.rputs "OK"';
            mruby_output_body_filter_code '
              f = Nginx::Filter.new
              f.body = f.body + "(processed by body_filter)"
            ';
        }

        location /content_handler_with_header_and_body_filter {
            mruby_content_handler_code 'Nginx.rputs "OK"';
            mruby_output_header_filter_code 'Nginx::Request.new.headers_out["X-New-Header"] = "header_filetr"';
            mruby_output_body_filter_code '
              f = Nginx::Filter.new
              f.body = f.body + "(processed by body_filter)"
            ';
        }

Here is the backtrace.

2016/08/23 03:19:59 [info] 7488#0: *1 ngx_mruby INFO ngx_mrb_run:822: mrb_run info: rputs_chain is null and return NGX_OK, client: 127.0.0.1, server: localhost, request: "GET /content_handler_with_header_filter HTTP/1.1", host: "localhost:58080"

Program received signal SIGSEGV, Segmentation fault.
0x00000000004da9fd in mrb_get_args (mrb=mrb@entry=0xb34830, format=format@entry=0x76b673 "|i")
    at /home/vagrant/ngx_mruby/mruby/src/class.c:478
478   va_start(ap, format);
Missing separate debuginfos, use: debuginfo-install glibc-2.17-106.el7_2.6.x86_64 nss-softokn-freebl-3.16.2.3-13.el7_1.x86_64 openssl-libs-1.0.1e-51.el7_2.5.x86_64 pcre-8.32-15.el7_2.1.x86_64 zlib-1.2.7-15.el7.x86_64
#0  0x00000000004da9fd in mrb_get_args (mrb=mrb@entry=0xb34830, format=format@entry=0x76b673 "|i")
    at /home/vagrant/ngx_mruby/mruby/src/class.c:478
#1  0x000000000050a0d1 in mrb_ary_first (mrb=0xb34830, self=...) at /home/vagrant/ngx_mruby/mruby/src/array.c:828
#2  0x00000000004febe6 in mrb_funcall_with_block (mrb=mrb@entry=0xb34830, self=..., mid=156, argc=argc@entry=0, 
    argv=0x7fffff7ff290, blk=...) at /home/vagrant/ngx_mruby/mruby/src/vm.c:407
#3  0x00000000004ff502 in mrb_funcall_argv (argv=0x7fffff7ff290, argc=0, mid=<optimized out>, self=..., mrb=0xb34830)
    at /home/vagrant/ngx_mruby/mruby/src/vm.c:424
#4  mrb_funcall (mrb=mrb@entry=0xb34830, self=..., name=name@entry=0x736a35 "first", argc=argc@entry=0)
    at /home/vagrant/ngx_mruby/mruby/src/vm.c:319
#5  0x00000000004d40d9 in ngx_mrb_get_request_header (mrb=mrb@entry=0xb34830, headers=headers@entry=0xb2adc0, 
    mkey=mkey@entry=0x13b2d30 "X-New-Headerheader_filetrX-New-Header", mlen=mlen@entry=12)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_request.c:252
#6  0x00000000004d4576 in ngx_mrb_set_request_header (mrb=mrb@entry=0xb34830, headers=headers@entry=0xb2adc0, 
    pool=<optimized out>, mrb_key=..., mrb_val=..., update=update@entry=1)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_request.c:348
#7  0x00000000004d479c in ngx_mrb_set_request_headers_out (mrb=0xb34830, self=...)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_request.c:559
#8  0x00000000004fbc09 in mrb_vm_exec (mrb=mrb@entry=0xb34830, proc=<optimized out>, proc@entry=0xb831f0, pc=0xc0819c)
    at /home/vagrant/ngx_mruby/mruby/src/vm.c:1150
#9  0x000000000050132e in mrb_vm_run (stack_keep=<optimized out>, self=..., proc=0xb831f0, mrb=0xb34830)
    at /home/vagrant/ngx_mruby/mruby/src/vm.c:759
#10 mrb_run (mrb=0xb34830, proc=0xb831f0, self=...) at /home/vagrant/ngx_mruby/mruby/src/vm.c:2424
#11 0x00000000004ce46b in ngx_mrb_run (r=r@entry=0xb2abf0, state=0xb25628, code=0xbfda08, cached=0, result=result@entry=0x0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:778
#12 0x00000000004ce7d4 in ngx_http_mruby_header_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2130
#13 0x00000000004d0e5f in ngx_http_mruby_header_filter (r=0xb2abf0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2179
#14 0x00000000004abc2a in ngx_http_not_modified_header_filter (r=<optimized out>)
    at src/http/modules/ngx_http_not_modified_filter_module.c:108
#15 0x0000000000484a00 in ngx_http_send_header (r=r@entry=0xb2abf0) at src/http/ngx_http_core_module.c:1955
#16 0x00000000004ce754 in ngx_mrb_run (r=r@entry=0xb2abf0, state=<optimized out>, code=0xbfda08, cached=0, 
    result=result@entry=0x0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:832
#17 0x00000000004ce7d4 in ngx_http_mruby_header_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2130
#18 0x00000000004d0e5f in ngx_http_mruby_header_filter (r=0xb2abf0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2179
#19 0x00000000004abc2a in ngx_http_not_modified_header_filter (r=<optimized out>)
    at src/http/modules/ngx_http_not_modified_filter_module.c:108
#20 0x0000000000484a00 in ngx_http_send_header (r=r@entry=0xb2abf0) at src/http/ngx_http_core_module.c:1955
#21 0x00000000004ce754 in ngx_mrb_run (r=r@entry=0xb2abf0, state=<optimized out>, code=0xbfda08, cached=0, 
    result=result@entry=0x0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:832
#22 0x00000000004ce7d4 in ngx_http_mruby_header_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2130
#23 0x00000000004d0e5f in ngx_http_mruby_header_filter (r=0xb2abf0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2179
#24 0x00000000004abc2a in ngx_http_not_modified_header_filter (r=<optimized out>)
    at src/http/modules/ngx_http_not_modified_filter_module.c:108
#25 0x0000000000484a00 in ngx_http_send_header (r=r@entry=0xb2abf0) at src/http/ngx_http_core_module.c:1955
#26 0x00000000004ce754 in ngx_mrb_run (r=r@entry=0xb2abf0, state=<optimized out>, code=0xbfda08, cached=0, 
    result=result@entry=0x0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:832
#27 0x00000000004ce7d4 in ngx_http_mruby_header_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2130
#28 0x00000000004d0e5f in ngx_http_mruby_header_filter (r=0xb2abf0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2179
#29 0x00000000004abc2a in ngx_http_not_modified_header_filter (r=<optimized out>)
    at src/http/modules/ngx_http_not_modified_filter_module.c:108
#30 0x0000000000484a00 in ngx_http_send_header (r=r@entry=0xb2abf0) at src/http/ngx_http_core_module.c:1955
#31 0x00000000004ce754 in ngx_mrb_run (r=r@entry=0xb2abf0, state=<optimized out>, code=0xbfda08, cached=0, 
    result=result@entry=0x0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:832
#32 0x00000000004ce7d4 in ngx_http_mruby_header_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2130
#33 0x00000000004d0e5f in ngx_http_mruby_header_filter (r=0xb2abf0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2179
#34 0x00000000004abc2a in ngx_http_not_modified_header_filter (r=<optimized out>)
    at src/http/modules/ngx_http_not_modified_filter_module.c:108
#35 0x0000000000484a00 in ngx_http_send_header (r=r@entry=0xb2abf0) at src/http/ngx_http_core_module.c:1955
#36 0x00000000004ce754 in ngx_mrb_run (r=r@entry=0xb2abf0, state=<optimized out>, code=0xbfda08, cached=0, 
    result=result@entry=0x0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:832
#37 0x00000000004ce7d4 in ngx_http_mruby_header_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2130
#38 0x00000000004d0e5f in ngx_http_mruby_header_filter (r=0xb2abf0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2179
#39 0x00000000004abc2a in ngx_http_not_modified_header_filter (r=<optimized out>)
    at src/http/modules/ngx_http_not_modified_filter_module.c:108
#40 0x0000000000484a00 in ngx_http_send_header (r=r@entry=0xb2abf0) at src/http/ngx_http_core_module.c:1955
#41 0x00000000004ce754 in ngx_mrb_run (r=r@entry=0xb2abf0, state=<optimized out>, code=0xbfda08, cached=0, 
    result=result@entry=0x0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:832
#42 0x00000000004ce7d4 in ngx_http_mruby_header_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2130
#43 0x00000000004d0e5f in ngx_http_mruby_header_filter (r=0xb2abf0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2179
#44 0x00000000004abc2a in ngx_http_not_modified_header_filter (r=<optimized out>)
    at src/http/modules/ngx_http_not_modified_filter_module.c:108
#45 0x0000000000484a00 in ngx_http_send_header (r=r@entry=0xb2abf0) at src/http/ngx_http_core_module.c:1955
#46 0x00000000004ce754 in ngx_mrb_run (r=r@entry=0xb2abf0, state=<optimized out>, code=0xbfda08, cached=0, 
    result=result@entry=0x0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:832
#47 0x00000000004ce7d4 in ngx_http_mruby_header_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2130
#48 0x00000000004d0e5f in ngx_http_mruby_header_filter (r=0xb2abf0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2179
#49 0x00000000004abc2a in ngx_http_not_modified_header_filter (r=<optimized out>)
    at src/http/modules/ngx_http_not_modified_filter_module.c:108
#50 0x0000000000484a00 in ngx_http_send_header (r=r@entry=0xb2abf0) at src/http/ngx_http_core_module.c:1955
#51 0x00000000004ce754 in ngx_mrb_run (r=r@entry=0xb2abf0, state=<optimized out>, code=0xbfda08, cached=0, 
    result=result@entry=0x0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:832
#52 0x00000000004ce7d4 in ngx_http_mruby_header_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2130
#53 0x00000000004d0e5f in ngx_http_mruby_header_filter (r=0xb2abf0)k

[snip]
@matsumotory
Copy link
Owner

@yyamano Thank you for your report. I'll check it later since I'm busy to write my doctoral thesis 😂

@yyamano
Copy link
Collaborator Author

yyamano commented Sep 1, 2016

I just found another infinite loop.

        location /foo/bar/ {
          mruby_output_body_filter_code '
            r = Nginx::Request.new
            f = Nginx::Filter.new
            body = (r.method == "POST" || r.method == "PUT") ? r.body.to_s : "no body"
            f.body = f.body + " for " + body
          ';
          return "200";
        }
% curl -X POST -d "foo" http://localhost:58080/foo/bar/
(gdb) run
Starting program: /home/vagrant/ngx_mruby/./build/nginx/sbin/nginx 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
"[7759] init master process"
2016/09/01 02:03:47 [notice] 7759#0: using the "epoll" event method
"ngx_mruby: STREAM: mruby_stream_init_code"
2016/09/01 02:03:47 [notice] 7759#0: nginx/1.10.1
2016/09/01 02:03:47 [notice] 7759#0: built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 
2016/09/01 02:03:47 [notice] 7759#0: OS: Linux 3.10.0-327.13.1.el7.x86_64
2016/09/01 02:03:47 [notice] 7759#0: getrlimit(RLIMIT_NOFILE): 1024:4096
2016/09/01 02:03:47 [info] 7759#0: ngx_mruby INFO ngx_mrb_run_cycle:728: mrb_run
"[7759] init worker process from inline code"
"ngx_mruby: STREAM: mruby_stream_init_worker_code"
2016/09/01 02:03:51 [info] 7759#0: *1 ngx_mruby INFO ngx_mrb_run:829: mrb_run info: rputs_chain is null and return NGX_OK, client: 127.0.0.1, server: localhost, request: "POST /foo/bar/ HTTP/1.1", host: "localhost:58080"
2016/09/01 02:03:51 [error] 7759#0: *1 This phase doesn't have a request_body, client: 127.0.0.1, server: localhost, request: "POST /foo/bar/ HTTP/1.1", host: "localhost:58080"
2016/09/01 02:03:51 [error] 7759#0: *1 This phase doesn't have a request_body, client: 127.0.0.1, server: localhost, request: "POST /foo/bar/ HTTP/1.1", host: "localhost:58080"

[snip]

2016/09/01 02:03:51 [error] 7759#0: *1 This phase doesn't have a request_body, client: 127.0.0.1, server: localhost, request: "POST /foo/bar/ HTTP/1.1", host: "localhost:58080"
2016/09/01 02:03:51 [error] 7759#0: *1 This phase doesn't have a request_body, client: 127.0.0.1, server: localhost, request: "POST /foo/bar/ HTTP/1.1", host: "localhost:58080"
2016/09/01 02:03:51 [error] 7759#0: *1 This phase doesn't have a request_body, client: 127.0.0.1, server: localhost, request: "POST /foo/bar/ HTTP/1.1", host: "localhost:58080"
2016/09/01 02:03:51 [error] 7759#0: *1 This phase doesn't have a request_body, client: 127.0.0.1, server: localhost, request: "POST /foo/bar/ HTTP/1.1", host: "localhost:58080"

Program received signal SIGSEGV, Segmentation fault.
0x00000000004563c3 in ngx_log_error_core (level=level@entry=4, log=0xb1b5e0, err=err@entry=0, 
    fmt=fmt@entry=0x736b48 "This phase doesn't have a request_body") at src/core/ngx_log.c:117
117     p = ngx_cpymem(errstr, ngx_cached_err_log_time.data,
Missing separate debuginfos, use: debuginfo-install glibc-2.17-106.el7_2.6.x86_64 nss-softokn-freebl-3.16.2.3-13.el7_1.x86_64 openssl-libs-1.0.1e-51.el7_2.5.x86_64 pcre-8.32-15.el7_2.1.x86_64 zlib-1.2.7-15.el7.x86_64
(gdb) bt
#0  0x00000000004563c3 in ngx_log_error_core (level=level@entry=4, log=0xb1b5e0, err=err@entry=0, 
    fmt=fmt@entry=0x736b48 "This phase doesn't have a request_body") at src/core/ngx_log.c:117
#1  0x00000000004d3982 in read_request_body_cb (r=0xb2abf0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_request.c:128
#2  0x0000000000490359 in ngx_http_read_client_request_body (r=<optimized out>, 
    post_handler=post_handler@entry=0x4d392b <read_request_body_cb>) at src/http/ngx_http_request_body.c:45
#3  0x00000000004d3b7d in ngx_mrb_read_request_body (mrb=0xb34830, self=...)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_request.c:193
#4  0x00000000004fbe59 in mrb_vm_exec (mrb=mrb@entry=0xb34830, proc=<optimized out>, proc@entry=0xb82c20, 
    pc=0x7689d4 <gem_mrblib_irep_mruby_ngx_mruby_ext+600>) at /home/vagrant/ngx_mruby/mruby/src/vm.c:1150
#5  0x000000000050157e in mrb_vm_run (stack_keep=<optimized out>, self=..., proc=0xb82c20, mrb=0xb34830)
    at /home/vagrant/ngx_mruby/mruby/src/vm.c:759
#6  mrb_run (mrb=0xb34830, proc=0xb82c20, self=...) at /home/vagrant/ngx_mruby/mruby/src/vm.c:2424
#7  0x00000000004ce49a in ngx_mrb_run (r=r@entry=0xb2abf0, state=0xb25628, code=0xc539d8, cached=0, result=result@entry=0x0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:785
#8  0x00000000004ce900 in ngx_http_mruby_body_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2123
#9  0x00000000004d1184 in ngx_http_mruby_body_filter (r=0xb2abf0, in=0xe343f0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2283
#10 0x0000000000459663 in ngx_output_chain (ctx=ctx@entry=0xce10c0, in=in@entry=0x7fffff7ffca0)
    at src/core/ngx_output_chain.c:214
#11 0x00000000004ab872 in ngx_http_copy_filter (r=0xb2abf0, in=0x7fffff7ffca0) at src/http/ngx_http_copy_filter_module.c:152
#12 0x00000000004a3060 in ngx_http_range_body_filter (r=0xb2abf0, in=<optimized out>)
    at src/http/modules/ngx_http_range_filter_module.c:623
#13 0x0000000000484a10 in ngx_http_output_filter (r=r@entry=0xb2abf0, in=in@entry=0x7fffff7ffca0)
    at src/http/ngx_http_core_module.c:1970
#14 0x0000000000486a0d in ngx_http_send_special_response (r=r@entry=0xb2abf0, clcf=clcf@entry=0xc52468, err=<optimized out>)
    at src/http/ngx_http_special_response.c:715
#15 0x0000000000486de1 in ngx_http_special_response_handler (r=r@entry=0xb2abf0, error=error@entry=500)
    at src/http/ngx_http_special_response.c:471
#16 0x0000000000489471 in ngx_http_finalize_request (r=r@entry=0xb2abf0, rc=rc@entry=500) at src/http/ngx_http_request.c:2329
#17 0x00000000004d398f in read_request_body_cb (r=0xb2abf0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_request.c:129
#18 0x0000000000490359 in ngx_http_read_client_request_body (r=<optimized out>, 
    post_handler=post_handler@entry=0x4d392b <read_request_body_cb>) at src/http/ngx_http_request_body.c:45
#19 0x00000000004d3b7d in ngx_mrb_read_request_body (mrb=0xb34830, self=...)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_request.c:193
#20 0x00000000004fbe59 in mrb_vm_exec (mrb=mrb@entry=0xb34830, proc=<optimized out>, proc@entry=0xb82c20, 
    pc=0x7689d4 <gem_mrblib_irep_mruby_ngx_mruby_ext+600>) at /home/vagrant/ngx_mruby/mruby/src/vm.c:1150
#21 0x000000000050157e in mrb_vm_run (stack_keep=<optimized out>, self=..., proc=0xb82c20, mrb=0xb34830)
    at /home/vagrant/ngx_mruby/mruby/src/vm.c:759
#22 mrb_run (mrb=0xb34830, proc=0xb82c20, self=...) at /home/vagrant/ngx_mruby/mruby/src/vm.c:2424
#23 0x00000000004ce49a in ngx_mrb_run (r=r@entry=0xb2abf0, state=0xb25628, code=0xc539d8, cached=0, result=result@entry=0x0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:785
#24 0x00000000004ce900 in ngx_http_mruby_body_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2123
#25 0x00000000004d1184 in ngx_http_mruby_body_filter (r=0xb2abf0, in=0xe34300)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2283
#26 0x0000000000459663 in ngx_output_chain (ctx=ctx@entry=0xce10c0, in=in@entry=0x7fffff800500)
    at src/core/ngx_output_chain.c:214
#27 0x00000000004ab872 in ngx_http_copy_filter (r=0xb2abf0, in=0x7fffff800500) at src/http/ngx_http_copy_filter_module.c:152
#28 0x00000000004a3060 in ngx_http_range_body_filter (r=0xb2abf0, in=<optimized out>)
    at src/http/modules/ngx_http_range_filter_module.c:623
#29 0x0000000000484a10 in ngx_http_output_filter (r=r@entry=0xb2abf0, in=in@entry=0x7fffff800500)
    at src/http/ngx_http_core_module.c:1970
#30 0x0000000000486a0d in ngx_http_send_special_response (r=r@entry=0xb2abf0, clcf=clcf@entry=0xc52468, err=<optimized out>)
    at src/http/ngx_http_special_response.c:715
#31 0x0000000000486de1 in ngx_http_special_response_handler (r=r@entry=0xb2abf0, error=error@entry=500)
    at src/http/ngx_http_special_response.c:471
#32 0x0000000000489471 in ngx_http_finalize_request (r=r@entry=0xb2abf0, rc=rc@entry=500) at src/http/ngx_http_request.c:2329
#33 0x00000000004d398f in read_request_body_cb (r=0xb2abf0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_request.c:129
#34 0x0000000000490359 in ngx_http_read_client_request_body (r=<optimized out>, 
    post_handler=post_handler@entry=0x4d392b <read_request_body_cb>) at src/http/ngx_http_request_body.c:45
#35 0x00000000004d3b7d in ngx_mrb_read_request_body (mrb=0xb34830, self=...)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_request.c:193
#36 0x00000000004fbe59 in mrb_vm_exec (mrb=mrb@entry=0xb34830, proc=<optimized out>, proc@entry=0xb82c20, 
    pc=0x7689d4 <gem_mrblib_irep_mruby_ngx_mruby_ext+600>) at /home/vagrant/ngx_mruby/mruby/src/vm.c:1150
#37 0x000000000050157e in mrb_vm_run (stack_keep=<optimized out>, self=..., proc=0xb82c20, mrb=0xb34830)
    at /home/vagrant/ngx_mruby/mruby/src/vm.c:759
#38 mrb_run (mrb=0xb34830, proc=0xb82c20, self=...) at /home/vagrant/ngx_mruby/mruby/src/vm.c:2424
#39 0x00000000004ce49a in ngx_mrb_run (r=r@entry=0xb2abf0, state=0xb25628, code=0xc539d8, cached=0, result=result@entry=0x0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:785
#40 0x00000000004ce900 in ngx_http_mruby_body_filter_inline_handler (r=0xb2abf0, in=<optimized out>)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2123
#41 0x00000000004d1184 in ngx_http_mruby_body_filter (r=0xb2abf0, in=0xe34210)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:2283
#42 0x0000000000459663 in ngx_output_chain (ctx=ctx@entry=0xce10c0, in=in@entry=0x7fffff800d60)
    at src/core/ngx_output_chain.c:214
#43 0x00000000004ab872 in ngx_http_copy_filter (r=0xb2abf0, in=0x7fffff800d60) at src/http/ngx_http_copy_filter_module.c:152
#44 0x00000000004a3060 in ngx_http_range_body_filter (r=0xb2abf0, in=<optimized out>)
    at src/http/modules/ngx_http_range_filter_module.c:623
#45 0x0000000000484a10 in ngx_http_output_filter (r=r@entry=0xb2abf0, in=in@entry=0x7fffff800d60)
    at src/http/ngx_http_core_module.c:1970
#46 0x0000000000486a0d in ngx_http_send_special_response (r=r@entry=0xb2abf0, clcf=clcf@entry=0xc52468, err=<optimized out>)
    at src/http/ngx_http_special_response.c:715
#47 0x0000000000486de1 in ngx_http_special_response_handler (r=r@entry=0xb2abf0, error=error@entry=500)
    at src/http/ngx_http_special_response.c:471
#48 0x0000000000489471 in ngx_http_finalize_request (r=r@entry=0xb2abf0, rc=rc@entry=500) at src/http/ngx_http_request.c:2329
#49 0x00000000004d398f in read_request_body_cb (r=0xb2abf0) at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_request.c:129
#50 0x0000000000490359 in ngx_http_read_client_request_body (r=<optimized out>, 
    post_handler=post_handler@entry=0x4d392b <read_request_body_cb>) at src/http/ngx_http_request_body.c:45
#51 0x00000000004d3b7d in ngx_mrb_read_request_body (mrb=0xb34830, self=...)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_request.c:193
#52 0x00000000004fbe59 in mrb_vm_exec (mrb=mrb@entry=0xb34830, proc=<optimized out>, proc@entry=0xb82c20, 
    pc=0x7689d4 <gem_mrblib_irep_mruby_ngx_mruby_ext+600>) at /home/vagrant/ngx_mruby/mruby/src/vm.c:1150
#53 0x000000000050157e in mrb_vm_run (stack_keep=<optimized out>, self=..., proc=0xb82c20, mrb=0xb34830)
    at /home/vagrant/ngx_mruby/mruby/src/vm.c:759
#54 mrb_run (mrb=0xb34830, proc=0xb82c20, self=...) at /home/vagrant/ngx_mruby/mruby/src/vm.c:2424
#55 0x00000000004ce49a in ngx_mrb_run (r=r@entry=0xb2abf0, state=0xb25628, code=0xc539d8, cached=0, result=result@entry=0x0)
    at /home/vagrant/ngx_mruby/src/http/ngx_http_mruby_module.c:785
#56 0x00000000004ce900 in ngx_http_mruby_body_filter_inline_handler (r=0xb2abf0, in=<optimized out>)

[snip]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants