Commit Graph

2101 Commits

Author SHA1 Message Date
aszlig
845e92835d
Merge Last-Modified fix for nginx (#76697)
This fixes the patch for nginx to clear the Last-Modified header if a
static file is served from the Nix store.

So far we only used the ETag from the store path, but if the
Last-Modified header is always set to "Thu, 01 Jan 1970 00:00:01 GMT",
Firefox and Chrome/Chromium seem to ignore the ETag and simply use the
cached content instead of revalidating.

Alongside the fix, this also adds a dedicated NixOS VM test, which uses
WebDriver and Firefox to check whether the content is actually served
from the browser's cache and to have a more real-world test case.
2020-01-02 21:41:59 +01:00
Florian Klink
03212a7f03
Merge pull request #76606 from flokli/mysql-tests
nixosTests.mysql: add more tests
2020-01-02 21:30:55 +01:00
misuzu
9980eb8734 nixosTests.3proxy: port test to python 2020-01-02 14:25:20 +02:00
Florian Klink
2393fa23f2
Merge pull request #76560 from nh2/kexec-test-python
nixosTests.kexec: port to python and mark as broken
2020-01-01 19:05:09 +01:00
Jörg Thalheim
a82f07cecf
netdata: 1.18.1 -> 1.19.0 (#75173)
netdata: 1.18.1 -> 1.19.0
2020-01-01 12:52:29 +00:00
Silvan Mosberger
fd7a019c70
nixosTests.haka: port to python (#76707)
nixosTests.haka: port to python
2020-01-01 03:31:11 +01:00
Aaron Andersen
66bf75415f
Merge pull request #76551 from symphorien/nagios2
nagios: various improvements
2019-12-30 14:21:03 -05:00
Oleksii Filonenko
ab63902d1f
nixosTests.haka: port to python 2019-12-30 17:57:00 +02:00
Symphorien Gibol
cb38bf33e7 nagios: add nixos test 2019-12-30 16:41:18 +01:00
aszlig
ccf55bead1
nginx: Clear Last-Modified if ETag is from store
This is what I've suspected a while ago[1]:

> Heads-up everyone: After testing this in a few production instances,
> it seems that some browsers still get cache hits for new store paths
> (and changed contents) for some reason. I highly suspect that it might
> be due to the last-modified header (as mentioned in [2]).
>
> Going to test this with last-modified disabled for a little while and
> if this is the case I think we should improve that patch by disabling
> last-modified if serving from a store path.

Much earlier[2] when I reviewed the patch, I wrote this:

> Other than that, it looks good to me.
>
> However, I'm not sure what we should do with Last-Modified header.
> From RFC 2616, section 13.3.4:
>
> - If both an entity tag and a Last-Modified value have been
>   provided by the origin server, SHOULD use both validators in
>   cache-conditional requests. This allows both HTTP/1.0 and
>   HTTP/1.1 caches to respond appropriately.
>
> I'm a bit nervous about the SHOULD here, as user agents in the wild
> could possibly just use Last-Modified and use the cached content
> instead.

Unfortunately, I didn't pursue this any further back then because
@pbogdan noted[3] the following:

> Hmm, could they (assuming they are conforming):
>
>  * If an entity tag has been provided by the origin server, MUST
>    use that entity tag in any cache-conditional request (using If-
>    Match or If-None-Match).

Since running with this patch in some deployments, I found that both
Firefox and Chrome/Chromium do NOT re-validate against the ETag if the
Last-Modified header is still the same.

So I wrote a small NixOS VM test with Geckodriver to have a test case
which is closer to the real world and I indeed was able to reproduce
this.

Whether this is actually a bug in Chrome or Firefox is an entirely
different issue and even IF it is the fault of the browsers and it is
fixed at some point, we'd still need to handle this for older browser
versions.

Apart from clearing the header, I also recreated the patch by using a
plain "git diff" with a small description on top. This should make it
easier for future authors to work on that patch.

[1]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-495072764
[2]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451644084
[3]: https://github.com/NixOS/nixpkgs/pull/48337#issuecomment-451646135

Signed-off-by: aszlig <aszlig@nix.build>
2019-12-30 14:30:36 +01:00
lewo
885c4cc97c
Merge pull request #76151 from Ma27/bump-hydra
hydra: 2019-08-30 -> 2019-11-13
2019-12-29 10:28:44 +01:00
Florian Klink
bf7841aae1 nixosTests.mysql: add additional test{db,user}2
Test that other users are not able to access the mysql database, and
unix socket auth actually works.
2019-12-28 15:31:12 +01:00
Florian Klink
7d64f7a534 nixosTests.mysql: add missing () to start_all()
Because mysql.wait_for_unit() starts the vm as well, we didn't notice
that.
2019-12-28 15:31:12 +01:00
Niklas Hambüchen
12e35035f6 nixosTests.kexec: port to python.
The test did not succeed for me before this commit
(the Perl test hung forever), and this translation exhibits
the same problem.
2019-12-27 01:22:35 +01:00
Maximilian Bosch
c5c7ccf022
nixos/nginx: fix test
When using format-strings, curly brackets need to be escaped using `{{`
to avoid errors from python.

And apparently, Perl's `==` is used to compare substrings[1] which is why
the translation to `assert http_code == "304"` failed as the string
contains several headers from curl.

[1] Just check `perl <(echo 'die "alarm" if "foo\n304" == 304')`
2019-12-26 18:50:38 +01:00
Maximilian Bosch
495b0b581c
nixos/tests/nginx-sso: add subtests for each assertion 2019-12-26 17:59:25 +01:00
Robin Gloster
abbce768dc
nixosTests.nginx*: review fixes
Co-Authored-By: Florian Klink <flokli@flokli.de>
2019-12-26 17:59:25 +01:00
Robin Gloster
1c2781d39c
nixosTests.nginx*: port to python 2019-12-26 17:59:25 +01:00
Aaron Andersen
4d2dd15546
Merge pull request #73113 from aanderse/httpd-vhost
nixos/httpd: support overridable virtual hosts
2019-12-26 08:09:08 -05:00
Maximilian Bosch
ec253e16cd
Merge pull request #76410 from nh2/mumble-test-python
nixosTests.mumble: port to python
2019-12-26 02:33:43 +01:00
Jörg Thalheim
89c55c0a6d
net-snmp: split outputs (#76155)
net-snmp: split outputs
2019-12-25 06:27:55 +00:00
Aaron Andersen
79215f0df1 nixos/httpd: limit serving web content to virtual hosts, convert virtualHosts option type from listOf to attrsOf, add ACME integration 2019-12-24 20:27:48 -05:00
markuskowa
0b41391890
Merge pull request #76425 from r-ryantm/auto-update/slurm
slurm: 19.05.4.1 -> 19.05.5.1
2019-12-24 20:19:50 +01:00
Markus Kowalewski
5041e1d848
nixos/slurm: fix perl->python conversion bug 2019-12-24 19:51:18 +01:00
Niklas Hambüchen
c6a032ecf6 nixosTests.mumble: port to python 2019-12-24 16:10:34 +01:00
Florian Klink
eeaf1f702d
Merge pull request #75103 from sternenseemann/spacecookie
services/spacecookie: init
2019-12-23 11:09:52 +01:00
Aaron Andersen
086d1ad906
Merge pull request #75047 from kampka/trilium-server
Add trilium server and module
2019-12-22 20:26:57 -05:00
Christian Kampka
ebf3f1fe78
trilium: Pin platforms to x86_64 linux 2019-12-22 15:04:09 +01:00
Maximilian Bosch
7675c0b2a9
nixos/tests/hydra: port to python 2019-12-22 14:36:11 +01:00
Jörg Thalheim
aadfcc0900
nixos/keepalived: add test 2019-12-22 08:52:56 +00:00
Maximilian Bosch
875ec0a707
nixos/hydra: also run test with pkgs.nixFlakes 2019-12-21 22:02:36 +01:00
Maximilian Bosch
f2915c1616
Merge pull request #75464 from mmilata/rspamd-python-test
nixosTests.rspamd: port to python
2019-12-21 01:25:18 +01:00
Dmitry Kalinkin
aa934faff2
Merge pull request #75703 from kampka/port-tests-3
Port NixOS tests to python
2019-12-20 09:52:33 -05:00
Florian Klink
dee7a7f301
Merge pull request #75721 from kampka/port-tests-networking
nixosTests.networking: Port tests to python
2019-12-19 21:10:37 +01:00
Michael Raskin
6210c15573
Merge pull request #67507 from misuzu/package-3proxy
3proxy: init at 0.8.13
2019-12-19 15:42:15 +00:00
Christian Kampka
9f97485399
trilium-server: Add nginx reverse proxy configuration to module 2019-12-19 10:14:13 +01:00
Christian Kampka
82f038d468
trilium-server: Add module 2019-12-19 10:14:12 +01:00
Frederik Rietdijk
f79e10061f Merge master into staging-next 2019-12-19 09:19:50 +01:00
Jan Tojnar
6be14ee97b
Merge pull request #53843 from hedning/session-default
nixos/displayManager: introduce defaultSession
2019-12-18 21:16:06 +01:00
Dmitry Kalinkin
9faa37cfdf
Merge pull request #75701 from kampka/port-tests-2
Port NixOS tests to python
2019-12-17 21:51:42 -05:00
Dmitry Kalinkin
fc47ec691f
Merge pull request #75695 from kampka/port-tests
Port NixOS tests to python
2019-12-17 21:45:59 -05:00
sternenseemann
25503db8e8 nixos/spacecookie: add service module and test 2019-12-17 14:17:03 +01:00
Christian Kampka
98d562f0b3
nixosTests.networking: Port tests to python 2019-12-17 11:22:28 +01:00
Christian Kampka
05587aba8b
nixosTests.hitch: Port tests to python 2019-12-17 09:37:07 +01:00
Christian Kampka
5cb7b2cf60
nixosTests.hadoop.yarn: Port tests to python 2019-12-17 09:37:06 +01:00
Christian Kampka
563eea492b
nixosTests.hadoop.hdfs: Port tests to python 2019-12-17 09:37:02 +01:00
Christian Kampka
a6ac3fd89f
nixosTests.initrd-network: Port tests to python 2019-12-16 12:52:34 +01:00
Christian Kampka
9fbb427f67
nixosTests.haproxy: Port tests to python 2019-12-16 12:52:33 +01:00
Christian Kampka
0de0b6a281
nixosTests.leaps: Port tests to python 2019-12-16 12:52:32 +01:00
Christian Kampka
40ed6896e3
nixosTests.lidarr: Port tests to python 2019-12-16 12:52:31 +01:00