Home Corporate Contacts

TETware Knowledgebase


Products
Solutions

Information

Datasheet
Documentation
FAQ
Knowledgebase

Return to Knowledgebase Index

27. Error message: tetsyncd: client connection closed

 

Question

I am running Distributed TETware. I have a test case that causes the following message to appear on tcc's standard error stream:


tetsyncd (syncd.c, 225): client connection closed \
	(sysid = 0, pid = 5749: MTCM)
Why does this occur?

 

Answer

This is a warning message. It means that a process has exited without first logging off from tetsyncd (the Synchronisation daemon). I expect that you will see a similar message generated by tetxresd as well. (tetxresd is the Execution Results daemon.)

The messages show that the process concerned (pid = 5749) is a Test Case or Child Process (MTCM) running on the local system (sysid = 0).

There are two cases to consider:

  1. Test case:
    Usually these messages mean that the test case has terminated abnormally.


  2. Child process:


    • The process has called one of the exec() calls.


    • The process has exited by calling exit().


    • The process has terminated abnormally.




You will need to check the process ID to see whether the process in question is a test case or a child process. If each process prints something to the journal, you can read the process ID from the last five digits of the journal context number.* (This is the 3rd subfield in the 2nd field of a line type 520.)

If you determine that the messages are generated as a result of the behaviour of a child process, you will need to see if it is calling one of the exec() or exit() system calls directly.

Any process that uses the API is supposed to log off the servers before exiting. It doesn't really matter if they don't do this - the servers still behave correctly when the connection goes down unexpectedly - but the warning messages are generated so as to inform you that something unexpected has occurred.

In the case of a child process, the API logs off the servers if the process terminates by returning from tet_main(). But if you want to terminate the process by calling exit(), you should call tet_exit() instead. Finally, if the child process overlays itself by a call to one of the exec() family of system calls, it should call tet_logoff() first.

* This is not entirely true on a Win32 system. Sometimes more than five digits of context information can appear and the context number in a child process is not usually the same as the process ID. For information about context numbers on Win32 systems, refer to the section which describes context numbers in the appendix entitled ``Implementation notes for TETware on Win32 systems'' in the TETware User Guide.

See also

  • The descriptions of tet_exit() and tet_logoff() in "The C API'' in the TETware Programmers Guide.

 


Home Contacts Legal Copyright Corporate News

Copyright © The Open Group 1995-2012, All Rights Reserved