home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.isis
- Path: sparky!uunet!usc!rpi!batcomputer!cornell!ken
- From: ken@cs.cornell.edu (Ken Birman)
- Subject: A clib bug related to flow control, and a fix
- Message-ID: <1993Jan10.144817.22937@cs.cornell.edu>
- Organization: Cornell Univ. CS Dept, Ithaca NY 14853
- Date: Sun, 10 Jan 1993 14:48:17 GMT
- Lines: 60
-
- The following problem arose in a system running at Bell Southwestern
- and hasn't been reported by anyone else.
-
- Symptom: program has been running for a while, suddenly gets very
- sluggish. When you use "cmd snap" you see that the active tasks
- are waiting on the following condition:
- too much memory in use -- waiting for drain
- However, the amount of memory in use is visibly low, well under
- 2Mbytes total, and perhaps on the order of 400K ``active'', and
- the number of allocated messages and tasks is also obviously not
- unreasonable.
-
- Cause: when a program is a "client" of a process group A, receives
- diffusion multicasts in A, and also multicasts back into A, a
- piece of code that makes copies of the groupview data structure gets
- run from time to time. This code incorrectly accounts its memory
- use, causing Isis to get confused about how much memory is in use
- and to incorrectly block tasks after a few thousand events of this sort.
-
- Fix:
-
- 1) For users with obscured code. Look for this code, which starts
- at line 282 in clib/cl_groups.c:
-
-
- groupview *
- isis_gv_dup(gv)
- B28d3c828 groupview *gv;
- {
- B28d3c828 groupview *P45e052b2;
- P45e052b2 = Z41dbb084();
- bcopy((VOID*)gv, (VOID*)P45e052b2, sizeof(*gv));
- gv = P45e052b2;
- gv->gv__clients = (address*)0;
- gv->H52fdba52 &= ~PG_STATIC;
- gv->L45f7e480 = 1;
- if(gv->R2bea41aa != &NULLGINFO)
- ++gv->R2bea41aa->gi_usecount;
- >>>> Bb3b8cd0 += sizeof(groupview); <<< add this line
- return(gv);
- }
-
- 2) For users with unobscured source, add the line
- isis_taskmem += sizeof(groupview);
- at line 303 in clib/cl_group.c, right before isis_gv_dup
- returns to its caller.
-
- Next, cd to the ISIS make area, e.g. isis/SUN4, and run "make
- clib; make install". Finally, relink any affected applications.
- There is no need to shut down Isis for this change, which will take
- effect the next time you run the relinked application programs.
-
- This fix will be part of V3.0.8/V2.0.8; sorry if it caused problems for
- anyone else.
-
-
- --
- Kenneth P. Birman E-mail: ken@cs.cornell.edu
- 4105 Upson Hall, Dept. of Computer Science TEL: 607 255-9199 (office)
- Cornell University Ithaca, NY 14853 (USA) FAX: 607 255-4428
-