[Winpcap-users] pcap_setbuff occasional failure
Gianluca Varenni
gianluca.varenni at cacetech.com
Wed Jun 3 12:35:59 PDT 2009
The buffer is on an open-instance basis, not on a NIC basis. So it's perfectly safe to have two threads setting different buffer sizes on the same adapter, *provided* that you are using two different pcap_t handles.
Having said that, without a task manager screenshot it's impossible to understand why it failed. The error basically means that a malloc in the kernel driver failed, but it's impossible to know why without more information about the memory load at the time of the failure...
Have a nice day
GV
----- Original Message -----
From: Sassone, Ed
To: winpcap-users at winpcap.org
Sent: Monday, June 01, 2009 7:33 AM
Subject: Re: [Winpcap-users] pcap_setbuff occasional failure
We finally caught the error. We did not get the Task Manager screen shot. Also you are correct in that serializing the initialization did not help.
One thing interesting, we have two threads per NIC card setting different buffer sizes. The first allocation worked and the second did not. The bracketed number is the thread id.
05/29 14:24:54.53 Interface.cpp:93: [00001A54] Set buffer size to 1048576 for interface \Device\NPF_{F4E3EFD7-CAB0-481B-86E3-874358548A34} : Signaling Interface
05/29 14:24:54.53 Interface.cpp:85: [00001174] Could not set buffer size to 5242880 for interface \Device\NPF_{F4E3EFD7-CAB0-481B-86E3-874358548A34}: driver error: not enough memory to allocate the kernel buffer
Ed Sassone
www.autonomy.com
CONFIDENTIALITY NOTICE: This communication and any files or attachments transmitted with it contain information that is confidential to the sender and/or Autonomy, Inc., privileged or exempt from disclosure under applicable law. It is intended solely for the use of the individual or the entity to which it is addressed. If you are not the intended recipient(s), you are hereby notified that any use, dissemination, or copying of this communication is strictly prohibited; please do not read, copy, use or disclose the content of this communication to others. If you have received this communication in error, please delete it and contact our network administrator at (214) 981-3100. Thank you.
------------------------------------------------------------------------------
From: winpcap-users-bounces at winpcap.org [mailto:winpcap-users-bounces at winpcap.org] On Behalf Of Sassone, Ed
Sent: Wednesday, October 08, 2008 3:12 PM
To: winpcap-users at winpcap.org
Subject: RE: [Winpcap-users] pcap_setbuff occasional failure
Essentially a critical section around all the adapter initialization calls so it will only be in one set a time, across all threads and adapters. Unfortunately I didn't have it print the pcap_geterr string. I just put that in. It may be awhile until we catch it in the act.
thanks
Ed Sassone
From: winpcap-users-bounces at winpcap.org [mailto:winpcap-users-bounces at winpcap.org] On Behalf Of Gianluca Varenni
Sent: Wednesday, October 08, 2008 2:05 PM
To: winpcap-users at winpcap.org
Subject: Re: [Winpcap-users] pcap_setbuff occasional failure
Serializing pcap_setbuff should not be necessary (serializing against what? multiple calls on the same adapter? on the same pcap_t handle?).
Expecially considering that the only solution is a reboot, I would think that there is some sort of leak either in the WinPcap driver or in some other driver in the system. What's the exact error message returned by pcap_setbuff?
Also, after the problem occurs and before rebooting, open Task Manager, go to the Performance Tab and send me a screenshot of it, if possible.
Have a nice day
GV
----- Original Message -----
From: Sassone, Ed
To: winpcap-users at winpcap.org
Sent: Monday, October 06, 2008 2:15 PM
Subject: [Winpcap-users] pcap_setbuff occasional failure
Hi
Every so often in our application during startup, the pcap_setbuff call will fail. We are unable to re-create the problem but it seems to happen after the application has been stopped and started a number of times. Once the failure occurs it will continue to occur, until a reboot. Our app is multithreaded with two threads starting per interface card, and we can have more than one interface card configured. The buffer size specified can vary but it's usually around 5-10 MB. I have recently put in some changes to serialize the command in case there is a timing issue, as I'm not sure if the call is thread safe. I remember there was thread issue with the filter command. This is on Windows 2003. Any other ideas?
thanks
Ed Sassone
----------------------------------------------------------------------------
_______________________________________________
Winpcap-users mailing list
Winpcap-users at winpcap.org
https://www.winpcap.org/mailman/listinfo/winpcap-users
------------------------------------------------------------------------------
_______________________________________________
Winpcap-users mailing list
Winpcap-users at winpcap.org
https://www.winpcap.org/mailman/listinfo/winpcap-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.winpcap.org/pipermail/winpcap-users/attachments/20090603/3052a5fd/attachment.htm
More information about the Winpcap-users
mailing list