Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!caen!uwm.edu!ux1.cso.uiuc.edu!pequod.cso.uiuc.edu!dorner From: dorner@pequod.cso.uiuc.edu (Steve Dorner) Newsgroups: comp.sys.mac.comm Subject: Re: Eudora POP mail client and A/UX 2.0 Message-ID: <1991Mar15.024642.13733@ux1.cso.uiuc.edu> Date: 15 Mar 91 02:46:42 GMT References: <27DE8919.1A30@intercon.com> <1991Mar13.223450.20337@ux1.cso.uiuc.edu> <1991Mar14.154311.14616@casbah.acns.nwu.edu> Sender: usenet@ux1.cso.uiuc.edu (News) Organization: University of Illinois at U-C Lines: 45 John Norstad writes: >Steve Dorner writes: >> A race condition seems to exist sometime during the Close/Receive/Release >> process; if you slow it down (by tracing with a debugger, for example) >> the problem goes away. (Fun, fun, fun to debug.) > >That's called a "Heisenbug". They're the most interesting kind :-) I'll have to remember that one. Anyway, problem solved. The bug did indeed have a large Apple painted on it, but the area with the bite showed (alas) part of my face. The problem will be fixed as soon as my trusty alpha testers earn their keep. The faint of heart should stop reading now. When you close a MacTCP connection, you must do the following: - Close your side. - Read data until the other side closes. - Release the connection. Due to a missing "!", I was neglecting the read data step. So, what was happening was: 1. I close. 2. I release. 3. The SMTP final message arrives. 4. THE MAC EXPLODES Step #4 is Apple's fault; unsolicited packets seem to put MacTCP in quite a tizzy. MacTCP sends a Reset Connection (good), but then dies like a dog (bad). A robust TCP implementation would tolerate my mistake. The reason this is timing dependent is that if step #3 (final SMTP message) happens to arrive in MacTCP before step #2 (connection is released), there is no problem. The sensitivity of the 3com card to this problem is probably due to it having a different method of 'interleaving' sends and receives. Now, I'll fess up to neglecting to read all the data for the connection ("Bad Steve! Bad!"), and fix Eudora by, say, Monday. I'd like Apple to do the same for MacTCP (yeah, right). -- Steve Dorner, U of Illinois Computing Services Office Internet: s-dorner@uiuc.edu UUCP: uunet!uiucuxc!uiuc.edu!s-dorner