[ic] Re: Jobs - not being processed

Mike Heins mike at perusion.com
Fri Mar 18 02:19:07 EST 2005


Quoting Jeff Fearn (jefffearn at gmail.com):
> On Fri, 18 Mar 2005 00:30:30 -0500, Mike Heins <mike at perusion.com> wrote:
> > Quoting Jeff Fearn (jefffearn at gmail.com):
> > > On Wed, 5 Jan 2005 17:10:06 +1000, Jeff Fearn <jefffearn at gmail.com> wrote:
> > > > hmmm I have discovered that the jobsqueue file being updated is the
> > > > one in /usr/lib/interchange/etc and the housekeeping code is checking
> > > > in /var/run/interchange ... haven't found out why yet, I'll let you
> > > > know when I figure it out. atm I am manually copying the jobsqueue
> > > > file so I can debug my own code :)
> > >
> > > Finally got around to looking at this and I think I have found the problem..
> > >
> > > bin/interchange:767:        $Global::RunDir = "$Global::VendRoot/etc";
> > >
> > > lib/install_lsb.pl:122: RunDir          /var/run/interchange
> > >
> > > I changed the first to match the second and everything seems to run
> > > ok. Anyone have any idea if changing RunDir in bin/interchange will
> > > have any imact on an existing store?
> > >
> > 
> > Probably not. But if the jobs code is running without reading
> > the interchange.cfg file, there is a problem with the jobs code
> > and not with bin/interchange.
> 
> /var/run/interchange looks to be the correct directory so why does
> bin/interchange set it to VendRoot/etc?

???

/var/run/interchange is the correct directory if you are running
a Linux Standard Base and installing as root. Otherwise, it is 
not the correct directory at all.

> 
> I haven't figured out how /var/run/interchange is chosen as I assume
> lib/install_lsb.pl is only used  during the installation of IC ...
> 
> In fact all the files I'd expect to be in /var/run/interchange, such
> as .pid and socket, are there, so why would IC expect to find them in
> VendRoot/etc?

It is just an initial setting. That's all.

> 
> eg why are these different:
> 
> bin/interchange:769:    $Global::PIDfile =
> "$Global::RunDir/$Global::ExeName.pid";
> 
> lib/Vend/Config.pm:295: ['PIDfile',               undef,            
> "$Global::VendRoot/etc/$Global::ExeName.pid"],
> 

Because there is a chicken before the egg problem. How do you know where
to look for a pid file before you read interchange.cfg? And how do you start
running Interchange before you test the pid file to see if one is already
running?

The answer is that you use command-line arguments. That is why any jobs
should be run with

	/usr/sbin/interchange --runjobs=foo

instead of 

	/usr/lib/interchange/bin/interchange --runjobs=foo

-- 
Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.765.647.1295  tollfree 800-949-1889 <mike at perusion.com>

Nature, to be commanded, must be obeyed. -- Francis Bacon


More information about the interchange-users mailing list