mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hieu Phan Thanh" <hie...@Cybersoft-VN.com>
Subject RE: [MINA 1.0.0] Could not stop listening on Port
Date Wed, 01 Nov 2006 14:34:41 GMT
Hi, now I often encounter this problem.

1) Firstly, 
- I created an Instance of SocketAcceptor and do bind more than 1 data
port to that SocketAcceptor. 
- There are 3 data senders will connect to my software and send date
with huge speed.
- After awhile (5 mins), I call the unbindAll() to stop all listening
data port (after adding some log messages in the unbindAll() method):
	+ the 1st port is unbound successfully.
	+ the 2nd port: the unbind could not successfully due to the
"wait()" command is locked forever (I m not sure the reason why).
=> I think that it is really the MINA bug. Do I miss anything?
One more thing, if there is no connection to any port => the unbindAll()
is always returned.

2) I have to try to create amount of SocketAcceptor (each instance just
is bound only one data port).
- Execute the test scenario above again, the unbindAll() is returned ok.

I could not upload my software because of IT protection policy.
I hope that I could make a simple app to reproduce this kind of problem
so that the MINA community would solve this one completely.

Thanks & best regards,
Hieu Phan.


> -----Original Message-----
> From: Hieu Phan Thanh [mailto:hieupt@Cybersoft-VN.com]
> Sent: Wednesday, November 01, 2006 4:40 PM
> To: mina-dev@directory.apache.org
> Subject: RE: [MINA 0.8.3] Could not stop listening on Port
> 
> Hi all you guys,
> 
> To solve this problem, I think that we should review the source code
> more carefully.
> 
> I don't know exactly.
> But IMO in the "unbind" method we have the "request.wait()" here.
> What will happened if the "notify" thread is happened before the
"wait"
> thread? The "unbind" method will be never returned?
> 
> --BEGIN--
> 	synchronized( request )
>         {
>             while( !request.done )
>             {
>                 try
>                 {
>                     request.wait();
>                 }
>                 catch( InterruptedException e )
>                 {
>                     ExceptionMonitor.getInstance().exceptionCaught( e
);
>                 }
>             }
>         }
> --END--
> 
> Thanks & best regards,
> Hieu Phan.


Mime
View raw message