test suite failure with 1.20.1
Maxim Dounin
mdounin at mdounin.ru
Mon Jan 10 23:05:31 UTC 2022
Hello!
On Mon, Jan 10, 2022 at 01:28:52PM +0000, Hugo Lefeuvre wrote:
> Hi Maxim,
>
> On Sun, Jul 04, 2021 at 04:29:43AM +0300, Maxim Dounin wrote:
> > Hello!
> >
> > On Sat, Jul 03, 2021 at 09:18:53AM +0100, Hugo Lefeuvre wrote:
> >
> > > I am trying to run the test suite, but it seems that, no matter how I build
> > > Nginx, it systematically fails.
> > >
> > > It seems that, most (all?) of the time, tests fail because Nginx returns
> > > 403 error codes, e.g.:
> > >
> > > ./ssi_waited.t ............................. 1/3
> > > # Failed test 'waited non-active'
> > > # at ./ssi_waited.t line 60.
> > > # 'HTTP/1.1 403 Forbidden
> > > # Server: nginx/1.21.0
> > > # Date: Sat, 03 Jul 2021 08:06:00 GMT
> > > # Content-Type: text/html
> > > # Connection: close
> > > #
> > > # <html>
> > > # <head><title>403 Forbidden</title></head>
> > > # <body>
> > > # <center><h1>403 Forbidden</h1></center>
> > > # <hr><center>nginx/1.21.0</center>
> > > # </body>
> > > # </html>
> > > # '
> > > # doesn't match '(?^m:^xFIRSTxWAITEDxSECONDx$)'
> > >
> > > The runtime configuration is the default one from nginx-1.20.1.tar.gz
> > > (conf/nginx.conf).
> > >
> > > I must be doing something wrong with the build or run time configuration,
> > > but I cannot pinpoint what. Any idea?
> >
> > Test output suggests that you are testing nginx 1.21.0, not
> > 1.20.1. It looks like you are testing the wrong nginx binary, not
> > the one you think you are testing. This might be the reason, for
> > example, if you have some 3rd party modules compiled in and these
> > modules reject requests for some reason.
> >
> > For additional details try looking into test details - in
> > particular, test suite can leave full test configuration and logs
> > for you with TEST_NGINX_LEAVE environment variable set, or simply
> > cat the error log to the terminal before removing files with
> > TEST_NGINX_CATLOG. See README of the test suite for details.
>
> Sorry for the late answer, but better late than never!
>
> The reason was that I was running the test suite as root. Switching to a
> non-root user did the trick. I was indeed trying to run 1.21.1, not 1.20.1,
> that was a typo in the title.
>
> I think that the test suite README should mention that it cannot be run as
> root.
Ah, that's certainly explains the failure.
The test suite can be run as root, but, given that nginx switches
to a non-privileged user by default (https://nginx.org/r/user),
and temporary directory is only readable by the owner, running
test suite as root requires some additional tuning for most of the
tests to work, e.g.:
# TEST_NGINX_GLOBALS="user root wheel;" prove ssi_waited.t
The fact that the test suite by default is expected to be run
under a normal user is already in the README, though may be in
somewhat obscure form: note the "$ " prompt in the usage example.
--
Maxim Dounin
http://mdounin.ru/
More information about the nginx-devel
mailing list