Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

epoll multi connection client processes packets more than received #4673

Open
1 of 4 tasks
ami-GS opened this issue Dec 1, 2024 · 1 comment
Open
1 of 4 tasks

epoll multi connection client processes packets more than received #4673

ami-GS opened this issue Dec 1, 2024 · 1 comment

Comments

@ami-GS
Copy link
Contributor

ami-GS commented Dec 1, 2024

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)
@ami-GS
Copy link
Contributor Author

ami-GS commented Dec 2, 2024

@nibanks
dev/daiki/multi_conn_packets branch has the print.
You can easily repro with more connections

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant