Hi Lin,
Thanks for your exposing. I haven't meet this crash yet. But, I will check this 
potential crash according your feedback. If any process, I will inform you.

Thanks and Best Regards.
Jiaxin

> -----Original Message-----
> From: Gary Lin [mailto:g...@suse.com]
> Sent: Thursday, May 12, 2016 6:27 PM
> To: edk2-devel@lists.01.org
> Cc: Wu, Jiaxin <jiaxin...@intel.com>
> Subject: HTTP Boot crashed when downloading remote image
> 
> Hi,
> 
> I was testing HTTP Boot with the latest OMVF and found that it crashed when
> downloading the remote image from the http server. Here is my bisect result:
> 
> commit b347a22aecbfac9aac47831fee9a30aa810d6d0b
> NetworkPkg: Avoid the indefinite wait case in HttpDxe
> 
> Actually, it sometimes worked but was broken for the most of time.
> Reverting this patch makes HTTP Boot always work.
> 
> It seems the IP4 driver tried to remove a mnp event, but the event list was
> empty so the assert was triggered.
> 
> The debug message:
> 
> TcpToSendAck: scheduled a delayed ACK for TCB 3E2D2418
> TcpToSendAck: scheduled a delayed ACK for TCB 3E2D2418
> TcpInput: sequence acceptance test failed for segment of TCB 3E2D2418
> TcpInput: Discard a packet
> TcpInput: sequence acceptance test failed for segment of TCB 3E2D2418
> TcpInput: Discard a packet
> TcpInput: sequence acceptance test failed for segment of TCB 3E2D2418
> TcpInput: Discard a packet
> TcpInput: sequence acceptance test failed for segment of TCB 3E2D2418
> TcpInput: Discard a packet
> ASSERT /home/gary/git/edk2/MdePkg/Library/BaseLib/LinkedList.c(62): List-
> >BackLink != ((void *) 0)
> 
> The backtrace (I cut the trace before EfiBootManagerBoot to make it
> shorter):
> 
> (gdb) bt
> #0  0x000000003ff7f702 in CpuDeadLoop () at
> /home/gary/git/edk2/MdePkg/Library/BaseLib/CpuDeadLoop.c:37
> #1  0x000000003ff80a34 in DebugAssert (
>     FileName=0x3ff93b50
> "/home/gary/git/edk2/MdePkg/Library/BaseLib/LinkedList.c",
> LineNumber=62,
>     Description=0x3ff93bb0 "List->BackLink != ((void *) 0)")
>     at
> /home/gary/git/edk2/OvmfPkg/Library/PlatformDebugLibIoPort/DebugLib.c
> :153
> #2  0x000000003ff7f7e3 in InternalBaseLibIsNodeInList (List=0x3e2c40a0,
> Node=0x3e2c40a0,
>     VerifyNodeInList=0 '\000') at
> /home/gary/git/edk2/MdePkg/Library/BaseLib/LinkedList.c:62
> #3  0x000000003ff7fc49 in IsListEmpty (ListHead=0x3e2c40a0)
>     at /home/gary/git/edk2/MdePkg/Library/BaseLib/LinkedList.c:361
> #4  0x000000003ff7fec5 in RemoveEntryList (Entry=0x3e2c40a0)
>     at /home/gary/git/edk2/MdePkg/Library/BaseLib/LinkedList.c:545
> #5  0x000000003ff7a5e5 in CoreCloseEvent (UserEvent=0x3e2c4018)
>     at /home/gary/git/edk2/MdeModulePkg/Core/Dxe/Event/Event.c:752
> #6  0x000000003e99a910 in Ip4FreeFrameRxToken (Token=0x3e2c4118)
>     at
> /home/gary/git/edk2/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4If.c:38
> 0
> #7  0x000000003e99bdfe in Ip4RecycleFrame (Context=0x3e2c4118)
>     at
> /home/gary/git/edk2/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4If.c:11
> 24
> #8  0x000000003e9b26db in NetbufFreeVector (Vector=0x3e2c4798)
>     at
> /home/gary/git/edk2/MdeModulePkg/Library/DxeNetLib/NetBuffer.c:176
> #9  0x000000003e9b285e in NetbufFree (Nbuf=0x3e2c4698)
>     at
> /home/gary/git/edk2/MdeModulePkg/Library/DxeNetLib/NetBuffer.c:220
> #10 0x000000003e9a39b6 in Ip4OnRecyclePacket (Event=0x3e2c4198,
> Context=0x3e2c4398)
>     at
> /home/gary/git/edk2/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Input.
> c:1146
> #11 0x000000003ff79bd5 in CoreDispatchEventNotifies (Priority=16)
>     at /home/gary/git/edk2/MdeModulePkg/Core/Dxe/Event/Event.c:200
> #12 0x000000003ff79179 in CoreRestoreTpl (NewTpl=8) at
> /home/gary/git/edk2/MdeModulePkg/Core/Dxe/Event/Tpl.c:131
> #13 0x000000003ff660e0 in CoreReleaseLock (Lock=0x3ff98990)
>     at /home/gary/git/edk2/MdeModulePkg/Core/Dxe/Library/Library.c:102
> #14 0x000000003ff7996b in CoreReleaseEventLock () at
> /home/gary/git/edk2/MdeModulePkg/Core/Dxe/Event/Event.c:119
> #15 0x000000003ff7a32c in CoreSignalEvent (UserEvent=0x3e2c4198)
>     at /home/gary/git/edk2/MdeModulePkg/Core/Dxe/Event/Event.c:572
> #16 0x000000003e929c28 in IpIoExtFree (Event=0x3e2c4198)
>     at
> /home/gary/git/edk2/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c:596
> #17 0x000000003e9307fb in NetbufFreeVector (Vector=0x3e2c4598)
>     at
> /home/gary/git/edk2/MdeModulePkg/Library/DxeNetLib/NetBuffer.c:176
> #18 0x000000003e93097e in NetbufFree (Nbuf=0x3e2c4498)
>     at
> /home/gary/git/edk2/MdeModulePkg/Library/DxeNetLib/NetBuffer.c:220
> #19 0x000000003e932551 in NetbufQueTrim (NbufQue=0x3e2d2698,
> Len=59695)
>     at
> /home/gary/git/edk2/MdeModulePkg/Library/DxeNetLib/NetBuffer.c:1605
> #20 0x000000003e923fcd in SockProcessRcvToken (Sock=0x3e2d1018,
> RcvToken=0x3e2aa098)
>     at /home/gary/git/edk2/NetworkPkg/TcpDxe/SockImpl.c:346
> #21 0x000000003e919f5f in SockRcv (Sock=0x3e2d1018, Token=0x3e2aa098)
>     at /home/gary/git/edk2/NetworkPkg/TcpDxe/SockInterface.c:727
> #22 0x000000003e91ef11 in Tcp4Receive (This=0x3e2d1138,
> Token=0x3e2aa098)
>     at /home/gary/git/edk2/NetworkPkg/TcpDxe/TcpMain.c:440
> #23 0x000000003e8636e2 in HttpTcpReceiveBody (Wrap=0x3e2aa018,
> HttpMsg=0x3ef7e0d0, Timeout=0x3e2c6218)
>     at /home/gary/git/edk2/NetworkPkg/HttpDxe/HttpProto.c:1797
> #24 0x000000003e85f86c in HttpResponseWorker (Wrap=0x3e2aa018)
>     at /home/gary/git/edk2/NetworkPkg/HttpDxe/HttpImpl.c:1157
> #25 0x000000003e85fd2e in EfiHttpResponse (This=0x3e2d12a0,
> Token=0x3ef7e0b8)
>     at /home/gary/git/edk2/NetworkPkg/HttpDxe/HttpImpl.c:1323
> #26 0x000000003e845578 in HttpIoRecvResponse (HttpIo=0x3ef7e050,
> RecvMsgHeader=0 '\000', ResponseData=0x3ff593b0)
>     at
> /home/gary/git/edk2/NetworkPkg/HttpBootDxe/HttpBootSupport.c:921
> #27 0x000000003e847bb3 in HttpBootGetBootFile (Private=0x3ef7e018,
> HeaderOnly=0 '\000', BufferSize=0x3ff59550,
>     Buffer=0x3e16a018 "MZ\220", ImageType=0x3ff594b8)
>     at /home/gary/git/edk2/NetworkPkg/HttpBootDxe/HttpBootClient.c:1006
> #28 0x000000003e83ff69 in HttpBootLoadFile (Private=0x3ef7e018,
> BufferSize=0x3ff59550, Buffer=0x3e16a018,
>     ImageType=0x3ff594b8) at
> /home/gary/git/edk2/NetworkPkg/HttpBootDxe/HttpBootImpl.c:304
> #29 0x000000003e8404b2 in HttpBootDxeLoadFile (This=0x3ef7d030,
> FilePath=0x3ee1706e, BootPolicy=1 '\001',
>     BufferSize=0x3ff59550, Buffer=0x3e16a018) at
> /home/gary/git/edk2/NetworkPkg/HttpBootDxe/HttpBootImpl.c:489
> #30 0x000000003e2682b9 in BmGetFileBufferFromLoadFile
> (LoadFileHandle=0x3ef7d118, FilePath=0x3ee1706e,
>     FullPath=0x3ff596c0, FileSize=0x3ff596a8)
>     at
> /home/gary/git/edk2/MdeModulePkg/Library/UefiBootManagerLib/BmBoo
> t.c:1320
> #31 0x000000003e26859d in BmGetFileBufferFromLoadFiles
> (FilePath=0x3ee1706e, FullPath=0x3ff596c0,
>     FileSize=0x3ff596a8) at
> /home/gary/git/edk2/MdeModulePkg/Library/UefiBootManagerLib/BmBoo
> t.c:1412
> #32 0x000000003e26899a in EfiBootManagerGetLoadOptionBuffer
> (FilePath=0x3ee17018, FullPath=0x3ff596c0,
>     FileSize=0x3ff596a8) at
> /home/gary/git/edk2/MdeModulePkg/Library/UefiBootManagerLib/BmBoo
> t.c:1529
> #33 0x000000003e268ce2 in EfiBootManagerBoot (BootOption=0x3e2d6c50)
>     at
> /home/gary/git/edk2/MdeModulePkg/Library/UefiBootManagerLib/BmBoo
> t.c:1652
> 
> Cheers,
> 
> Gary Lin
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to