Skip to content

epoll multi connection client processes packets more than received #4673

Open
@ami-GS

Description

@ami-GS

Describe the bug

msquic/src/core/connection.c

Lines 5600 to 5605 in 4eb7b0b

while ((Packet = Packets) != NULL) {
CXPLAT_DBG_ASSERT(Packet->Allocated);
CXPLAT_DBG_ASSERT(Packet->QueuedOnConnection);
Packets = (QUIC_RX_PACKET*)Packet->Next;
Packet->Next = NULL;

I checked how many packets are processed here.

    QUIC_RX_PACKET* Packet;
    uint32_t count = 0;
    while ((Packet = Packets) != NULL) {
        fprintf(stderr, "Packet processing (%d/%d)\n", ++count, PacketChainCount);

multi connection client process packets more than received

Packet processing (1401/55)

Affected OS

  • Windows
  • Linux
  • macOS
  • Other (specify below)

Additional OS information

No response

MsQuic version

main

Steps taken to reproduce bug

server

 ./artifacts/bin/linux/x64_Debug_openssl3/secnetperf -exec:maxtput -io:epoll -pollidle:1000

client

./artifacts/bin/linux/x64_Debug_openssl3/secnetperf -target:192.168.20.24 -exec:maxtput -down:10s -ptput:1 -tcp:0 -trimout -watchdog:25000 -pconn:1 -pstream:1 -io:epoll -conns:2

Expected behavior

Should be printing

Packet processing (55/55)

Actual outcome

Packet processing (1401/55)

Additional details

Server side is mostly as below. Enough fast?

Packet processing (1/1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions