[opensuse-kernel] is sendfile(2) support depending on network card driver?
Hi all, yesterday, I replaced the broken network card in my server machine at home running Leap 15.1. Old NIC was onboard e1000e, 8086:10df, new NIC is pci-e r8169, 10ec:8168 Everything looked good so far, but I wondered why the web pages served from apache on this host looked a bit "simple" :-). Something like "script generated content delivered, but static content missing". I could not find anything in apache logs, so I resorted to stracing it with a simple request that returned nothing: | seife@strolchi:~> curl -v http://server/owncloud/core/img/loading-dark.gif | * Trying 192.168.200.1:80... | * TCP_NODELAY set | * Connected to server (192.168.200.1) port 80 (#0) | > GET /owncloud/core/img/loading-dark.gif HTTP/1.1 | > Host: server | > User-Agent: curl/7.68.0 | > Accept: */* | > | * Mark bundle as not supporting multiuse | < HTTP/1.1 200 OK | < Date: Sat, 22 Feb 2020 09:08:59 GMT | < Server: Apache/2.4.33 (Linux/SUSE) | < Last-Modified: Wed, 03 Jul 2019 11:17:17 GMT | < ETag: "90c-58cc501036940" | < Accept-Ranges: bytes | < Content-Length: 2316 | < Content-Type: image/gif | < | * transfer closed with 2316 bytes remaining to read | * Closing connection 0 | curl: (18) transfer closed with 2316 bytes remaining to read The strace output contained: [pid 16528] openat(AT_FDCWD, "/srv/www/htdocs/owncloud/core/img/loading-dark.gif", O_RDONLY|O_CLOEXEC) = 22 [pid 16528] read(21, 0x5587151055c8, 8000) = -1 EAGAIN (Resource temporarily unavailable) [pid 16528] setsockopt(21, SOL_TCP, TCP_CORK, [1], 4) = 0 [pid 16528] writev(21, [{iov_base="HTTP/1.1 200 OK\r\nDate: Sat, 22 F"..., iov_len=234}], 1) = 234 [pid 16528] sendfile(21, 22, [0], 2316) = -1 EOPNOTSUPP (Operation not supported) [pid 16528] setsockopt(21, SOL_TCP, TCP_CORK, [0], 4) = 0 [pid 16528] write(15, "192.168.200.12 - - [22/Feb/2020:"..., 126) = 126 ==> sendfile EOPNOTSUPP I looked into the apache config, found /etc/apache2/server-tuning.conf where "EnableSendfile on" was configured, changed that to "off", restarted apache and everything is fine again. Now I'm just wondering what could have caused this to happen. The filesystem on /srv is XFS, underlying blockdevice is bcache and this has worked before without a problem. I cannot remember changing anything else than adding the new network card, but it is of course possible that I did (accidentally) change something since last reboot. (and of course, apache should not fail silently, but that's another bug to report) Any hints? Thanks, seife -- Stefan Seyfried "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." -- Richard Feynman -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
On 2/22/20 10:28 AM, Stefan Seyfried wrote:
Hi all,
yesterday, I replaced the broken network card in my server machine at home running Leap 15.1. Old NIC was onboard e1000e, 8086:10df, new NIC is pci-e r8169, 10ec:8168
Everything looked good so far, but I wondered why the web pages served from apache on this host looked a bit "simple" :-). Something like "script generated content delivered, but static content missing".
I could not find anything in apache logs, so I resorted to stracing it with a simple request that returned nothing:
| seife@strolchi:~> curl -v http://server/owncloud/core/img/loading-dark.gif | * Trying 192.168.200.1:80... | * TCP_NODELAY set | * Connected to server (192.168.200.1) port 80 (#0) | > GET /owncloud/core/img/loading-dark.gif HTTP/1.1 | > Host: server | > User-Agent: curl/7.68.0 | > Accept: */* | > | * Mark bundle as not supporting multiuse | < HTTP/1.1 200 OK | < Date: Sat, 22 Feb 2020 09:08:59 GMT | < Server: Apache/2.4.33 (Linux/SUSE) | < Last-Modified: Wed, 03 Jul 2019 11:17:17 GMT | < ETag: "90c-58cc501036940" | < Accept-Ranges: bytes | < Content-Length: 2316 | < Content-Type: image/gif | < | * transfer closed with 2316 bytes remaining to read | * Closing connection 0 | curl: (18) transfer closed with 2316 bytes remaining to read
The strace output contained: [pid 16528] openat(AT_FDCWD, "/srv/www/htdocs/owncloud/core/img/loading-dark.gif", O_RDONLY|O_CLOEXEC) = 22 [pid 16528] read(21, 0x5587151055c8, 8000) = -1 EAGAIN (Resource temporarily unavailable) [pid 16528] setsockopt(21, SOL_TCP, TCP_CORK, [1], 4) = 0 [pid 16528] writev(21, [{iov_base="HTTP/1.1 200 OK\r\nDate: Sat, 22 F"..., iov_len=234}], 1) = 234 [pid 16528] sendfile(21, 22, [0], 2316) = -1 EOPNOTSUPP (Operation not supported) [pid 16528] setsockopt(21, SOL_TCP, TCP_CORK, [0], 4) = 0 [pid 16528] write(15, "192.168.200.12 - - [22/Feb/2020:"..., 126) = 126
==> sendfile EOPNOTSUPP
I looked into the apache config, found /etc/apache2/server-tuning.conf where "EnableSendfile on" was configured, changed that to "off", restarted apache and everything is fine again.
Now I'm just wondering what could have caused this to happen. The filesystem on /srv is XFS, underlying blockdevice is bcache and this has worked before without a problem. I cannot remember changing anything else than adding the new network card, but it is of course possible that I did (accidentally) change something since last reboot.
(and of course, apache should not fail silently, but that's another bug to report)
Any hints?
How very curious. Care to open a bug and move it over to Denis Kirjanov, putting me and Michal Kubecek into Cc? Seems we want to look at it more closely... Cheers, Hannes -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@suse.de +49 911 74053 688 SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
Good morning Hannes, Am 22.02.20 um 10:45 schrieb Hannes Reinecke:
On 2/22/20 10:28 AM, Stefan Seyfried wrote:
==> sendfile EOPNOTSUPP
I looked into the apache config, found /etc/apache2/server-tuning.conf where "EnableSendfile on" was configured, changed that to "off", restarted apache and everything is fine again.
Any hints?
How very curious.
Care to open a bug and move it over to Denis Kirjanov, putting me and Michal Kubecek into Cc?
Done, https://bugzilla.opensuse.org/show_bug.cgi?id=1164617
Seems we want to look at it more closely...
I also became more curious, as your answer seemed to imply that it was not entirely my fault ;-) It works with Kernel:stable's kernel-default 5.5.5, will try the Leap 15.2 beta kernel next. -- Stefan Seyfried "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." -- Richard Feynman -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
Am 22.02.20 um 11:47 schrieb Stefan Seyfried:
It works with Kernel:stable's kernel-default 5.5.5, will try the Leap 15.2 beta kernel next.
15.2 5.3.18 also works well. Maybe that's a hint to upgrade the machine to 15.2 beta ;-) -- Stefan Seyfried "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." -- Richard Feynman -- To unsubscribe, e-mail: opensuse-kernel+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-kernel+owner@opensuse.org
participants (2)
-
Hannes Reinecke
-
Stefan Seyfried