Project

General

Profile

mod_compress issue on Solaris

Added by automatthias about 13 years ago

Hi,

I'm working on a Solaris 9 and 10 builds for OpenCSW. I got lighttpd to build, but one test is failing: mod_compress. Here's the output from VERBOSE=1 gmake check:

gmake[2]: Entering directory `/home/maciej/src/opencsw/pkg/lighttpd/trunk/work/solaris9-sparc/build-isa-sparcv8/lighttpd-1.4.28/tests'
preparing infrastructure                PASS: prepare.sh
./cachable.t .......... 
1..13
ok 1 - Starting lighttpd
ok 2 - Conditional GET - old If-Modified-Since
ok 3 - Conditional GET - old If-Modified-Since, comment
ok 4 - Conditional GET - new If-Modified-Since
ok 5 - Conditional GET - new If-Modified-Since, comment
ok 6 - Conditional GET - old If-None-Match
ok 7 - Conditional GET - old If-None-Match
ok 8 - Conditional GET - ETag + old Last-Modified
ok 9 - Conditional GET - ETag, Last-Modified + comment
ok 10 - Conditional GET - old ETAG + old Last-Modified
ok 11 - Conditional GET - ETag + Last-Modified + overlong timestamp
ok 12 - Conditional GET - ETag + disabled etags on server side
ok 13 - Stopping lighttpd
ok
./core-404-handler.t .. 
1..8
ok 1 - Starting lighttpd
ok 2 - 404 handler => static
ok 3 - 404 handler => dynamic(200)
ok 4 - 404 handler => dynamic(302)
ok 5 - 404 handler => dynamic(404)
ok 6 - 404 handler => dynamic(nostatus)
ok 7 - 404 generated by CGI should stay 404
ok 8 - Stopping lighttpd
ok
./core-condition.t .... 
1..17
ok 1 - Starting lighttpd
ok 2 - config deny
ok 3 - 2nd child of chaining
ok 4 - 3rd child of chaining
ok 5 - nesting
ok 6 - Stopping lighttpd
ok 7 - Starting lighttpd
ok 8 - condition: Referer - no referer
ok 9 - condition: Referer - referer matches regex
ok 10 - condition: Referer - no referer
ok 11 - condition: Referer - referer matches regex
ok 12 - condition: Referer - referer doesn't match
ok 13 - remote ip cache (\#255)
ok 14 - condition: $HTTP["referer"] == "" and Referer is no set
ok 15 - condition: $HTTP["referer"] == "" and Referer is empty
ok 16 - condition: $HTTP["referer"] == "" and Referer: foobar
ok 17 - Stopping lighttpd
ok
./core-keepalive.t .... 
1..7
ok 1 - Starting lighttpd
ok 2 - Explicit HTTP/1.0 Keep-Alive
ok 3 - Explicit HTTP/1.0 Keep-Alive
ok 4 - Implicit HTTP/1.0 Keep-Alive
ok 5 - Explicit HTTP/1.1 Keep-Alive
ok 6 - Implicit HTTP/1.1 Keep-Alive
ok 7 - Stopping lighttpd
ok
./core-request.t ...... 
1..36
ok 1 - Starting lighttpd
ok 2 - URL-encoding
ok 3 - URL-encoding, %00
ok 4 - hostname
ok 5 - IPv4 address
ok 6 - IPv6 address
ok 7 - hostname + port
ok 8 - IPv4 address + port
ok 9 - IPv6 address + port
ok 10 - directory traversal
ok 11 - leading and trailing dot
ok 12 - trailing dot is ok
ok 13 - leading dot
ok 14 - two dots
ok 15 - broken port-number
ok 16 - negative port-number
ok 17 - port given but host missing
ok 18 - port and host are broken
ok 19 - allowed characters in host-name
ok 20 - leading dash
ok 21 - dot only
ok 22 - broken IPv4 address - non-digit
ok 23 - broken IPv4 address - too short
ok 24 - negative Content-Length
ok 25 - Content-Length > max-request-size
ok 26 - Content-Length is empty

Low-Level Request-Header Parsing - HTTP/1.1
ok 27 - Host missing

Content-Type
ok 28 - Content-Type - image/jpeg
ok 29 - Content-Type - image/jpeg (upper case)
ok 30 - Content-Type - unknown
ok 31 - empty request-URI
ok 32 - uppercase filenames
ok 33 - \#1232 - duplicate headers with line-wrapping
ok 34 - \#1232 - duplicate headers with line-wrapping - test 2
ok 35 - \#1232 - duplicate headers with line-wrapping - test 3
ok 36 - Stopping lighttpd
ok
./core-response.t ..... 
1..12
ok 1 - Starting lighttpd
ok 2 - Date header
ok 3 - Host missing
ok 4 - ETag is set
ok 5 - ETag has quotes
ok 6 - Content-Length for text/html
ok 7 - Content-Length for text/plain
ok 8 - internal redirect in directory
ok 9 - internal redirect in directory + querystring
ok 10 - disabling simple-vhost via conditionals
ok 11 - simple-vhost via conditionals
ok 12 - Stopping lighttpd
ok
./core-var-include.t .. 
1..17
ok 1 - Starting lighttpd
ok 2 - basic test
ok 3 - array_append
ok 4 - number_append
ok 5 - env
ok 6 - concat
ok 7 - include
ok 8 - string_append
ok 9 - include_shell
ok 10 - var.myvar
ok 11 - servername3
ok 12 - number1
ok 13 - number2
ok 14 - servername2
ok 15 - myvar
ok 16 - servername1
ok 17 - Stopping lighttpd
ok
./core.t .............. 
1..21
ok 1 - Starting lighttpd
ok 2 - Valid HTTP/1.0 Request
ok 3 - missing Protocol
ok 4 - zeros in protocol version
ok 5 - missing major version
ok 6 - missing minor version
ok 7 - strings as version
ok 8 - missing protocol + unknown method
ok 9 - missing protocol + unknown method + missing URI
ok 10 - unknown method
ok 11 - unknown protocol
ok 12 - absolute URI

Low-Level Request-Header Parsing
ok 13 - whitespace after key
ok 14 - whitespace with-in key
ok 15 - no whitespace
ok 16 - line-folding

Low-Level Request-Header Parsing - URI
ok 17 - URL-encoding
ok 18 - URL-encoding, %00
ok 19 - OPTIONS
ok 20 - OPTIONS
ok 21 - Stopping lighttpd
ok
./lowercase.t ......... 
1..10
ok 1 - Starting lighttpd
ok 2 - uppercase access
ok 3 - lowercase access
ok 4 - uppercase access
ok 5 - lowercase access
ok 6 - upper case access to staticfile.exclude-extension
ok 7 - lowercase access
ok 8 - uppercase access to url.access-deny protected location
ok 9 - lowercase access
ok 10 - Stopping lighttpd
ok
./mod-access.t ........ 
1..4
ok 1 - Starting lighttpd
ok 2 - forbid access to ...~
ok 3 - \#1230 - forbid access to ...~ - trailing slash
ok 4 - Stopping lighttpd
ok
./mod-auth.t .......... 
1..14
ok 1 - Starting lighttpd
ok 2 - Missing Auth-token
ok 3 - Basic-Auth: Wrong Auth-token
ok 4 - Basic-Auth: Valid Auth-token - plain
ok 5 - Basic-Auth: Valid Auth-token - htpasswd (des)
ok 6 - Basic-Auth: Valid Auth-token - htpasswd (des) (lowercase)
ok 7 - Basic-Auth: Valid Auth-token - htpasswd (md5)
ok 8 - Basic-Auth: Valid Auth-token
ok 9 - Digest-Auth: missing qop, no crash
ok 10 - Digest-Auth: missing nc (noncecount instead), no crash
ok 11 - Basic-Auth: Invalid Base64
ok 12 - Digest-Auth: md5-sess + missing cnonce
ok 13 - Digest-Auth: trailing WS
ok 14 - Stopping lighttpd
ok
./mod-cgi.t ........... 
1..18
ok 1 - Starting lighttpd
ok 2 - perl via cgi
ok 3 - perl via cgi + pathinfo
ok 4 - perl via cgi + pathinfo
ok 5 - NPH + perl, invalid status-code (\#14)
ok 6 - NPH + perl, setting status-code (\#1125)
ok 7 - NPH + perl, setting status-code
ok 8 - cgi-env: GATEWAY_INTERFACE
ok 9 - cgi-env: QUERY_STRING
ok 10 - cgi-env: GATEWAY_INTERFACE
ok 11 - cgi-env: HTTP_HOST
ok 12 - cgi-env: quoting headers with numbers
ok 13 - cgi-env: HTTP_HOST
ok 14 - cgi-env: HTTP_HOST
ok 15 - cgi-env: HTTP_HOST
ok 16 - cgi-env: HTTP_HOST
ok 17 - broken header via perl cgi
ok 18 - Stopping lighttpd
ok
# 
# response-header failed: expected '1288', got '4348'

#   Failed test 'deflate - Content-Length and Content-Encoding is set'
#   at ./mod-compress.t line 45.
# 
# response-header failed: expected '1306', got '4348'

#   Failed test 'gzip - Content-Length and Content-Encoding is set'
#   at ./mod-compress.t line 63.
# 
# required header 'content-encoding' is missing

#   Failed test 'bzip2 requested but disabled'
#   at ./mod-compress.t line 100.
# Looks like you failed 3 tests of 11.
./mod-compress.t ...... 
1..11
ok 1 - Starting lighttpd
ok 2 - Vary is set
ok 3 - deflate - Content-Length and Content-Encoding is set
not ok 4 - deflate - Content-Length and Content-Encoding is set
ok 5 - gzip - Content-Length and Content-Encoding is set
not ok 6 - gzip - Content-Length and Content-Encoding is set
ok 7 - gzip, deflate - Content-Length and Content-Encoding is set
ok 8 - Content-Type is from the original file
ok 9 - Empty Accept-Encoding
not ok 10 - bzip2 requested but disabled
ok 11 - Stopping lighttpd
Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/11 subtests 
./mod-fastcgi.t ....... 
1..56
ok 1 # skip no php binary found
ok 2 # skip no PHP running on port 1026
ok 3 # skip no PHP running on port 1026
ok 4 # skip no PHP running on port 1026
ok 5 # skip no PHP running on port 1026
ok 6 # skip no PHP running on port 1026
ok 7 # skip no PHP running on port 1026
ok 8 # skip no PHP running on port 1026
ok 9 # skip no PHP running on port 1026
ok 10 # skip no PHP running on port 1026
ok 11 # skip no PHP running on port 1026
ok 12 # skip no PHP running on port 1026
ok 13 # skip no PHP running on port 1026
ok 14 # skip no PHP running on port 1026
ok 15 # skip no PHP running on port 1026
ok 16 # skip no PHP running on port 1026
ok 17 # skip no PHP running on port 1026
ok 18 # skip no PHP running on port 1026
ok 19 # skip no PHP running on port 1026
ok 20 # skip no PHP running on port 1026
ok 21 # skip no PHP running on port 1026
ok 22 # skip no PHP running on port 1026
ok 23 # skip no PHP running on port 1026
ok 24 # skip no PHP running on port 1026
ok 25 # skip no PHP running on port 1026
ok 26 # skip no PHP running on port 1026
ok 27 # skip no PHP running on port 1026
ok 28 # skip no PHP running on port 1026
ok 29 # skip no PHP running on port 1026
ok 30 # skip no PHP running on port 1026
ok 31 # skip no PHP running on port 1026
ok 32 # skip no PHP running on port 1026
ok 33 # skip no PHP running on port 1026
ok 34 # skip no PHP running on port 1026
ok 35 # skip PHP not started, cannot stop it
ok 36 # skip no fcgi-auth found
ok 37 # skip no fcgi-auth found
ok 38 # skip no fcgi-auth found
ok 39 # skip no fcgi-auth found
ok 40 # skip no fcgi-auth found
ok 41 # skip no php found
ok 42 # skip no php found
ok 43 # skip no php found
ok 44 # skip no php found
ok 45 # skip no php found
ok 46 # skip no fcgi-responder found
ok 47 # skip no fcgi-responder found
ok 48 # skip no fcgi-responder found
ok 49 # skip no fcgi-responder found
ok 50 # skip no fcgi-responder found
ok 51 # skip no fcgi-responder found
ok 52 # skip no fcgi-responder found
ok 53 # skip no fcgi-responder found
ok 54 # skip no fcgi-responder found
ok 55 # skip no fcgi-responder found
ok 56 # skip no fcgi-responder found
ok
./mod-proxy.t ......... 
1..9
ok 1 # skip no php binary found
ok 2 - Starting lighttpd
ok 3 - Starting lighttpd as proxy
ok 4 - valid request
ok 5 - drop Server from real server
ok 6 # skip no PHP running on port 1026
ok 7 - Stopping lighttpd proxy
ok 8 - Stopping lighttpd
ok 9 # skip PHP not started, cannot stop it
ok
./mod-redirect.t ...... 
1..7
ok 1 - Starting lighttpd
ok 2 - external redirect
ok 3 - external redirect should have a Content-Length: 0
ok 4 - external redirect with cond regsub
ok 5 - external redirect with cond regsub on remoteip
ok 6 - external redirect with cond regsub on remoteip2
ok 7 - Stopping lighttpd
ok
./mod-rewrite.t ....... 
1..8
ok 1 # skip no php binary found
ok 2 # skip no PHP running on port 1026
ok 3 # skip no PHP running on port 1026
ok 4 # skip no PHP running on port 1026
ok 5 # skip no PHP running on port 1026
ok 6 # skip no PHP running on port 1026
ok 7 # skip no PHP running on port 1026
ok 8 # skip PHP not started, cannot stop it
ok
./mod-secdownload.t ... 
1..7
ok 1 - Starting lighttpd
ok 2 - secdownload
ok 3 - secdownload - gone (timeout)
ok 4 - secdownload - direct access
ok 5 - secdownload - conditional access
ok 6 - secdownload - timeout
ok 7 - Stopping lighttpd
ok
./mod-setenv.t ........ 
1..6
ok 1 - Starting lighttpd
ok 2 - query first setenv
ok 3 - query second setenv
ok 4 - query add-request-header
ok 5 - query add-response-header
ok 6 - Stopping lighttpd
ok
./mod-ssi.t ........... 
1..4
ok 1 - Starting lighttpd
ok 2 - ssi - echo 
ok 3 - ssi - echo 
ok 4 - Stopping lighttpd
ok
./mod-userdir.t ....... 
1..5
ok 1 - Starting lighttpd
ok 2 - valid user
ok 3 - valid user + redirect
ok 4 - valid user + redirect
ok 5 - Stopping lighttpd
ok
./request.t ........... 
1..42
ok 1 - Starting lighttpd
ok 2 - file not found
ok 3 - file not found + querystring
ok 4 - GET, content == 12345, mimetype text/plain
ok 5 - GET, content == 12345, mimetype text/html
ok 6 - GET, content == 12345, mimetype application/octet-stream
ok 7 - POST request, no Content-Length
ok 8 - POST request, empty request-body
ok 9 - HEAD request, no content
ok 10 - HEAD request, mimetype text/html, content-length
ok 11 - HEAD request, file-not-found, query-string
ok 12 - Continue, Expect
ok 13 - GET, Range 0-3
ok 14 - GET, Range -3
ok 15 - GET, Range 3-
ok 16 - GET, Range 0-1,3-4
ok 17 - GET, Range 0--
ok 18 - GET, Range -2-3
ok 19 - GET, Range -0
ok 20 - GET, Range start out of range
ok 21 - larger headers
ok 22 - Duplicate Host headers, Bug \#25
ok 23 - Duplicate Content-Length headers
ok 24 - Duplicate Content-Type headers
ok 25 - Duplicate Range headers
ok 26 - Duplicate If-None-Match headers
ok 27 - Duplicate If-Modified-Since headers
ok 28 - GET, Range with range-requests-disabled
ok 29 - GET with Content-Length
ok 30 - OPTIONS with Content-Length
ok 31 - OPTIONS for RTSP
ok 32 - HEAD with Content-Length
ok 33 - Duplicate If-Mod-Since, with equal timestamps
ok 34 - invalid chars in Header values (bug \#1286)
ok 35 - empty If-Modified-Since
ok 36 - broken If-Modified-Since
ok 37 - broken If-Modified-Since
ok 38 - Similar Headers (bug \#1287)
ok 39 - If-Modified-Since
ok 40 - Status 304 has no Content-Length (\#1002)
ok 41 - GET, slow \r\n\r\n (\#2105)
ok 42 - Stopping lighttpd
ok
./symlink.t ........... 
1..10
ok 1 - Starting lighttpd
ok 2 - allow: simple file
ok 3 - allow: symlinked file
ok 4 - allow: directly symlinked dir
ok 5 - allow: symlinked dir in path
ok 6 - deny: simple file
ok 7 - deny: symlinked file
ok 8 - deny: directly symlinked dir
ok 9 - deny: symlinked dir in path
ok 10 - Stopping lighttpd
ok

Test Summary Report
-------------------
./mod-compress.t    (Wstat: 768 Tests: 11 Failed: 3)
  Failed tests:  4, 6, 10
  Non-zero exit status: 3
Files=23, Tests=342, 36 wallclock secs ( 0.69 usr  0.24 sys + 14.71 cusr 16.80 csys = 32.44 CPU)
Result: FAIL
Failed 1/23 test programs. 3/342 subtests failed.
FAIL: run-tests.pl
cleaning up                             PASS: cleanup.sh
=====================================
1 of 3 tests failed
Please report to contact@lighttpd.net
=====================================
gmake[2]: *** [check-TESTS] Error 1
gmake[2]: Leaving directory `/home/maciej/src/opencsw/pkg/lighttpd/trunk/work/solaris9-sparc/build-isa-sparcv8/lighttpd-1.4.28/tests'
gmake[1]: *** [check-am] Error 2
gmake[1]: Leaving directory `/home/maciej/src/opencsw/pkg/lighttpd/trunk/work/solaris9-sparc/build-isa-sparcv8/lighttpd-1.4.28/tests'
gmake: *** [check-recursive] Error 1

I had a suspicion that the mod_compress shared object is unable to find libz.so.1 or libbz2.so.1.0. At OpenCSW, shared libraries are in /opt/csw/lib, so I injected -R/opt/csw/lib to the linker invocation. After doing that, the libz and libbz2 are found by the shared object:

maciej@current9s :~/src/opencsw/pkg/lighttpd/trunk > /usr/ccs/bin/dump -Lv work/solaris9-sparc/build-isa-sparcv8/lighttpd-1.4.28/src/.libs/mod_compress.so | grep RUNPATH
[13]    RUNPATH         /opt/csw/lib/$ISALIST:/opt/csw/lib:/opt/csw/lib:/home/maciej/src/opencsw/pkg/lighttpd/trunk/work/solaris9-sparc/build-isa-sparcv8/lighttpd-1.4.28/src/.libs:/opt/csw/lib/lighttpd
maciej@current9s :~/src/opencsw/pkg/lighttpd/trunk > ldd work/solaris9-sparc/build-isa-sparcv8/lighttpd-1.4.28/src/.libs/mod_compress.so
        /usr/lib/secure/s9_preload.so.1
        libsendfile.so.1 =>      /usr/lib/libsendfile.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libz.so.1 =>     /opt/csw/lib/sparcv8plus+vis/libz.so.1
        libbz2.so.1.0 =>         /opt/csw/lib/sparcv8/libbz2.so.1.0
        liblightcomp.so =>       /home/maciej/src/opencsw/pkg/lighttpd/trunk/work/solaris9-sparc/build-isa-sparcv8/lighttpd-1.4.28/src/.libs/liblightcomp.so
        libresolv.so.2 =>        /usr/lib/libresolv.so.2
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
        libpcre.so.0 =>  /opt/csw/lib/sparcv8/libpcre.so.0
        libmp.so.2 =>    /usr/lib/libmp.so.2
        /usr/platform/SUNW,SPARC-Enterprise-T5220/lib/libc_psr.so.1

Unfortunately, the test still fails, so mod_compress is unhappy about something. What's the best way to get a specific error message?