Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 724646 - www-servers/nginx uses outdated and unsupported module ngx_brotli from the wrong source
Summary: www-servers/nginx uses outdated and unsupported module ngx_brotli from the wr...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Thomas Deutschmann (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-05-23 10:59 UTC by Roman Petrov
Modified: 2020-05-26 18:41 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Roman Petrov 2020-05-23 10:59:04 UTC
The brotli module is downloaded from https://github.com/eustas/ngx_brotli. This is an error because the ngx_brotli module is developed in the google/ngx_brotli repository (see comment: Merged back to google/ngx_brotli).

Correctly download the module source code from the repository: https://github.com/google/ngx_brotli (at the time of writing the bug report is available version v1.0.0rc).

Reproducible: Always

Steps to Reproduce:
Take a look at the contents of nginx ebuild.
Actual Results:  
You'll see:
HTTP_BROTLI_MODULE_URI="https://github.com/eustas/ngx_brotli/archive/${HTTP_BROTLI_MODULE_PV}.tar.gz"
Comment 1 Thomas Deutschmann (RETIRED) gentoo-dev 2020-05-23 21:52:42 UTC
It's not "wrong". Repo content was moved. There wasn't a new release since then. I'll "switch" once there is a new release...
Comment 2 Roman Petrov 2020-05-24 06:06:39 UTC
The last change in eustas repository was more than 2 years ago, repository status was Archived.  After the merger, a large number of commits have been added to the module code in the google repository.

It is not correct to use the eustas repository with nginx 1.18.0. On my server it causes socket hangs when the traffic rises up to 1 gigabit. There is no problem with sockets when using the official module from google.

Also, there is a new release of njs 0.4.0 -> 0.4.1 module.
Comment 3 Thomas Deutschmann (RETIRED) gentoo-dev 2020-05-24 21:31:49 UTC
Could you share more details to back your claim? These are the changes currently missing: https://github.com/google/ngx_brotli/compare/536f5a91aae7f61998c0391359017704f607d624...master
I can't find any commit which indicates a problem you mentioned or fixes incompatibility between ngx_brotli and nginx-1.18...
Comment 4 Roman Petrov 2020-05-25 06:24:16 UTC
After updating nginx 1.16.0-r1 -> 1.18.0, I found a large number of sockets in CLOSE-WAIT state and increased CPU utilization by nginx processes. When nginx restarts, CLOSE-WAIT sockets are removed, but after one minute they start to appear again. I removed the ngx_brotli module and the socket problem is gone. Then I looked at nginx ebuild and found that the module was compiling from the eustas/ngx_brootli repository. I replaced the repository with google/ngx_brotli and built nginx - no problem with CLOSE-WAIT sockets.

I don't understand what purpose you're arguing for and refusing to update ebuild. The eustas repository is officially out of date, that's a fact. Using it is wrong, it's a fact, too.
Comment 5 Thomas Deutschmann (RETIRED) gentoo-dev 2020-05-25 10:28:26 UTC
You actually created an invalid bug.

You claim that we are using sources which are dead for two years which is not true.
I also showed you all the changes since then.

You are claiming that the current code shouldn't be used with 1.18 anymore. You failed to back this claim. Maybe you don't know but nginx 1.17.x which used that code for ~12m without any known problems just became 1.18.x. It's very unlikely that the problem you saw is caused by this.

Sure, arguing is pointless and with the next release we will switch sources but I don't like to just do things. I want to understand what's changing.
Comment 6 Roman Petrov 2020-05-26 06:31:45 UTC
You actually started an empty argument instead of fixing it quickly.

The last change of code in the eustas repository was on October 5, 2018, then only editing the README file. Do you think this is an active code development? The code hasn't developed in 2 years. Moreover, if you look carefully, most of the latest changes in the eustas repository were taken from google. Maybe you think that the code in eustas repository is perfect and does not need development?

The eustas repository has now been moved to Archived Read Only by the author. In fact, the repository has been abandoned! You are using an abandoned repository to build a module and you keep arguing. At the same time, the google repository is still under active development and there are code changes. Eugene Kliuchnikov (eustas) is working on code in google's repository.

The code from an abandoned repository should not be used anywhere, not only in nginx 1.18.x. The current code from the current google/ngx_brotli repository must be used.

Do you have problems criticizing your work? I don't see any other reason for this empty dispute.

Using an abandoned repository is a mistake.
Comment 7 Larry the Git Cow gentoo-dev 2020-05-26 18:41:37 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cea207f843acb7cd1d09b56a4302eb1155bf560f

commit cea207f843acb7cd1d09b56a4302eb1155bf560f
Author:     Thomas Deutschmann <whissi@gentoo.org>
AuthorDate: 2020-05-26 18:11:37 +0000
Commit:     Thomas Deutschmann <whissi@gentoo.org>
CommitDate: 2020-05-26 18:40:55 +0000

    www-servers/nginx: bump to v1.19.0 mainline
    
    - brotli module bumped to 1.0.0rc from new upstream
    
    - HTTP LUA module bumped to v0.10.16rc5
    
    - fancyindex module bumped to v0.4.3
    
    - nginScript module bumped to v0.4.1
    
    Closes: https://bugs.gentoo.org/724646
    Package-Manager: Portage-2.3.100, Repoman-2.3.22
    Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>

 www-servers/nginx/Manifest                         |    3 +
 .../nginx/files/http_brotli-detect-brotli-r3.patch |   28 +
 www-servers/nginx/nginx-1.19.0.ebuild              | 1093 ++++++++++++++++++++
 3 files changed, 1124 insertions(+)