[Ace-users] I got some strange problems with ACE on linux(ubuntu 7.04)

Terry zjumty at gmail.com
Tue Jun 12 10:56:04 CDT 2007


I got some strange problems with ACE on linux(ubuntu 7.04)

Here is the problem:

    ACE VERSION: 5.5

    HOST MACHINE and OPERATING SYSTEM:
      Intel P4 32bit & Ubuntu Linux 7.04

    COMPILER NAME AND VERSION (AND PATCHLEVEL):
      GCC 4.1.2

    THE $ACE_ROOT/ace/config.h FILE :
      generated by make, 2000+ lines

    AREA/CLASS/EXAMPLE AFFECTED:
      ACE_Reactor & ACE_Event_Handler

    DOES THE PROBLEM AFFECT:
      EXECUTION


    SYNOPSIS:
      ACE_Reactor does not "react" after one client disconnect from
server.


    DESCRIPTION:
      I wrote some programs (one server and some clients) on windows
xp(vs2005). I want to deploy them on linux.
      I compile the server program on ubuntu 7.04 and run it
successfully. every client program connect and transmit data normally.
but when one client disconnect from server, the server seem to block
every request from other client. other clients can connect to server
but can't send data. the ACE_SOCK_Stream.send() block there. No
handle_input() of ACE_Event_Handler that registered to ACE_Reactor
will be invoked.

      When one client disconnect from server, I make the
handle_input() of the ACE_Event_Handler for this client peer return
-1. Then the handle_close() will be invoked, in which I release the
resources.

      I don't specify certain concrete Reactor implement. So the
working Reactor on linux should be ACE_Select_Reactor. And also I
tried to use ACE_TP_Reactor, but got the some problem.

      Everything goes correctly on windows.

      Maybe I should try it on another linux.

      did somebody meet problems like this?



More information about the Ace-users mailing list