directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j...@apache.org
Subject [jira] Assigned: (DIRSEDA-6) Race condition between disconnect and output events
Date Sat, 23 Oct 2004 19:53:47 GMT
Message:

   The following issue has been re-assigned.

   Assignee: Trustin Lee (mailto:trustin@gmail.com)
---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/DIRSEDA-6

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: DIRSEDA-6
    Summary: Race condition between disconnect and output events
       Type: Bug

     Status: Open
   Priority: Major

    Project: Seda Framework

   Assignee: Trustin Lee
   Reporter: Alex Karasulu

    Created: Thu, 16 Sep 2004 12:23 AM
    Updated: Sat, 23 Oct 2004 12:52 PM

Description:
On occasion I get the following failure from the echo server test:

-- o error message o --

Sep 16, 2004 2:50:52 AM org.apache.seda.output.LoggingOutputMonitor channelMissing WARNING:
org.apache.seda.output.DefaultOutputManager@2d9c06 could not find channel for client 127.0.0.1:7<-127.0.0.1:2402

-- o error message o --

Now this means a channel for the client was expected in the output manager but was not found.
 This can be caused by two possible conditions:

 1). the channel was not put into the output manager before first output event was processed
 2). the channel was removed from the output manager before all the output events could be
processed

In the first case we have a race condition between the thread processing a ConnectEvent and
a thread processing an OutputEvent.  The ConnectEvent processing is really slow in this case
because all the stages were traversed via input->decode->reqproc->output before the
ConnectEvent was handled.  That's a little far fetched so I'm going to presume that the second
case is more likely.

In the second case the race condition is between the thread processing a DisconnectEvent and
a thread processing an OutputEvent.  The DisconnectEvent in this case is outrunning the processing
of the OutputEvent.  Before the OutputEvent can flush out data to the client the channel to
the client is removed from the output manager by the DisconnectEvent.



---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


Mime
View raw message