The count of handles seems not to be the problem! But, there is a limit for available filedescrptors per process on windows (msvcrt.dll) - 2048 !
I made a test with the following code ##### use Tie::File; our %k; for (0...10000) { $k{$_} = []; } for (sort {$a <=> $b} keys %k) { tie @{$k{$_}}, 'Tie::File', "c:/tmp/test/$_"; push @{$k{$_}}, "$_"; print "$_\n"; } #### this creates 2044 files (not the expected 10001). 2044 + STDOUT + STDIN + STDERR + script = 2048 So, if assp tries (and retries for ever) to use a BerkeleyDB - but the folder not extsts - and BerkeleyDB.pm does for what ever reason not close files/filehandles/... - this will lead in to a 'too many opened files' error. Thomas Von: "Thomas Eckardt" <thomas.ecka...@thockar.com> An: "ASSP development mailing list" <assp-test@lists.sourceforge.net> Datum: 11.10.2021 09:58 Betreff: Re: [Assp-test] Multiple topics: Griplist vs GripList, stuck open handles to dbd-error on windows, more. 1) - this will be fixed 2) - not default settings needs to be checked by the admin 3) - BDB-error.txt files are used to record BerkeleyDB errors - a handle is keeped opened by each thread for each BDB-environment (db) as long as the database-env is opened by the thread most times such handles are opened until the thread is stopped (assp ends) 4) a) yes b) yes c) Scoring is done using gripValencePB and the resulting message/ip - score is calculated as follows: if the grip value is < 0.3 : -int(((0.3 - grip value) / 0.3) * gripValencePB) if the grip value is > 0.7 : int(((grip value - 0.7) / 0.3) * gripValencePB) grip values between 0.3 and 0.7 are ignored. windows handles (IMHO): system-max handles : ~ 2**24 (>16.000.000) process/thread max handles : ~ 10.000 (configurable in the registry - hex(2710)) use Testlimit.exe / Testlimit64.exe -h How ever - the c-library used by the process sets the handle (and other) limits! If a valid but not-default-system c-lib is found in the PATH, it will be used (with there internal limit settings). assp never uses more than 2000 handles (typical less than 1000) on any system watched by me most handles (~ 1.000.000) are used permanently by mysqld on windows Thomas Von: "K Post" <nntp.p...@gmail.com> An: "ASSP development mailing list" <assp-test@lists.sourceforge.net> Datum: 09.10.2021 16:21 Betreff: [Assp-test] Multiple topics: Griplist vs GripList, stuck open handles to dbd-error on windows, more. Several related items here: Bug? Rebuild process still uploading griplist, even if disabled, due possibly to case error in code. ASSP not checking for valid griplist, if an invalid folder name is entered On windows, Rebuild process leaving \tmpDB\rebuildDB\BDB-error.txt handle open (wider issue with DBD-error.txt files getting stuck open on Windows?) Griplist clarification request 1) I've got noGriplistUpload and noGriplistDownload both checked in the GUI. But I noticed that ,at the end of my rebuild log, it's still doing the upload Uploading Griplist via Direct Connection rebuildspamdb.pm has return if $main::noGripListUpload; before the upload happens, but I think there's a case mistake there. I believe it should be Griplist, with a lower case L. 2) In trying to figure out my ASSP on Windows crashes due to too many open files, I've started using Sysinternals Handle utility to look at open handles. Yesterday I saw 1300+ handles open to d:\assp\tmpDB\Griplist\BDB-error.txt I believe that had something to do with me having an invalid griplist database name, "d/griplist" but the d folder didn't exist on my new server config!! My fault there for sure, not sure how d/ prefixed it, but it appears ASSP didn't check to see that the folder existed. Shame on me for missing my config file, but it might be good for ASSP to warn or create the folder if it doesn't exist. I cleared out the griplist database file to test and restarted. I don't see any more open griplist\dbd-error.txt handles, even though I'm getting many many bad SMTP servers connecting with early TLS. Good. I'll probably put the griplist database back (obviously with a valid filename!!) See #3.... 3) Windows (both 2012 and 2019) might not be closing Berkely error files correctly in general. When the new version started logging the new SSL errors, I >believe< that's when it started trying to access the non-existent "d/" folder config error in m assp.cfg. Every time an early TLS line was caught, BerkeleyDB would keep the error file open. Strangely, the error file was 0kb. Now that I've cleared out the griplist entry, I don't get those /tmpdb/griplist/dbd-error.txt open handles. However, after my rebuild over night, I see and open handle to: tmpDB\rebuildDB\BDB-error.txt about 9+ hours after rebuild. Is that normal? Might Windows not be closing handles correctly in general? 4) While I'm at it, could some clarification be provided as to the function of the griplist? (and please correct me if anything I say here is incorrect!!) I've searched like crazy over the last couple of days, but can't find the answers I'm looking for. The griplist is an ip scoring database correct? I know it was originally called the grey-ip-list, 15+ years ago, but then greylisting became common language for delaying, so the original grayiplist started being called the "griplist" to avoid confusion. Note: the gui still says: GreyIPlist Database (griplist) The file with the current Grey-IP-List database -- make this blank if you don't use it. If I'm understanding griplist correctly, I think the gui should be reworded. Maybe some explanation added too?? There's also the optional upload and download concept of the griplist. This appears to send the local griplist to sourceforge, it gets processed by whatever you've got running on the backend, and then I can (also optionally) download another griplist which is based on all ASSP user data. If you don't upload, you can't download, and that's fair - you need to contribute to benefit from the group. The charity that I work for has a pretty poorly thought out privacy policy that requires me to jump through all kinds of hoops when sharing >any< information. It's frustrating for sure. That means I cannot upload our griplist without petitioning an internal committee. I'm thinking I want to do that, but need to fully understand the griplist first. If we don't upload/download, the griplist is stlil maintained locally, just only with my data right? If I get approval to share the ip data and download the griplist, that downloaded griplist is merged with my local griplist? And in the end, how is a match on the griplist scored? Let's say an IP is on the griplist as being a really bad IP. What score does a message get? Is that configurable? As always, thank you Ken _______________________________________________ Assp-test mailing list Assp-test@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/assp-test DISCLAIMER: ******************************************************* This email and any files transmitted with it may be confidential, legally privileged and protected in law and are intended solely for the use of the individual to whom it is addressed. This email was multiple times scanned for viruses. There should be no known virus in this email! ******************************************************* _______________________________________________ Assp-test mailing list Assp-test@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/assp-test DISCLAIMER: ******************************************************* This email and any files transmitted with it may be confidential, legally privileged and protected in law and are intended solely for the use of the individual to whom it is addressed. This email was multiple times scanned for viruses. There should be no known virus in this email! *******************************************************
_______________________________________________ Assp-test mailing list Assp-test@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/assp-test