Public bug reported:

When accepting client connections under load, duplicate endpoints may be
returned. These endpoints will have different (usually sequential) file
descriptors but will refer to the same connection (same server IP, same
server port, same client IP, same client port). Both copies of the
endpoint appear to be functional.

Reproduction requires:
- compilation of the attached server.c program
- wrk (https://github.com/wg/wrk) to generate load

The steps to reproduce are:
- run 'server' application in one console window
- run 'for i in {1..50}; do /opt/wrk/wrk -t 2 -c 1000 -d 5s --latency --timeout 
1s http://localhost:5555/post; done' in a second console window
- run the same command in a third window to generate concurrent load

You may need to run additional instance of the wrk command in multiple
windows to trigger the issue.

When the problem occurs the server executable will exit and print some 
debugging info. e.g.:
accerror = 1950892, counter = 10683, port = 59892, clientfd = 233, lastClient = 
232

This indicates that the sockets with file descriptors 233 and 232 are
duplicates.

The issue has been reproduced on fully patched versions of Ubuntu 20.04
and 18.04. Other versions have not been tested.

This issue was originally observed in Java and was reported against the Spring 
Framework:
https://github.com/spring-projects/spring-framework/issues/26434

Investigation from the Spring team and the Apache Tomcat team identified that 
it appeared to be a JDK issue:
https://bugs.openjdk.java.net/browse/JDK-8263243

Further research from the JDK team determined that the issue was at the
OS level. Hence this report.

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: linux-image-5.4.0-71-generic 5.4.0-71.79
ProcVersionSignature: Ubuntu 5.4.0-71.79-generic 5.4.101
Uname: Linux 5.4.0-71-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.20.11-0ubuntu27.16
Architecture: amd64
CasperMD5CheckResult: skip
CurrentDesktop: ubuntu:GNOME
Date: Thu Apr 15 12:52:53 2021
HibernationDevice: RESUME=UUID=f5a46e09-d99b-4475-8ab6-2cd70da8418d
InstallationDate: Installed on 2017-02-02 (1532 days ago)
InstallationMedia: Ubuntu 16.04.1 LTS "Xenial Xerus" - Release amd64 (20160719)
IwConfig:
 lo        no wireless extensions.
 
 docker0   no wireless extensions.
 
 eno1      no wireless extensions.
MachineType: Gigabyte Technology Co., Ltd. Default string
ProcFB: 0 VESA VGA
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-5.4.0-71-generic 
root=/dev/mapper/ubuntu--vg-root ro text
RelatedPackageVersions:
 linux-restricted-modules-5.4.0-71-generic N/A
 linux-backports-modules-5.4.0-71-generic  N/A
 linux-firmware                            1.187.10
RfKill:
 
SourcePackage: linux
UpgradeStatus: Upgraded to focal on 2020-09-07 (219 days ago)
dmi.bios.date: 06/13/2016
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: F22
dmi.board.asset.tag: Default string
dmi.board.name: X99-SLI-CF
dmi.board.vendor: Gigabyte Technology Co., Ltd.
dmi.board.version: x.x
dmi.chassis.asset.tag: Default string
dmi.chassis.type: 3
dmi.chassis.vendor: Default string
dmi.chassis.version: Default string
dmi.modalias: 
dmi:bvnAmericanMegatrendsInc.:bvrF22:bd06/13/2016:svnGigabyteTechnologyCo.,Ltd.:pnDefaultstring:pvrDefaultstring:rvnGigabyteTechnologyCo.,Ltd.:rnX99-SLI-CF:rvrx.x:cvnDefaultstring:ct3:cvrDefaultstring:
dmi.product.family: Default string
dmi.product.name: Default string
dmi.product.sku: Default string
dmi.product.version: Default string
dmi.sys.vendor: Gigabyte Technology Co., Ltd.

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug focal

** Attachment added: "Simple listening server to demonstrate issue"
   https://bugs.launchpad.net/bugs/1924298/+attachment/5488298/+files/server.c

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1924298

Title:
  accept returns duplicate endpoints under load

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1924298/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to