[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: problem in router with PID < 10
- To: ip@madhaus.cns.utoronto.ca (Peter Ip)
- Subject: Re: problem in router with PID < 10
- From: Matti Aarnio <matti.aarnio@sonera.fi>
- Date: Fri, 14 May 1999 19:59:32 +0300 (EEST)
- Cc: zmailer@nic.funet.fi
- In-Reply-To: <Pine.SOL.3.96.990514122315.17369A-100000@madhaus> from Peter Ip at "May 14, 99 12:28:32 pm"
- Phone: +358-204063667 (office, with delayed redirection to cellular)
> 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?
No.
> 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:
router:
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