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

CXPLAT_DBG_ASSERT(QuicSendCanSendFlagsNow(Send)) during SpinQuic #1749

Closed
nibanks opened this issue Jun 19, 2021 · 0 comments · Fixed by #1817
Closed

CXPLAT_DBG_ASSERT(QuicSendCanSendFlagsNow(Send)) during SpinQuic #1749

nibanks opened this issue Jun 19, 2021 · 0 comments · Fixed by #1817
Labels
Area: Stress Related to stress testing with spinquic Bug: Core A code bug in the Core MsQuic code
Milestone

Comments

@nibanks
Copy link
Member

nibanks commented Jun 19, 2021

Describe the bug

In a recent CI run (on a PR, but unrelated to those changes) SpinQuic hit an assert in the send path:

https://dev.azure.com/ms/msquic/_build/results?buildId=182612&view=logs&j=51112e0e-d4bf-599d-62d4-ebd63a85b53f&t=22852c8a-2900-5132-eae0-719cd7e8f78f&l=14

0b 000000d7`c26fe950 00007ffa`78dc874b msquic!QuicSendFlush+0x517 [D:\a\1\msquic\src\core\send.c @ 1036] 
0c 000000d7`c26ff210 00007ffa`78e062cc msquic!QuicConnDrainOperations+0x67b [D:\a\1\msquic\src\core\connection.c @ 6755] 
0d 000000d7`c26ff470 00007ffa`78e0366e msquic!QuicWorkerProcessConnection+0x59c [D:\a\1\msquic\src\core\worker.c @ 487] 
0e 000000d7`c26ff720 00007ffa`77febf14 msquic!QuicWorkerThread+0x34e [D:\a\1\msquic\src\core\worker.c @ 579] 
0f 000000d7`c26ff950 00007ffa`ab2654e0 clang_rt_asan_dbg_dynamic_x86_64!_asan_wrap_GlobalSize+0x5924a
10 000000d7`c26ff990 00007ffa`abbe05fb kernel32!BaseThreadInitThunk+0x10
11 000000d7`c26ff9c0 00000000`00000000 ntdll!RtlUserThreadStart+0x2b
0:009> dv
             Send = 0x0000125f`5cdcd0d0
StreamPacketCount = 0
           Result = QUIC_SEND_COMPLETE (0n0)
          Builder = struct QUIC_PACKET_BUILDER
             Path = 0x0000125f`5cdcc7b0
    PrevSendFlags = 2
       Connection = 0x0000125f`5cdcc690
           Stream = 0x00000000`00000000
DeadlockDetection = 3
PrevPrevSendFlags = 2

0:009> ?? Send
struct QUIC_SEND * 0x0000125f`5cdcd0d0
   +0x000 FlushOperationPending : 0y1
   +0x000 DelayedAckTimerActive : 0y0
   +0x000 LastFlushTimeValid : 0y1
   +0x000 TailLossProbeNeeded : 0y0
   +0x008 NextPacketNumber : 2
   +0x010 LastFlushTime    : 0x000000a8`82cd2b3d
   +0x018 MaxData          : 0x1000000
   +0x020 PeerMaxData      : 0
   +0x028 OrderedStreamBytesReceived : 0
   +0x030 OrderedStreamBytesSent : 0
   +0x038 SendFlags        : 0
   +0x040 SendStreams      : CXPLAT_LIST_ENTRY
   +0x050 InitialToken     : (null) 
   +0x058 InitialTokenLength : 0

0:009> ?? Builder
struct QUIC_PACKET_BUILDER
   +0x000 Connection       : 0x000000d7`c26feba0 QUIC_CONNECTION
   +0x008 Path             : 0x00005480`2efd3e72 QUIC_PATH
   +0x010 SourceCid        : (null) 
   +0x018 SendData         : 0x00007ffa`78e27796 CXPLAT_SEND_DATA
   +0x020 Datagram         : 0x000000d7`c26fea10 QUIC_BUFFER
   +0x028 Key              : 0x000000d7`c26fef01 QUIC_PACKET_KEY
   +0x030 CipherBatch      : [128]  "???"
   +0x0b0 HpMask           : [128]  ""
   +0x130 HeaderBatch      : [8] (null) 
   +0x170 PacketBatchSent  : 0y0
   +0x170 PacketBatchRetransmittable : 0y0
   +0x170 BatchCount       : 0y0000
   +0x171 TotalCountDatagrams : 0 ''
   +0x172 EncryptionOverhead : 0 ''
   +0x174 EncryptLevel     : 0 ( QUIC_ENCRYPT_LEVEL_INITIAL )
   +0x178 PacketType       : 0 ''
   +0x179 PacketNumberLength : 0 ''
   +0x17a DatagramLength   : 0
   +0x17c TotalDatagramsLength : 0
   +0x180 MinimumDatagramLength : 0
   +0x182 PacketStart      : 0
   +0x184 HeaderLength     : 0
   +0x186 PayloadLengthOffset : 0
   +0x188 SendAllowance    : 0
   +0x190 Metadata         : (null) 
   +0x198 MetadataStorage  : QUIC_MAX_SENT_PACKET_METADATA

Dump File (with symbols): spinquic.exe.zip

@nibanks nibanks added Bug: Core A code bug in the Core MsQuic code Area: Stress Related to stress testing with spinquic labels Jun 19, 2021
@nibanks nibanks added this to the Nickel milestone Jun 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Stress Related to stress testing with spinquic Bug: Core A code bug in the Core MsQuic code
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant