Rana,
A patch attached which modifies the timerTask.
> We shall modify the timerTask to use
> a clone of the connection list.
Is "We" mean Rana and the other committers,
or Rana and me?
Sorry, I am bad at english..
Thanks,
OZAKI Ittetsu
On Fri, 5 May 2006 06:39:01 -0700 (PDT)
Rana Bhattacharyya <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I am sorry for the late reply. I think you have a
> valid point. The problem you are mentioning is that
> the client processing will not start if it begins
> during the timerTask as it is synchronized over the
> connection list. We shall modify the timerTask to use
> a clone of the connection list.
>
> Thanks for pointing this.
>
> - Rana Bhattacharyya
>
>
> --- OZAKI Ittetsu <[EMAIL PROTECTED]> wrote:
>
> >
> > Hi,
> >
> > I was encountering this problem.
> > Thank you very much for fixing the code.
> >
> > BTW, part of the reason for this problem is
> > synchronized
> > conList, accessed by timerTask() and
> > newConnection().
> >
> > When servSoc.accept() blocks, conList is kept locked
> > by
> > timerTask() until servSoc.accept() returns.
> > So newConnection() has to wait, because
> > conList.add()
> > is synchronized.
> >
> > I guess it's better that timerTask() iterates over
> > "clone" of conList, than synchronizes on it.
> > How do you think?
> >
> > Thanks,
> > OZAKI Ittetsu
> >
> >
> > On Mon, 24 Apr 2006 03:14:06 -0700 (PDT)
> > Rana Bhattacharyya <[EMAIL PROTECTED]> wrote:
> >
> > > Hi,
> > >
> > > Thank you very much for replying. You are
> > absolutely
> > > right. I shall add one data connection
> > configuration
> > > parameter to set the server socket timeout.
> > Basically
> > > I shall set the SO_TIMEOUT.
> > >
> > > FtpDataConnection is not shared in multiple
> > > connections. Each ftp session has a
> > FtpDataConnection
> > > instance. So other client can open data connection
> > > when server is waiting for one client.
> > >
> > > These are synchronized because, the FTP session
> > > cleaner removes idle connections at specified
> > interval
> > > and this timer thread can mess-up if these methods
> > are
> > > not synchronized.
> > >
> > > Thanks,
> > > Rana Bhattacharyya
> > >
> > >
> > > --- Jens Viebig <[EMAIL PROTECTED]> wrote:
> > >
> > > > I did some more testing and the two functions i
> > > > pointed out do no harm and
> > > > return immediately.
> > > > The function that is causing the hang is in
> > > > FtpDataConnection as you pointed
> > > > out:
> > > >
> > > > public synchronized Socket getDataSocket() {
> > > > ...
> > > > m_dataSoc = m_servSoc.accept();
> > > > ...
> > > > }
> > > >
> > > > Yes i would definetely add a timeout for
> > m_servSoc.
> > > >
> > > > Without a timeout this function waits forever,
> > when
> > > > the data connection is
> > > > not established. This is not good and there are
> > > > several reasons why this
> > > > coud happen (Server side-firewalls, client-side
> > > > firewalls, broken ftp
> > > > clients,broken network connections...).
> > > >
> > > > Does this function have to be synchronized ?
> > Even
> > > > with a timeout for the
> > > > server socket, while the server waits for the
> > > > incoming data connection, no
> > > > other client can connect to the server.
> > > >
> > > > ----- Original Message -----
> > > > From: "Rana Bhattacharyya" <[EMAIL PROTECTED]>
> > > > To: <[email protected]>
> > > > Sent: Monday, April 24, 2006 7:17 AM
> > > > Subject: Re: Bug, Server locks up because of
> > > > firewall issues
> > > >
> > > >
> > > > > Hi,
> > > > >
> > > > > new RequestHandler() handles the new
> > connection.
> > > > It
> > > > > does not handle the passive mode data
> > transfer.
> > > > > FtpDataConnection class handles all data
> > > > connections
> > > > > (both active and passive). So you are
> > suggesting
> > > > to
> > > > > close the passive server socket if there is no
> > > > client
> > > > > connections within a speified time to prevent
> > > > server
> > > > > lock out. Please write your comments.
> > > > >
> > > > > Thanks,
> > > > > Rana Bhattacharyya
> > > > >
> > > > >
> > > > > --- Jens Viebig <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > >> Hi List,
> > > > >> I found a situation where the ftp server
> > locks up
> > > > >> and no new connections can be made.
> > > > >> ftpserver runs behind a firewall with open
> > port
> > > > 21
> > > > >> and runs fine with clients working in active
> > > > mode.
> > > > >> When a client tries to connect in passive
> > mode,
> > > > the
> > > > >> data connection is blocked by the firewall.
> > This
> > > > is
> > > > >> the point where the server locks up. It seems
> > > > that
> > > > >> the server is waiting for the incoming data
> > > > >> connection that is never established because
> > of
> > > > the
> > > > >> firewall.
> > > > >>
> > > > >> The main thread executes two functions after
> > > > >> accepting the client socket connection
> > > > >>
> > > > >> IConnection connection = new
> > > > >> RequestHandler(m_ftpConfig, soc);
> > > > >> conManager.newConnection(connection);
> > > > >>
> > > > >> it seems that one of the functions causes the
> > > > >> hangup. In my understanding of server
> > > > architecture
> > > > >> the thread handling the client connection
> > should
> > > > be
> > > > >> forked immediately after the accept() of the
> > > > socket
> > > > >> or the functions should have a very short
> > > > timeout,
> > > > >> because no new connections can be established
> > > > while
> > > > >> these functions are executed.
> > > > >>
> > > > >>
> > > > >>
> > > > >>
> > > > >
> > > > >
> > > > >
> > __________________________________________________
> > > > > Do You Yahoo!?
> > > > > Tired of spam? Yahoo! Mail has the best spam
> > > > protection around
> > > > > http://mail.yahoo.com
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > > __________________________________________________
> > > Do You Yahoo!?
> > > Tired of spam? Yahoo! Mail has the best spam
> > protection around
> > > http://mail.yahoo.com
> >
> >
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
--
OZAKI Ittetsu <[EMAIL PROTECTED]>