[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problem in router with PID < 10

> Hi,
> We're running 2.99.49p8 on Solaris 2.6. The router functions.c rd_doit() has:
>           if (thatpid < 10) {   /* old-style locking.. */
>             thatpid = 0;
>           }
> We're running 4 routers, and we got routers with PIDs = 6,7,8,9.
> This resulted in messages being picked up by more than one router
> and being delivered more than once.

	Outch...  Usually UNIXes run with pids a bit higher..

> Question1: could this result in messages being lost?

	No, not lost, but some odd errors would appear at the logs.
	( Via syslog: "cannot defer ..." )

	Delivered multiple times ?  Now that is quaint thing,
	I recall similar having happened with certain Solaris
	rename() problem issues..

	ChangeLog contains this:

Wed Feb  4 19:52:36 1998  Matti Aarnio  <mea@mea.tmt.tele.fi>

	* lib/esyslib.c:
	    erename()/eqrename() tricks to handle Solaris returning
	    EBUSY at inconvinient moments..  Now will retry the thing
	    until successfull (or failed with errno != EBUSY/EINTR)

	That was added by 2.99.49p10-s9 ..

> Question2: if I comment out this code, is there anything else
> that might break?


> Question3: has this problem been fixed, or will it be in the future?

	No - not yet, I was just cutting  "2.99.50s18",  in fact
	had copied the package already to FUNET.  I guess I have
	to cut it again...

	At my current TODO there is a note:

	Have separate queueing processor feeding actual routers
	to take care of the problem related to message priorities.
	Could implement:  high/normal/bulk/junk priorities which
	contains ways to be able to process messages from different
	work categories without causing starvation of some class
	queue; E.g. at least one router per class, but if some
	class is (momentrarily) empty, its router can work other
	class jobs.

	(this also does away the need for inter-router locks..)

> Thanks
> Peter
> _____________________________________________________
> Peter Ip, PhD
> Computing and Network Services, University of Toronto
> email: peter.ip@utoronto.ca

/Matti Aarnio