Custom Query (2296 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (13 - 15 of 2296)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Ticket Resolution Summary Owner Reporter
#2373 invalid 1.23.0 - Spaces in path name result in 400 error when using a proxy server to generate thumbnails robjbrain@…
Description

The following server works perfectly on 1.18.0 but on 1.23.0 results in a 400 error for paths with a space in the name e.g.

domain/test dir/image.png = 400 error domain/testdir/image.png = Works

There are no entries in either "nginx-thumbnails-error.log" or "nginx-thumbnails-localhost-error.log".

There is an entry in "nginx-thumbnails-localhost-access.log" but not in "nginx-thumbnails-access.log".

In requests that resolve (i.e. without spaces) there are entries in both access logs.

When the request fails the user agent is missing from "nginx-thumbnails-localhost-access.log" (no idea if that's relevant).

server {
    # Internal image resizing server.
    server_name localhost;
    listen 8888;

    access_log /var/log/nginx/nginx-thumbnails-localhost-access.log;
    error_log /var/log/nginx/nginx-thumbnails-localhost-error.log error;

    location ~ "^/width/(?<width>\d+)/(?<image>.+)$" {
        alias /home/$image;
        image_filter resize $width -;
        image_filter_jpeg_quality 95;
        image_filter_buffer 8M;
    }

    location ~ "^/height/(?<height>\d+)/(?<image>.+)$" {
        alias /home/$image;
        image_filter resize - $height;
        image_filter_jpeg_quality 95;
        image_filter_buffer 8M;
    }

    location ~ "^/resize/(?<width>\d+)/(?<height>\d+)/(?<image>.*)$" {
        alias /home/$image;
        image_filter resize $width $height;
        image_filter_jpeg_quality 95;
        image_filter_buffer 8M;
    }

    location ~ "^/crop/(?<width>\d+)/(?<height>\d+)/(?<image>.*)$" {
        alias /home/$image;
        image_filter crop $width $height;
        image_filter_jpeg_quality 95;
        image_filter_buffer 8M;
    }
}

proxy_cache_path /tmp/nginx-thumbnails-cache/ levels=1:2 keys_zone=thumbnails:10m inactive=24h max_size=1000m;

server {
    listen 80;
    listen [::]:80;

    server_name ;

    access_log /var/log/nginx/nginx-thumbnails-access.log;
    error_log /var/log/nginx/nginx-thumbnails-error.log error;

    location ~ "^/width/(?<width>\d+)/(?<image>.+)$" {
        # Proxy to internal image resizing server.
        proxy_pass localhost:8888/width/$width/$image;
        proxy_cache thumbnails;
        proxy_cache_valid 200 24h;
    }

    location ~ "^/height/(?<height>\d+)/(?<image>.+)$" {
        # Proxy to internal image resizing server.
        proxy_pass localhost:8888/height/$height/$image;
        proxy_cache thumbnails;
        proxy_cache_valid 200 24h;
    }

    location ~ "^/resize/(?<width>\d+)/(?<height>\d+)/(?<image>.+)$" {
        # Proxy to internal image resizing server.
        proxy_pass localhost:8888/resize/$width/$height/$image;
        proxy_cache thumbnails;
        proxy_cache_valid 200 24h;
    }

    location ~ "^/crop/(?<width>\d+)/(?<height>\d+)/(?<image>.+)$" {
        # Proxy to internal image resizing server.
        proxy_pass localhost:8888/crop/$width/$height/$image;
        proxy_cache thumbnails;
        proxy_cache_valid 200 24h;
    }
}

A test for this error can be created very easily, I did so on an Ubuntu 22 Digital Ocean Droplet.

apt update apt install nginx ufw allow 'Nginx Full' nginx -v

nginx version: nginx/1.18.0

nano /etc/nginx/sites-available/thumbnails service nginx restart mkdir /home/testdir mkdir /home/"test dir" curl "path/to/image" > /home/testdir/nginx.png curl "path/to/image" > /home/test dir/nginx.png

Test "/resize/200/200/testdir/nginx.png" and "/resize/200/200/test dir/nginx.png" in the browser and see they both work.

apt-add-repository ppa:ondrej/nginx-mainline -y apt update apt install nginx nginx -v

nginx version: nginx/1.23.0

service nginx restart

Test the two urls in the browser again and you will be able to see that the image directory "test dir" results in a 400 error.

#2439 wontfix 1.23.3: test suite is failing kloczek@…
Description
+ cd nginx-1.23.3
+ cd nginx-tests-master
+ TEST_NGINX_BINARY=../objs/nginx
+ prove . -j48
./binary_upgrade.t ......................... skipped: can leave orphaned process group
./geo_binary.t ............................. skipped: long configuration parsing
./addition_buffered.t ...................... ok
./addition.t ............................... ok
./access.t ................................. ok
./access_log_variables.t ................... ok
./autoindex.t .............................. ok
./auth_basic.t ............................. ok
./auth_request_set.t ....................... ok
./auth_request_satisfy.t ................... ok
./autoindex_format.t ....................... ok
./charset.t ................................ ok
./dav.t .................................... ok
./body_chunked.t ........................... ok
./dav_chunked.t ............................ ok
./charset_gzip_static.t .................... ok
./config_dump.t ............................ ok
./empty_gif.t .............................. ok
./access_log.t ............................. ok
./error_log.t .............................. ok
./auth_request.t ........................... ok
===(     424;0  0/6  15/17  1/7  0/7  1/7   1/10  1/7  0/4  1/4 ... )===which: no memcached in (/usr/bin:/usr/sbin:/usr/local/sbin)
./gunzip_memcached.t ....................... skipped: memcached not found
./geo_ipv6.t ............................... ok
./body.t ................................... ok
./geo.t .................................... ok
./grpc_next_upstream.t ..................... ok
./geoip.t .................................. ok
./fastcgi_body.t ........................... ok
./fastcgi_merge_params.t ................... ok
./fastcgi_extra_data.t ..................... ok
./fastcgi.t ................................ ok
./fastcgi_buffering.t ...................... ok
./fastcgi_cache.t .......................... ok
./fastcgi_header_params.t .................. ok
./fastcgi_unix.t ........................... ok
./debug_connection_unix.t .................. ok
./fastcgi_merge_params2.t .................. ok
./fastcgi_variables.t ...................... ok
./debug_connection.t ....................... ok
./geo_unix.t ............................... ok
./gunzip.t ................................. ok
./fastcgi_split.t .......................... ok
./gunzip_ssi.t ............................. ok
./gunzip_perl.t ............................ ok
./gzip.t ................................... ok
./gunzip_static.t .......................... ok
./grpc_request_buffering.t ................. ok
./gzip_flush.t ............................. ok
./h2_auth_request.t ........................ ok
./grpc_pass.t .............................. ok
./h2_request_body_js.t ..................... skipped: no njs available
./h2_proxy_protocol.t ...................... ok
./h2_limit_conn.t .......................... ok
./http_listen_wildcard.t ................... skipped: listen on wildcard address
./headers.t ................................ ok
./http_absolute_redirect.t ................. ok
===(     952;1  0/6  0/7  0/4  0/8   7/17   6/21   45/148   0/40... )===
#   Failed test 'range 2'
#   at ./http_listen.t line 81.
#                   'HTTP/1.1 502 Bad Gateway
# Server: nginx/1.23.3
# Date: Fri, 20 Jan 2023 06:07:12 GMT
# Content-Type: text/html
# Content-Length: 157
# Connection: close
#
# <html>
# <head><title>502 Bad Gateway</title></head>
# <body>
# <center><h1>502 Bad Gateway</h1></center>
# <hr><center>nginx/1.23.3</center>
# </body>
# </html>
# '
#     doesn't match '(?^:127.0.0.1:8183)'

#   Failed test 'inet6 range 2'
#   at ./http_listen.t line 86.
#                   'HTTP/1.1 502 Bad Gateway
# Server: nginx/1.23.3
# Date: Fri, 20 Jan 2023 06:07:12 GMT
# Content-Type: text/html
# Content-Length: 157
# Connection: close
#
# <html>
# <head><title>502 Bad Gateway</title></head>
# <body>
# <center><h1>502 Bad Gateway</h1></center>
# <hr><center>nginx/1.23.3</center>
# </body>
# </html>
# '
#     doesn't match '(?^:::1:8183)'
./http_disable_symlinks.t .................. ok
./http_location_win32.t .................... skipped: not win32
./http_error_page.t ........................ ok
./http_expect_100_continue.t ............... ok
./http_include.t ........................... ok
./http_headers_multi.t ..................... ok
./http_host.t .............................. ok
===(    1024;1  0/6  0/7  0/4  0/8   7/17   6/21   48/148   0/40... )===# Looks like you failed 2 tests of 11.
./http_listen.t ............................ Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/11 subtests
./h2_trailers.t ............................ ok
./h2_variables.t ........................... ok
./http_location_auto.t ..................... ok
./http_location.t .......................... ok
./h2_proxy_ssl.t ........................... ok
./http_method.t ............................ ok
./http_server_name.t ....................... ok
./http_try_files.t ......................... ok
./http_variables.t ......................... ok
./http_uri.t ............................... ok
./h2_server_tokens.t ....................... ok
./http_header_buffers.t .................... ok
./h2_ssl_variables.t ....................... ok
./ignore_invalid_headers.t ................. ok
./image_filter_webp.t ...................... ok
./index.t .................................. ok
./js.t ..................................... skipped: no njs available
./http_resolver_ipv4.t ..................... ok
./js_args.t ................................ skipped: no njs
./image_filter.t ........................... ok
./http_resolver_aaaa.t ..................... ok
./js_async.t ............................... skipped: no njs available
./js_body_filter.t ......................... skipped: no njs body filter
./js_body_filter_if.t ...................... skipped: no njs body filter
./h2_absolute_redirect.t ................... ok
./h2_proxy_max_temp_file_size.t ............ ok
./js_buffer.t .............................. skipped: no njs buffer
./js_dump.t ................................ skipped: no njs dump
./js_fetch.t ............................... skipped: no njs.fetch
./js_fetch_objects.t ....................... skipped: no njs
./h2_proxy_request_buffering_redirect.t .... ok
./js_fetch_resolver.t ...................... skipped: no njs.fetch
./js_fetch_timeout.t ....................... skipped: no js_fetch_timeout
./js_header_filter.t ....................... skipped: no njs header filter
./js_header_filter_if.t .................... skipped: no njs header filter
./js_headers.t ............................. skipped: no njs
./js_import.t .............................. skipped: no njs available
./grpc_ssl.t ............................... ok
./js_import2.t ............................. skipped: no njs available
./js_internal_redirect.t ................... skipped: no njs available
./js_modules.t ............................. skipped: no njs modules
./js_ngx.t ................................. skipped: no njs ngx
./js_object.t .............................. skipped: no njs request object
./js_paths.t ............................... skipped: no njs available
./http_keepalive_shutdown.t ................ ok
./js_promise.t ............................. skipped: no njs available
./h2_fastcgi_request_buffering.t ........... ok
./js_preload_object.t ...................... skipped: no js_preload_object available
./h2_priority.t ............................ ok
./h2_ssl_verify_client.t ................... ok
./js_request_body.t ........................ skipped: no njs request body
./js_return.t .............................. skipped: no njs return
./h2_ssl.t ................................. ok
./js_var.t ................................. skipped: no njs js_var
./fastcgi_request_buffering.t .............. ok
./js_subrequests.t ......................... skipped: no njs available
./js_var2.t ................................ skipped: no njs js_var
./js_fetch_verify.t ........................ skipped: no js_fetch_verify
./js_variables.t ........................... skipped: no njs
./limit_conn.t ............................. ok
./auth_delay.t ............................. ok
./limit_conn_dry_run.t ..................... ok
./h2_server_push.t ......................... ok
./limit_req_dry_run.t ...................... ok
./http_resolver_cleanup.t .................. ok
./h2_proxy_request_buffering.t ............. ok
./mail_max_errors.t ........................ ok
===(    1904;2  1/7  2/4  2/8  15/21   79/148   64/146   63/109 ... )===which: no memcached in (/usr/bin:/usr/sbin:/usr/local/sbin)
./memcached.t .............................. skipped: memcached not found
./mail_smtp_greeting_delay.t ............... ok
./mail_proxy_protocol.t .................... ok
./map_complex.t ............................ ok
===(    1964;2  2/7  2/4  2/8  15/21   80/148   75/146   65/109 ... )===which: no memcached in (/usr/bin:/usr/sbin:/usr/local/sbin)
./memcached_keepalive.t .................... skipped: memcached not found
===(    1966;2  2/7  2/4  2/8  15/21   80/148   76/146   65/109 ... )===which: no memcached in (/usr/bin:/usr/sbin:/usr/local/sbin)
./memcached_keepalive_stale.t .............. skipped: memcached not found
./map.t .................................... ok
./mail_proxy_smtp_auth.t ................... ok
./h2_proxy_request_buffering_ssl.t ......... ok
./map_volatile.t ........................... ok
./mail_capability.t ........................ ok
./mail_smtp_xclient.t ...................... ok
===(    1997;3  2/7  2/4  2/8  15/21   84/148   79/146   65/109 ... )===which: no ffprobe in (/usr/bin:/usr/sbin:/usr/local/sbin)
./mp4.t .................................... skipped: ffprobe not found
===(    1999;3  2/7  2/4  2/8  15/21   85/148   79/146   65/109 ... )===which: no ffprobe in (/usr/bin:/usr/sbin:/usr/local/sbin)
./mp4_ssi.t ................................ skipped: ffprobe not found
===(    2005;3  2/7  2/4  2/8  15/21   90/148   79/146   65/109 ... )===which: no ffprobe in (/usr/bin:/usr/sbin:/usr/local/sbin)
./mp4_start_key_frame.t .................... skipped: ffprobe not found
./h2_proxy_cache.t ......................... ok
./merge_slashes.t .......................... ok
./fastcgi_body2.t .......................... ok
./h2_ssl_proxy_cache.t ..................... ok
./mirror.t ................................. ok
./mail_error_log.t ......................... ok
./debug_connection_syslog.t ................ ok
./proxy_bind_transparent.t ................. skipped: must be root
./proxy_bind_transparent_capability.t ...... skipped: must be root
./msie_refresh.t ........................... ok
./not_modified.t ........................... ok
./not_modified_finalize.t .................. ok
./not_modified_proxy.t ..................... ok
./limit_req2.t ............................. ok
./perl_ssi.t ............................... ok
./perl_gzip.t .............................. ok
./memcached_fake_extra.t ................... ok
./post_action.t ............................ ok
./fastcgi_request_buffering_chunked.t ...... ok
./mail_ssl.t ............................... ok
./proxy_bind.t ............................. ok
./limit_req.t .............................. ok
./proxy_cache_manager.t .................... skipped: long test
./mail_ssl_conf_command.t .................. ok
./proxy_cache_bypass.t ..................... ok
./perl_sleep.t ............................. ok
./proxy_cache_control.t .................... ok
./proxy_cache_convert_head.t ............... ok
./js_fetch_https.t ......................... skipped: no njs.fetch
./proxy_cache_min_free.t ................... ok
./proxy_cache_max_range_offset.t ........... ok
./proxy_cache_path.t ....................... ok
./perl.t ................................... ok
./proxy_cache_variables.t .................. ok
./proxy_cookie.t ........................... ok
./proxy_cache_chunked.t .................... ok
./limit_conn_complex.t ..................... ok
./proxy_chunked.t .......................... ok
./h2_keepalive.t ........................... ok
./proxy_cookie_flags.t ..................... ok
./proxy_duplicate_headers.t ................ ok
./proxy_force_ranges.t ..................... ok
./memcached_fake.t ......................... ok
./proxy_implicit.t ......................... ok
./proxy_intercept_errors.t ................. ok
./proxy_extra_data.t ....................... ok
./proxy_cache_error.t ...................... ok
./proxy_cache_lock_age.t ................... ok
./proxy_method.t ........................... ok
./proxy_next_upstream.t .................... ok
./proxy_merge_headers.t .................... ok
./image_filter_finalize.t .................. ok
./proxy_non_idempotent.t ................... ok
./proxy_protocol.t ......................... ok
./proxy_protocol2_tlv.t .................... ok
./proxy_cache_range.t ...................... ok
./proxy_protocol_ipv6.t .................... ok
./proxy_protocol2.t ........................ ok
./proxy_protocol_unix.t .................... ok
./proxy_next_upstream_tries.t .............. ok
./mail_imap_ssl.t .......................... ok
./proxy_pass_request.t ..................... ok
./proxy_if.t ............................... ok
./proxy_redirect.t ......................... ok
./proxy_chunked_extra.t .................... ok
./proxy_request_buffering.t ................ ok
./proxy_request_buffering_keepalive.t ...... ok
./proxy_request_buffering_chunked.t ........ ok
./proxy_set_body.t ......................... ok
./proxy_ssi_body.t ......................... ok
./http_keepalive.t ......................... ok
./limit_req_delay.t ........................ ok
./proxy_request_buffering_ssl.t ............ ok
./h2_request_body.t ........................ ok
./proxy_upstream_cookie.t .................. ok
./proxy_max_temp_file_size.t ............... ok
./proxy_ssl_keepalive.t .................... ok
./mail_imap.t .............................. ok
./h2_request_body_extra.t .................. ok
./proxy_unix.t ............................. ok
./random_index.t ........................... ok
./proxy_xar.t .............................. ok
./grpc.t ................................... ok
./mail_pop3.t .............................. ok
./range.t .................................. ok
===(    3224;5  5/8   82/146  105/109  4/9   3/11  20/40   1/13 ... )===which: no ffmpeg in (/usr/bin:/usr/sbin:/usr/local/sbin)
./range_mp4.t .............................. skipped: ffmpeg not found
./proxy_variables.t ........................ ok
./proxy_ssl_conf_command.t ................. ok
./proxy_ssl_name.t ......................... ok
./proxy_websocket.t ........................ ok
./range_charset.t .......................... ok
./proxy_ssl_certificate_empty.t ............ ok
./mirror_proxy.t ........................... ok
./range_clearing.t ......................... ok
./range_flv.t .............................. ok
./range_if_range.t ......................... ok
./scgi.t ................................... skipped: SCGI not installed
./scgi_body.t .............................. skipped: SCGI not installed
./realip.t ................................. ok
./scgi_cache.t ............................. skipped: SCGI not installed
./realip_hostname.t ........................ ok
./scgi_extra_data.t ........................ skipped: SCGI not installed
./scgi_gzip.t .............................. skipped: SCGI not installed
./scgi_merge_params.t ...................... skipped: SCGI not installed
./realip_remote_addr.t ..................... ok
./realip_remote_port.t ..................... ok
./request_id.t ............................. ok
./rewrite.t ................................ ok
./proxy_keepalive.t ........................ ok
./rewrite_set.t ............................ ok
./referer.t ................................ ok
./mail_smtp.t .............................. ok
./rewrite_if.t ............................. ok
./rewrite_unescape.t ....................... ok
./proxy_ssl_certificate.t .................. ok
./ssl_engine_keys.t ........................ skipped: may not work, leaves coredump
./proxy_ssl_verify.t ....................... ok
./secure_link.t ............................ ok
./split_clients.t .......................... ok
./server_tokens.t .......................... ok
./ssi.t .................................... ok
./ssi_waited.t ............................. ok
./fastcgi_keepalive.t ...................... ok
./ssi_include_big.t ........................ ok
./ssi_if.t ................................. ok
./proxy_available.t ........................ ok
./proxy_ssl_certificate_vars.t ............. ok
./slice.t .................................. ok
./proxy_cache_valid.t ...................... ok
./proxy_unfinished.t ....................... ok
./ssl_curve.t .............................. ok
./stream_access_log_escape.t ............... ok
./stream_geo_binary.t ...................... skipped: long configuration parsing
./stream_access_log_none.t ................. ok
./ssl_certificates.t ....................... ok
./ssl_client_escaped_cert.t ................ ok
./stream_access.t .......................... ok
./stream_geo.t ............................. ok
./proxy_ssl.t .............................. ok
./proxy_noclose.t .......................... ok
./stream_geo_ipv6.t ........................ ok
./ssl_proxy_protocol.t ..................... ok
./stream_geo_unix.t ........................ ok
./stream_geoip.t ........................... ok
./h2_headers.t ............................. ok
./proxy_cache.t ............................ ok
./stream_js_buffer.t ....................... skipped: no njs ngx
./stream_js_exit.t ......................... skipped: no stream njs available
./ssl_sni_reneg.t .......................... ok
./stream_js_fetch.t ........................ skipped: no stream njs available
./ssl_certificate_chain.t .................. ok
./h2_limit_req.t ........................... ok
./stream_error_log.t ....................... ok
./ssl_certificate_perl.t ................... ok
./stream_js.t .............................. skipped: no stream njs available
./ssl_conf_command.t ....................... ok
./ssl_sni_sessions.t ....................... ok
./ssi_delayed.t ............................ ok
./ssl_certificate.t ........................ ok
./stream_js_fetch_init.t ................... skipped: no stream njs available
./proxy_store.t ............................ ok
./stream_js_import.t ....................... skipped: no njs available
./stream_js_import2.t ...................... skipped: no njs available
./ssl_password_file.t ...................... ok
./stream_js_ngx.t .......................... skipped: no njs ngx
./stream_js_object.t ....................... skipped: no njs stream session object
./stream_js_preload_object.t ............... skipped: no js_preload_object available
./ssl_reject_handshake.t ................... ok
./stream_js_var.t .......................... skipped: no stream js_var
./proxy_cache_lock_ssi.t ................... ok
./ssl_crl.t ................................ ok
./stream_js_var2.t ......................... skipped: no stream js_var
./stream_js_variables.t .................... skipped: no stream njs available
./stream_js_send.t ......................... skipped: no stream njs available
./stream_limit_conn_dry_run.t .............. ok
./proxy_upgrade.t .......................... ok
./stream_map.t ............................. ok
./stream_proxy_bind.t ...................... ok
./stream_proxy_complex.t ................... ok
./stream_proxy_half_close.t ................ ok
./stream_proxy_protocol2_tlv.t ............. ok
./stream_limit_conn_complex.t .............. ok
./stream_limit_conn.t ...................... ok
./stream_proxy_next_upstream.t ............. ok
./stream_proxy_protocol.t .................. ok
./stream_proxy_protocol_ipv6.t ............. ok
./ssl_verify_client.t ...................... ok
./stream_realip_hostname.t ................. ok
./ssl_sni.t ................................ ok
./stream_set.t ............................. ok
./stream_split_clients.t ................... ok
./stream_realip.t .......................... ok
./stream_resolver.t ........................ ok
./stream_ssl_preread_protocol.t ............ ok
./stream_status_variable.t ................. ok
./stream_proxy_ssl_name.t .................. ok
./stream_proxy_protocol_ssl.t .............. ok
./stream_tcp_nodelay.t ..................... ok
./stream_proxy_ssl_verify.t ................ ok
./ssl_ocsp.t ............................... ok
./stream_proxy_ssl_certificate_vars.t ...... ok
./stream_ssl_variables.t ................... ok
./stream_udp_wildcard.t .................... skipped: listen on wildcard address
./stream_access_log.t ...................... ok
./ssl_verify_depth.t ....................... ok
./stream_ssl_conf_command.t ................ ok
./stream_proxy_ssl_conf_command.t .......... ok
./stream_ssl.t ............................. ok
./stream_js_fetch_https.t .................. skipped: no njs.fetch
./stream_proxy_ssl_name_complex.t .......... ok
./stream_udp_upstream_hash.t ............... ok
./stream_unix.t ............................ ok
./stream_ssl_preread.t ..................... ok
./stream_upstream_zone.t ................... ok
./stream_variables.t ....................... ok
./stream_ssl_alpn.t ........................ ok
./stream_upstream_hash.t ................... ok
./stream_ssl_realip.t ...................... ok
./sub_filter.t ............................. ok
./sub_filter_merge.t ....................... ok
./stream_upstream_max_conns.t .............. ok
./ssl_stapling.t ........................... ok
./stream_ssl_preread_alpn.t ................ ok
./stream_proxy_ssl_certificate.t ........... ok
./stream_ssl_verify_client.t ............... ok
./sub_filter_buffering.t ................... ok
./sub_filter_multi2.t ...................... ok
./h2_request_body_preread.t ................ ok
./ssl_proxy_upgrade.t ...................... ok
./stream_upstream_least_conn.t ............. ok
./sub_filter_perl.t ........................ ok
./stream_udp_upstream.t .................... ok
./sub_filter_slice.t ....................... ok
./upstream_hash_memcached.t ................ skipped: Cache::Memcached::Fast not installed
./sub_filter_ssi.t ......................... ok
./subrequest_output_buffer_size.t .......... ok
===(    4732;8   85/146  27/40   4/13  7/9  10/13  12/30  12/19 ... )===which: no uwsgi in (/usr/bin:/usr/sbin:/usr/local/sbin)
./uwsgi.t .................................. skipped: uwsgi not found
===(    4736;8   85/146  27/40   4/13  7/9  10/13  12/30  12/19 ... )===which: no uwsgi in (/usr/bin:/usr/sbin:/usr/local/sbin)
./uwsgi_body.t ............................. skipped: uwsgi not found
./stream_upstream_zone_ssl.t ............... ok
===(    4744;8   85/146  27/40   4/13  7/9  10/13  12/30  12/19 ... )===which: no uwsgi in (/usr/bin:/usr/sbin:/usr/local/sbin)
./uwsgi_ssl.t .............................. skipped: uwsgi not found
./trailers.t ............................... ok
./limit_rate.t ............................. ok
./stub_status.t ............................ ok
===(    4813;8   85/146  27/40   4/13  10/13  12/30  12/19  22/2... )===which: no uwsgi in (/usr/bin:/usr/sbin:/usr/local/sbin)
./uwsgi_ssl_verify.t ....................... skipped: uwsgi not found
./stream_ssl_certificate.t ................. ok
./upstream_zone.t .......................... ok
./upstream_ip_hash.t ....................... ok
./userid_flags.t ........................... ok
./userid.t ................................. ok
./upstream_ip_hash_ipv6.t .................. ok
./upstream.t ............................... ok
./upstream_hash.t .......................... ok
./xslt.t ................................... ok
./upstream_max_conns.t ..................... ok
./xslt_params.t ............................ ok
./stream_udp_upstream_least_conn.t ......... ok
./ssl_session_ticket_key.t ................. ok
./worker_shutdown_timeout_h2.t ............. ok
./upstream_least_conn.t .................... ok
./worker_shutdown_timeout_stream.t ......... ok
./worker_shutdown_timeout_proxy_upgrade.t .. ok
./stream_udp_proxy.t ....................... ok
./worker_shutdown_timeout_mail.t ........... ok
./worker_shutdown_timeout.t ................ ok
./upstream_zone_ssl.t ...................... ok
./proxy_limit_rate.t ....................... ok
./sub_filter_multi.t ....................... ok
./stream_udp_stream.t ...................... ok
./uwsgi_ssl_certificate_vars.t ............. ok
./stream_udp_limit_conn.t .................. ok
./proxy_cache_vary.t ....................... ok
./mail_resolver.t .......................... ok
./uwsgi_ssl_certificate.t .................. ok
./stream_proxy.t ........................... ok
./stream_proxy_ssl.t ....................... ok
./ssl.t .................................... ok
./stream_upstream.t ........................ ok
./proxy_cache_revalidate.t ................. ok
./stream_upstream_random.t ................. ok
./proxy.t .................................. ok
./stream_udp_proxy_requests.t .............. ok
./upstream_keepalive.t ..................... ok
./upstream_random.t ........................ ok
./syslog.t ................................. ok
./stream_udp_limit_rate.t .................. ok
./proxy_cache_lock.t ....................... ok
./proxy_cache_use_stale.t .................. ok
./h2.t ..................................... ok
./stream_limit_rate.t ...................... ok
./stream_limit_rate2.t ..................... ok
./http_resolver_cname.t .................... ok
./http_resolver.t .......................... ok

Test Summary Report
-------------------
./http_listen.t                          (Wstat: 512 Tests: 11 Failed: 2)
  Failed tests:  4, 8
  Non-zero exit status: 2
Files=438, Tests=5274, 24 wallclock secs ( 2.64 usr  1.24 sys + 112.97 cusr 24.06 csys = 140.91 CPU)
Result: FAIL
#357 fixed 1.4.1 + spdy + centos 6 + openssl-1.0.1e (static), firefox 21 ajax requests ssl spdy = segfault Valentin V. Bartenev Raif Atef
Description

Hello, on one of my servers, nginx suddenly started crashing on some AJAX-heavy pages when accessed via SSL+SPDY. It seems to happen only when Firefox is the client (tested with Firefox 21), latest version of chrome uses SPDY without crashing.

uname -a: Linux myserver.com 2.6.32-358.6.2.el6.x86_64 #1 SMP Thu May 16 20:59:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

nginx compile flags: CFLAGS="-g -O0" ./configure --with-pcre=/usr/local/src/nginx-1.4.1/pcre-8.32 --sbin-path=/usr/local/sbin --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_realip_module --with-http_ssl_module --with-openssl=/usr/local/src/nginx-1.4.1/openssl-1.0.1e --with-http_spdy_module --http-client-body-temp-path=/tmp/nginx_client --http-proxy-temp-path=/tmp/nginx_proxy --http-fastcgi-temp-path=/tmp/nginx_fastcgi --with-http_stub_status_module --with-debug

nginx log when crash happens: 2013/05/19 18:05:58 [notice] 26737#0: start worker process 26899 2013/05/19 18:05:58 [notice] 26737#0: signal 29 (SIGIO) received 2013/05/19 18:05:59 [notice] 26737#0: signal 17 (SIGCHLD) received 2013/05/19 18:05:59 [alert] 26737#0: worker process 26897 exited on signal 11 (core dumped) 2013/05/19 18:05:59 [notice] 26737#0: start worker process 26907 2013/05/19 18:05:59 [notice] 26737#0: signal 29 (SIGIO) received 2013/05/19 18:06:00 [notice] 26737#0: signal 17 (SIGCHLD) received 2013/05/19 18:06:00 [alert] 26737#0: worker process 26899 exited on signal 11 (core dumped) 2013/05/19 18:06:00 [notice] 26737#0: start worker process 26909 2013/05/19 18:06:00 [notice] 26737#0: signal 29 (SIGIO) received

nginx.conf http://pastebin.com/G9wAgyeh

gdb backtrace: # gdb /usr/local/sbin/nginx core.26899

... snip gpl stuff ...

Reading symbols from /usr/local/sbin/nginx...done. [New Thread 26899] Missing separate debuginfo for Try: yum --disablerepo='*' --enablerepo='*-debug*' install /usr/lib/debug/.build-id/50/fc20fea18a6f375789f0f86e28f463d50714fd Reading symbols from /lib64/libpthread.so.0...(no debugging symbols found)...done. [Thread debugging using libthread_db enabled] Loaded symbols for /lib64/libpthread.so.0 Reading symbols from /lib64/libcrypt.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libcrypt.so.1 Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/libdl.so.2 Reading symbols from /lib64/libz.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libz.so.1 Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /lib64/libfreebl3.so...(no debugging symbols found)...done. Loaded symbols for /lib64/libfreebl3.so Reading symbols from /lib64/libnss_files.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/libnss_files.so.2 Core was generated by `nginx: worker process '. Program terminated with signal 11, Segmentation fault. #0 0x0000003455283c56 in memset_sse2 () from /lib64/libc.so.6 Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6.x86_64 nss-softokn-freebl-3.12.9-11.el6.x86_64 zlib-1.2.3-29.el6.x86_64 (gdb) bt #0 0x0000003455283c56 in memset_sse2 () from /lib64/libc.so.6 #1 0x0000000000493a67 in ngx_http_spdy_state_data (sc=0x3035ba0, pos=0x37c78f8 "", end=0x37c78f8 "") at src/http/ngx_http_spdy.c:1193 #2 0x0000000000492673 in ngx_http_spdy_state_head (sc=0x3035ba0, pos=0x37c78f8 "", end=0x37c78f8 "") at src/http/ngx_http_spdy.c:699 #3 0x00000000004919e2 in ngx_http_spdy_read_handler (rev=0x7f0318ffe3b8) at src/http/ngx_http_spdy.c:364 #4 0x000000000042ac31 in ngx_event_process_posted (cycle=0x2893a30, posted=0x8d1b68) at src/event/ngx_event_posted.c:40 #5 0x000000000042887c in ngx_process_events_and_timers (cycle=0x2893a30) at src/event/ngx_event.c:276 #6 0x0000000000435ebd in ngx_worker_process_cycle (cycle=0x2893a30, data=0x1) at src/os/unix/ngx_process_cycle.c:807 #7 0x00000000004327ca in ngx_spawn_process (cycle=0x2893a30, proc=0x435cf7 <ngx_worker_process_cycle>, data=0x1, name=0x609c9b "worker process", respawn=1) at src/os/unix/ngx_process.c:198 #8 0x0000000000435906 in ngx_reap_children (cycle=0x2893a30) at src/os/unix/ngx_process_cycle.c:619 #9 0x00000000004345ed in ngx_master_process_cycle (cycle=0x2893a30) at src/os/unix/ngx_process_cycle.c:180 #10 0x00000000004041b6 in main (argc=3, argv=0x7fffb6c2dbd8) at src/core/nginx.c:412

Server has a Core i3 540 with HT, OS is 64-bit CentOS 6 fully patched (as of date of this message).

  • kernel log when error occurred:

May 19 18:06:00 saruman kernel: nginx[26899]: segfault at 0 ip 0000003455283c56 sp 00007fffb6c2d498 error 6 in libc-2.12.so[3455200000+18a000]

The crash is highly reproducible and when it crashes the ip and sp parameters and offsets are always the same.

I hope I've posted enough info.

I maybe a C newbie, but it looks to me that the way firefox 21 is doing spdy causes the request body buffer pointer to be null.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Batch Modify
Note: See TracBatchModify for help on using batch modify.
Note: See TracQuery for help on using queries.