Hi all,
I've been adding debug lines to determine the place where the code
hangs. The precise location is in Cache.pm, function get_xpath, in the
line reading the answer back from the cache server :
while (my $h = read (SOCK, $line, 100))
On this line the script hangs forever. Replacing read with sysread
doesn't fix the problem but makes the code go into the body of the while
once.
Anyone an idea ?
Thanks !
Peter.
Peter Van Biesen wrote:
I've tried to alter the initServer program to be able to start every
daemon separately, to avoid these problems. However, when I comment out
initXML, initTools will not run ... apparently initXMl has some
side-effects ...
Threading has only been added to the hpux kernel starting 11.00, so is
fairly new. Perhaps it is not entirely implemented the way is should ...
I've added some print's to the initServer, and it is the accept() call
that hangs the entire program. From the man page of perl :
In certain cases, the OS-level handles created by the pipe(), socket(),
and accept() operators are apparently not duplicated accurately in
pseudo-processes. This only happens in some situations, but where it
does happen, it may result in deadlocks between the read and write ends
of pipe handles, or inability to send or receive data across socket
handles.
Apparently the 'pseudo-fork' in perl isn't entirely functional on hpux
... ( btw : I'm using perl 5.8.0, I've installed 5.8.6 but the problem
remains )
Side note :
the echo command in the ksh on hpux does not allow -n, it needs a '\c'
in the text.
e.g. : The command
echo -n "Starting openca"
on linux is on hpux :
echo "Starting openca\c"
But I wouldn't change your code for this non-standard 'feature'.
Installing the gnu coreutils replaces it with the standard one and
'alias echo=/usr/local/coreutils/bin/echo' will override the internal
ksh echo.
Kindest regards,
Peter.
Michael Bell wrote:
Hi Peter,
Peter Van Biesen wrote:
on hpux test does not allow the "==" operator, it has to be '='.
There's one occurence in relative_ln_s.sh at line 52.
Fixed in CVS. Thanks.
I found the xml_cache.log, the last entries are :
OpenCA::XML::Cache> Thu Aug 4 10:14:16 2005 UTC message:
OpenCA::XML::Cache> startDaemon successfull at Thu Aug 4 10:14:16
2005 UTC PID: 29862
OpenCA::XML::Cache> Thu Aug 4 11:09:08 2005 UTC message:
OpenCA::XML::Cache> startDaemon successfull at Thu Aug 4 11:09:08
2005 UTC PID: 590
I already set the DEBUG to 1 in the initServer, globally ( line 67 ),
but apparently this is not passed on ... I've added the DEBUG line
and I now get debugging output. The output ends with :
OpenCA::XML::Cache->IPCLOOP: answer:
/opt/openca-0.9.2.2/OpenCA/var/log/stderr.log
OpenCA::XML::Cache->IPCLOOP: write answer to socket
OpenCA::XML::Cache->IPCLOOP: request completed
OpenCA::XML::Cache->IPCLOOP: wait for clients
So the cache itself works.
I searched for the XML::Cache but can't find it. During compilation
there was a warning that sax was not installed, but the warning
stated that if I don't use xml export, the package was optional so I
didn't install it. Do I need it ? Could this be the problem ?
No, the cache is in the source code at src/modules/openca-xml-cache/.
You must search for Cache.pm in the filesystem. You can add some
statements like this after each initFunction():
print STDERR "passed initXYZ\n";
STDERR is redirected to OPENCADIR/var/log/stderr.log
Michael
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Openca-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openca-users