From: "Peter Moylan" Received: from [192.168.100.201] (HELO mail.2rosenthals.com) by 2rosenthals.com (CommuniGate Pro SMTP 5.4.10) with ESMTP id 14421549 for ecs-isp@2rosenthals.com; Mon, 13 Oct 2025 00:09:40 -0400 Received: from secmgr-va.2rosenthals.com ([50.73.8.217]:56517 helo=mail2.2rosenthals.com) by mail.2rosenthals.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1v89sI-000000002sm-1Lo6 for ecs-isp@2rosenthals.com; Mon, 13 Oct 2025 00:09:31 -0400 Received: from pmoylan.org ([144.6.37.71]:55150 helo=mail.pmoylan.org) by mail2.2rosenthals.com with esmtp (Exim 4.98.2) (envelope-from ) id 1v89s8-00000000254-0Mgv for ecs-isp@2rosenthals.com; Mon, 13 Oct 2025 00:09:21 -0400 X-SASI-Hits: BODY_ENDS_IN_URL 0.000000, BODY_SIZE_4000_4999 0.000000, BODY_SIZE_5000_LESS 0.000000, BODY_SIZE_7000_LESS 0.000000, CTE_7BIT 0.000000, DKIM_ALIGNS 0.000000, DKIM_SIGNATURE 0.000000, HTML_00_01 0.050000, HTML_00_10 0.050000, IN_REP_TO 0.000000, KNOWN_MSGID 0.000000, LEGITIMATE_SIGNS 0.000000, MSG_THREAD 0.000000, MULTIPLE_REAL_RCPTS 0.000000, NO_URI_HTTPS 0.000000, REFERENCES 0.000000, SENDER_NO_AUTH 0.000000, SINGLE_URI_IN_BODY 0.000000, SUSP_DH_NEG 0.000000, USER_AGENT 0.000000, __ANY_URI 0.000000, __BODY_NO_MAILTO 0.000000, __BODY_VOICEMAIL 0.000000, __BOUNCE_CHALLENGE_SUBJ 0.000000, __BOUNCE_NDR_SUBJ_EXEMPT 0.000000, __CC_NAME 0.000000, __CC_NAME_DIFF_FROM_ACC 0.000000, __CC_REAL_NAMES 0.000000, __CP_URI_IN_BODY 0.000000, __CT 0.000000, __CTE 0.000000, __CT_TEXT_PLAIN 0.000000, __DKIM_ALIGNS_1 0.000000, __DKIM_ALIGNS_2 0.000000, __DQ_NEG_DOMAIN 0.000000, __DQ_NEG_HEUR 0.000000, __DQ_NEG_IP 0.000000, __FORWARDED_MSG 0.000000, __FRAUD_BODY_WEBMAIL 0.000000, __FRAUD_MONEY_CURRENCY 0.000000, __FRAUD_MONEY_CURRENCY_DOLLAR 0.000000, __FRAUD_WEBMAIL 0.000000, __FUR_HEADER 0.000000, __HAS_CC_HDR 0.000000, __HAS_FROM 0.000000, __HAS_MSGID 0.000000, __HAS_REFERENCES 0.000000, __IN_REP_TO 0.000000, __IOC_PHRASE 0.000000, __LINES_OF_YELLING 0.000000, __MAIL_CHAIN 0.000000, __MIME_BOUND_CHARSET 0.000000, __MIME_TEXT_ONLY 0.000000, __MIME_TEXT_P 0.000000, __MIME_TEXT_P1 0.000000, __MIME_VERSION 0.000000, __MOZILLA_MSGID 0.000000, __MOZILLA_USER_AGENT 0.000000, __NO_HTML_TAG_RAW 0.000000, __PASSWORD_IN_BODY 0.000000, __RCPT_DOMAIN_NOT_TO 0.000000, __RCVD_FROM_DOMAIN 0.000000, __REFERENCES 0.000000, __SANE_MSGID 0.000000, __SCAN_D_NEG 0.000000, __SCAN_D_NEG2 0.000000, __SCAN_D_NEG_HEUR 0.000000, __SCAN_D_NEG_HEUR2 0.000000, __SINGLE_URI_TEXT 0.000000, __SUBJ_ALPHA_END 0.000000, __SUBJ_ALPHA_NEGATE 0.000000, __SUBJ_REPLY 0.000000, __TO_MALFORMED_2 0.000000, __TO_NO_NAME 0.000000, __URI_IN_BODY 0.000000, __URI_MAILTO 0.000000, __URI_NOT_IMG 0.000000, __URI_NO_PATH 0.000000, __URI_NS 0.000000, __URI_WITHOUT_PATH 0.000000, __USER_AGENT 0.000000 X-SASI-Probability: 7% X-SASI-RCODE: 200 X-SASI-Version: Antispam-Engine: 5.1.4, AntispamData: 2025.10.13.32719 X-SASI-Hits: BODY_ENDS_IN_URL 0.000000, BODY_SIZE_4000_4999 0.000000, BODY_SIZE_5000_LESS 0.000000, BODY_SIZE_7000_LESS 0.000000, CTE_7BIT 0.000000, DKIM_ALIGNS 0.000000, DKIM_SIGNATURE 0.000000, HTML_00_01 0.050000, HTML_00_10 0.050000, IN_REP_TO 0.000000, KNOWN_MSGID 0.000000, LEGITIMATE_SIGNS 0.000000, MSG_THREAD 0.000000, MULTIPLE_REAL_RCPTS 0.000000, NO_URI_HTTPS 0.000000, REFERENCES 0.000000, SENDER_NO_AUTH 0.000000, SINGLE_URI_IN_BODY 0.000000, SUSP_DH_NEG 0.000000, USER_AGENT 0.000000, __ANY_URI 0.000000, __BODY_NO_MAILTO 0.000000, __BODY_VOICEMAIL 0.000000, __BOUNCE_CHALLENGE_SUBJ 0.000000, __BOUNCE_NDR_SUBJ_EXEMPT 0.000000, __CC_NAME 0.000000, __CC_NAME_DIFF_FROM_ACC 0.000000, __CC_REAL_NAMES 0.000000, __CP_URI_IN_BODY 0.000000, __CT 0.000000, __CTE 0.000000, __CT_TEXT_PLAIN 0.000000, __DKIM_ALIGNS_1 0.000000, __DKIM_ALIGNS_2 0.000000, __DQ_NEG_DOMAIN 0.000000, __DQ_NEG_HEUR 0.000000, __DQ_NEG_IP 0.000000, __FORWARDED_MSG 0.000000, __FRAUD_BODY_WEBMAIL 0.000000, __FRAUD_MONEY_CURRENCY 0.000000, __FRAUD_MONEY_CURRENCY_DOLLAR 0.000000, __FRAUD_WEBMAIL 0.000000, __FUR_HEADER 0.000000, __HAS_CC_HDR 0.000000, __HAS_FROM 0.000000, __HAS_MSGID 0.000000, __HAS_REFERENCES 0.000000, __IN_REP_TO 0.000000, __IOC_PHRASE 0.000000, __LINES_OF_YELLING 0.000000, __MAIL_CHAIN 0.000000, __MIME_BOUND_CHARSET 0.000000, __MIME_TEXT_ONLY 0.000000, __MIME_TEXT_P 0.000000, __MIME_TEXT_P1 0.000000, __MIME_VERSION 0.000000, __MOZILLA_MSGID 0.000000, __MOZILLA_USER_AGENT 0.000000, __NO_HTML_TAG_RAW 0.000000, __PASSWORD_IN_BODY 0.000000, __RCVD_FROM_DOMAIN 0.000000, __REFERENCES 0.000000, __SANE_MSGID 0.000000, __SCAN_D_NEG 0.000000, __SCAN_D_NEG2 0.000000, __SCAN_D_NEG_HEUR 0.000000, __SCAN_D_NEG_HEUR2 0.000000, __SINGLE_URI_TEXT 0.000000, __SUBJ_ALPHA_END 0.000000, __SUBJ_ALPHA_NEGATE 0.000000, __SUBJ_REPLY 0.000000, __TO_MALFORMED_2 0.000000, __TO_NO_NAME 0.000000, __URI_IN_BODY 0.000000, __URI_MAILTO 0.000000, __URI_NOT_IMG 0.000000, __URI_NO_PATH 0.000000, __URI_NS 0.000000, __URI_WITHOUT_PATH 0.000000, __USER_AGENT 0.000000 X-SASI-Probability: 7% X-SASI-RCODE: 200 X-SASI-Version: Antispam-Engine: 5.1.4, AntispamData: 2025.10.13.32719 DKIM-Signature: v=1; q=dns/txt; a=rsa-sha256; c=relaxed/relaxed; s=default; d=pmoylan.org; bh=uklOkKSuZXDuQUYE9nY8oyHLVPWt3JVM0VFnP02EdLQ=; h=From:To:Date:Message-ID; b=pfA/2Kb40f8kqy8TMk56b34J3I7aGMCWNFis9lkki4ehVLd3/pDowG8MtDBYKHkZBWWfb 0eKdKcc0DuuTG/wI7HvvEOAO+K5ETfsSyb0T+SNQC5GiG6iDcBxzrH9X2AT8X4rd+mlHSHO CfzE4FEXhKX/zE+n+8zVldYqQq/SbA0= Received: from [192.168.20.3] (peter.pmoylan.org [192.168.20.3]) by mail.pmoylan.org (Weasel v3.08); Mon, 13 Oct 2025 15:09:13 +1100 Subject: Re: [Weasel] I'm back To: weasel-list@os2voice.org References: <68e9f447.2.mr2ice.fgrirsq@earthlink.net> Cc: eCS-ISP list Message-ID: <68EC7B69.3020004@pmoylan.org> Date: Mon, 13 Oct 2025 15:09:13 +1100 User-Agent: Mozilla/5.0 (OS/2; Warp 4.5; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <68e9f447.2.mr2ice.fgrirsq@earthlink.net> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 11/10/25 17:08, steve53@earthlink.net wrote: > In <68E9DFE1.9090307@pmoylan.org>, on 10/11/25 > at 03:41 PM, Peter Moylan said: >> I've done the first pass through pending mail, so I have a feel for what >> I need to deal with. I think I'd better start with Doug's problem, >> because a comment from Steven suggested that this might not be a pure >> "out of memory" problem. > > I misread the stack the first time through. Doug's problem had nothing to > do wih memory. Here's an annotated errinfo.$$$ > > #RTS: unhandled exception #3: invalid location > 000289FF 00000001 WEASEL.EXE 000389FF OS2Sem_SemError+5F > 000474A6 00000001 WEASEL.EXE 000574A6 TaskControl_Release+16 > 0001DB16 00000001 WEASEL.EXE 0002DB16HammerCheck_ClearPasswordError+B6 > TaskControl_Release > 00031E0C 00000001 WEASEL.EXE 00041E0C AUTH+38C> -> HammerCheck.ClearPasswordError > 00031554 00000001 WEASEL.EXE 00041554SMTPCommands_HandleCommand+1F4->call esi > 0004B168 00000001 WEASEL.EXE 0005B168 HandleCommand+38 ->SMTPCommands_HandleCommand > 0004BB41 00000001 WEASEL.EXE 0005BB41 > 000477B7 00000001 WEASEL.EXE 000577B7 > 0000FB4B 00000001 XDS230M.DLL 0000FB4B > 00020296 00000001 XDS230M.DLL 00030296 AARGH. HOW DO I TELL THUNDERBIRD NOT TO WRAP LINES? > My current analysis says that the Obtain at > > HammerCheck.MOD:384 > Obtain (HammerList.access); > > in ClearPassword failed because the DosRequstMutexSem in Obtain at > > TaskControl.MOD:655 > status := OS2.DosRequestMutexSem (L, OS2.SEM_INDEFINITE_WAIT); > > terminated with ERROR_INTERRUPT (most likely). This caused the > DosReleaseMutexSem in Release at > > TaskControl.MOD:667 > errno := OS2.DosReleaseMutexSem (L); > > to fail. Thanks for the analysis. It was really needed, because I could make no sense at all of Doug's errinfo.$$$. Not his fault, but mine. I have a workplace in the XDS IDE called "WeaselOld", which is needed because bug reports usually are for a different version than my current version. I must have messed up something this time around, perhaps mixing sources from different versions or unzipping the wrong zip file. I wrote the OS2Sem module precisely to handle the ERROR_INTERRUPT case. Looking at it again now, I see that the job is incomplete. I put all of my effort into the timed wait case, where you have to restart the wait with a different time limit. But in the case of an indefinite wait -- OK, I think I've done that correctly too, just repeating the wait after an ERROR_INTERRUPT. But it looks as if there are multiple cases in module TaskControl where I just call DosRequestMutexSem without checking for ERROR_INTERRUPT. On top of that, it hadn't even occurred to me that an ERROR_INTERRUPT could happen when releasing a mutex. This is going to take a bit of work, to cover all cases. > FWIW, I think you need two versions of Obtain. One that returns status so > that the caller can use the status to figure out how to proceed and a > second version that invokes SemError to report mutex errors because the > caller contains no error handling code. At this stage I'm inclined to disagree with that. The cases that can be dealt with are the cones that OS2Sem handles. I can't think of any case where the caller could do anything sensible on failure. Having OS2Sem.SemError do a hard crash is deliberate. A semaphore operation is so basic that it if fails the caller is in deep trouble. With a hard crash, at least you're able to do a post-mortem analysis. What is needed in this case is fixing the bug, not attempting to continue. > If you implement this, you probably want to enhance SemError to report the > failing operation along with the status. I'm not sure I understand this. Do you mean reporting whether it was an "obtain" or a "release"? Or something higher-level, like identifying the caller? The latter would mean changing a lot of code. -- Peter Moylan peter@pmoylan.org http://www.pmoylan.org