[GRASS5] Re: installation/compiling instruction for GRASS on

Malcolm Blue mblue at nb.sympatico.ca
Wed Mar 28 19:39:25 EST 2001


Actually, I was unable to get the XDriver under Win98, and seem to have 
remembered Mike's problem incorrectly, since it was the CELL driver he 
was testing.  It was a while ago that I had tested this, before your 
socket driver, so things may have changed.

I seem to remember that 'd.mon start=x0' thought the XDriver started, 
i.e. no error messages with 'd.mon -s start=x0', but when I checked the 
processes, the XDriver was not running.  The errors occurred in 'd.mon 
select=x0' or in 'd.mon start=x0'.  Since d.mon start=x0, includes both 
start and select, this is consistent.  By this point the XDriver is in 
the process list for linux and cygwin/NT4.

I will put in some checks around the fork() call to see what is 
happening.  This seems to behave much differently on Win98 than on NT4.  
As Mike says, the Cygwin docs describe a 'dodgey' way of implementing 
fork().  I may test my suspicions by substituting one of the spawn 
calls, but only to prove my suspicions and report the problem back to 
Cygwin list.     

I don't think that this is the same problem as you report, but this is 
something to check out.

Thanks for the info,

Malcolm

Eric G. Miller wrote:

> On Wed, Mar 28, 2001 at 01:59:45PM +1000, Mike Thomas wrote:
> 
>> Hi Malcolm.
>> 
>>> I will test again on Win98.  I had suspected the fork() implementation.
>> 
>> My memory is that I wasn't able to get the CELL driver working on '98 at the
>> time, which backs up your suspicion!
>> 
>> I can imagine that given the complexity of the Grass drivers compared to a
>> small test program, it may well still be fork().  I was reading about how
>> the Cygwin people implemented fork() yesterday and it sounds dodgey.  Maybe
>> Grass does something relating to program state that the test program doesn't
>> highlight.
>> 
>> I tried different socket communication modes for the CELL driver, without
>> success, in case it was sockets causing the problem.
> 
> 
> So, the Xdriver works but the CELL driver doesn't?  My understanding is
> the fork() call may be the problem.  Under all the GRASS drivers, there
> is a call to fork() followed by the parent process exiting with the
> child left running.  However, if fork() fails, the driver will exit.  Do
> you get any error messages that might give a clue?  Does the process
> hang or just exit or what?  
> 
> Also note, a failure report from d.mon that it was unable to set-up the
> communications channel to the driver does not necessarily mean the
> driver failed to start.  Right now, there is a little timing problem
> with the server getting to a listening state before d.mon gives up
> trying to say "hi!".  I've seen this problem more frequently with the
> CELL driver as it seems to have a longer start-up cycle than the
> Xdriver.  Anyway, if this is remotely possible then after d.mon reports
> failure, just rerun it with "d.mon select=CELL".  I suspect that the
> Cygwin fork adds even more overhead/slowdown for the driver than it
> would otherwise have on *nix (where fork is pretty lightweight).
> Anyway, I hope to hack a little on d.mon shortly to make it wait a
> little longer or try a few more times to connect before giving up.
> 


---------------------------------------- 
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo at geog.uni-hannover.de with
subject 'unsubscribe grass5'



More information about the grass-dev mailing list