OpenResty 1.7.10.2 released

Hi folks!

I am pleased to announce the new formal release, 1.7.10.2, of the
OpenResty bundle:

https://openresty.org/#Download

We include a lot of fixes and new features accumulated in the last few
months.

Special thanks go to all our contributors and users for making this
happen!

Below is the complete change log for this release, as compared to the
last formal release (1.7.10.1):

  • bugfix: ./configure: fixed the “–without-http_rewrite_module”
    option by disabling the ngx_devel_kit (NDK) module automatically;
    also
    automatically disable the the ngx_encrypted_session module when
    the ngx_devel_kit (NDK) module is disabled.

  • bugfix: ./configure: removed hacks to work around an old bug in
    the ngx_lua module’s build system (just recently fixed in
    the ngx_lua module).

  • bugfix: LuaJIT compilation might fail when old gcc 4 compilers
    are used (like gcc 4.1.0). this regression had appeared in
    OpenResty 1.7.7.2. thanks aseiot for the report.

  • upgraded resty-cli to 0.03.

    • bugfix: resty: command-line options did not pass to the user
      Lua script unless “–” was intentionally specified. now
      standalone Lua scripts with a shebang line work out of the
      box (if LuaJIT is used, which is the default). thanks
      neomantra for the report.

    • bugfix: resty: now sends “error_log” to “stderr” instead of
      the system-specific path “/dev/stderr”. thanks Evan Wies for
      the patch.

    • doc: added the new section “Test Suite” as per Enrique
      Garcia’s request.

    • tests: fixed test failures on Mac OS X. thanks Enrique
      García for the report.

  • upgraded the ngx_lua module to 0.9.16.

    • feature: ngx.encode_base64(): added support for the
      “no_padding” boolean argument to disable padding when a true
      value is specified. thanks Shuxin Yang for the patch.

    • feature: fixed compilation failures with nginx 1.9.0. thanks
      Charles R. Portwood II for the original patch.

    • feature: removed the dead code for the old “NGX_THREADS”
      mode which breaks the new nginx (1.7.11+) with thread pool
      support. thanks Tatsuhiko Kubo for the patch.

    • bugfix: use of “ngx_http_image_filter_module” might lead to
      request hang due to duplicate header filter invocations.
      thanks Antony Dovgal for the report.

    • bugfix: we should never automatically set “Content-Type” on
      304 responses. thanks Simon Eskildsen for the patch.

    • bugfix: raw downstream cosockets did not support
      full-deplexing. thanks aviramc for the bug report and the
      original patch.

    • bugfix: we did not always discard the request body if the
      user Lua handlers didn’t, which might cause 400 error pages
      for keep-alive or pipelined requests. thanks Shuxin Yang for
      the original patch.

    • bugfix: ngx.resp.get_headers(): some built-in headers were
      not accessible via lowercase. thanks Nick Muerdter for the
      patch.

    • bugfix: we might still pick up Lua/LuaJIT headers/libraries
      in the paths specified by nginx ./configure’s
      “–with-cc-opt=OPTS” and “–with-ld-opt=OPTS” optons even
      when the LUAJIT_INC LUAJIT_LIB or LUA_INC LUA_LIB
      environments are explicitly specified.

    • bugfix: config: we might miss the linker option “-ldl” when
      we shouldn’t. this might lead to build failures.

    • bugfix: access nonexistent fields in the “ngx” table in
      init_by_lua* could lead to the exception “no request object
      found” because of the overreacting “__index” metamethod of
      the “ngx” table.

    • bugfix: fixed compilation failures with very old versions of
      PCRE, like 4.5.

    • doc: fixed a bug in an example where both rewrite_by_lua and
      content_by_lua produce response outputs. thanks fengidri for
      the report.

    • doc: fixed the context for the lua_need_request_body
      directive. thanks Tatsuhiko Kubo for the patch.

    • doc: fixed the code sample for ngx.redirect() to reflect
      recent changes there. thanks Zi Lin for the report.

    • doc: added a note on possible uninitialized variables for
      short-circuited requests. thanks Simon Eskildsen for the
      patch.

    • tests: fixed nondeterminism due to unordered Lua table
      iterations. thanks Markus Linnala for the patch.

  • upgraded the ngx_headers_more module to 0.26.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • optimize: removed the unused C function
      “ngx_http_headers_more_rm_header”. thanks Markus Linnala for
      the catch.

    • doc: made it clear that more_set_headers always override
      existing headers with the same name.

  • upgraded the ngx_set_misc module to 0.29.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • tests: add openssl hmac defensive test. thanks Markus
      Linnala for the patch.

  • upgraded the ngx_lua_upstream module to 0.03.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • doc: README.md: fixed the get_backup_peers example. thanks
      Jakub Kramarz for the patch.

  • upgraded the ngx_srcache module to 0.30.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.
  • upgraded the ngx_drizzle module to 0.1.9.

    • feature: fixed compilation errors with nginx 1.9.1+.

    • feature: automatic libdrizzle path discovery for Ubuntu
      12.04. thanks Mathew Heard for the patch.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

  • upgraded the ngx_postgres module to 1.0rc6.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • bugfix: use “ngx_abs()” instead of “abs()” to fix one clang
      warning (“-Wabsolute-value”).

  • upgraded the ngx_rds_csv module to 0.06.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • bugfix: fixed two clang “-Wconditional-uninitialized”
      warnings.

    • doc: improved the documentation a lot.

  • upgraded the ngx_rds_json module to 0.14.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • doc: improved the documentation a lot.

  • upgraded the ngx_echo module to 0.58.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • bugfix: we no longer break on subrequests when the
      “ngx_http_ssi_module” is diasbled. thanks Anthony Ryan for
      the patch.

    • bugfix: use of “ngx_http_image_filter_module” might lead to
      request hang due to duplicate header filter invocations.

  • upgraded the ngx_memc module to 0.16.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • bugfix: fixed clang warnings on “unused variables” in the
      Ragel generated source.

  • upgraded the ngx_redis2 module to 0.12.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • bugfix: fixed clang warnings on “unused variables” in the
      Ragel generated source.

    • bugfix: always set the response status code in case of bad
      statuses like 504. thanks Kaito Sys for the report.

    • doc: typo fixes from Karan Chaudhary.

  • upgraded the ngx_encrypted_session module to 0.04.

    • feature: added debugging logs for expiration times during
      encryption and decription. also adjusted other debug logging
      messages a bit. thanks Kalpesh P. for requesting this.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • bugfix: fixed warnings from the Microsoft C/C++ compiler.
      thanks Edwin Cleton for the report.

    • doc: improved the documentation a lot.

  • upgraded the ngx_iconv module to 0.11.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.
  • upgraded the ngx_array_var module to 0.04.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • doc: improved the documentation a lot.

  • upgraded the ngx_xss module to 0.05.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.

    • bugfix: fixed clang warnings on “unused variables” in the
      Ragel generated source.

    • doc: improved the documentation a lot.

  • upgraded the ngx_form_input module to 0.11.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.
  • upgraded the ngx_coolkit module to 0.2rc3.

    • feature: fixed compilation failures with nginx 1.7.11+
      configured with “–with-threads”.
  • upgraded LuaJIT to v2.1-20150622:
    Tags · openresty/luajit2 · GitHub

    • imported Mike Pall’s latest changes:

      • Add Xbox One port.

      • Fix narrowing of TOBIT.

      • x64: Allow building without external unwinder.

      • x86/x64: Fix argument check for bit shifts.

      • x64: Add LJ_GC64 mode interpreter. Enable this mode
        with: make “XCFLAGS=-DLUAJIT_ENABLE_GC64”

      • Disable trace stitching (for now) due to a design
        mistake.

      • Fix stack check in narrowing optimization.

      • ARM64: Fix math.floor/math.ceil for string args.

      • DynASM/PPC: Add sub/shift/rotate/clear instruction
        aliases.

      • DynASM/PPC: Add support for parameterized shifts/masks.

      • PPC: Fix cross-endian builds.

      • PPC: Fix write barrier in BC_TSETR.

      • Fix Lua/C API typecheck error for special indexes.

      • FFI: Fix FOLD rule for TOBIT + CONV num.u32.

      • ARM: Handle more arch defines.

      • Properly fail unsupported cross-compile to MIPS64.

The HTML version of the change log with lots of helpful hyper-links
can be browsed here:

http://openresty.org/#ChangeLog1007010

The next formal release of OpenResty will be based on the new Nginx
1.9.x core.

OpenResty (aka. ngx_openresty) is a full-fledged web application
server by bundling the standard Nginx core, Lua/LuaJIT, lots of
3rd-party Nginx
modules and Lua libraries, as well as most of their external
dependencies. See OpenResty’s homepage for details:

http://openresty.org/

We have run extensive testing on our Amazon EC2 test cluster and
ensured that all the components (including the Nginx core) play well
together. The latest test report can always be found here:

http://qa.openresty.org

Have fun!

Best regards,
-agentzh