Re: Fix local messages and lost wake-up in SimpleMessenger

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



A huge pile of SimpleMessenger refactors, cleanups, and fixes (wip-msgr) 
was just merged into master, and this code was changed around quite a bit.  
Did you have a specific test case that was triggering the problem?  If so, 
do you mind running it on the current master?

Most of the cleanups/fixes were motivated by testing with socket failure 
injection enabled (e.g., 'ms inject socket failures = 500' to simulate a 
failure on every ~500th socket read or write).  This is being added to the 
rados regression test suite.

Thanks!
sage


On Tue, 14 Aug 2012, Alexandre Oliva wrote:

> Don't wait for a signal if the dispatch queue is non-empty already,
> and support a non-NULL pipe for local responses.  If we were to
> require pipe to be NULL for that, the response would be lost.
> 
> Signed-off-by: Alexandre Oliva <oliva@xxxxxxxxxxxxxxxxx>
> ---
>  src/msg/SimpleMessenger.cc |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc
> index 53e36cd..973219f 100644
> --- a/src/msg/SimpleMessenger.cc
> +++ b/src/msg/SimpleMessenger.cc
> @@ -373,7 +373,7 @@ void SimpleMessenger::DispatchQueue::entry()
>        }
>        lock.Lock();
>      }
> -    if (!stop)
> +    if (queued_pipes.empty() && !stop)
>        cond.Wait(lock); //wait for something to be put on queue
>    }
>    lock.Unlock();
> @@ -2477,7 +2477,7 @@ void SimpleMessenger::submit_message(Message *m, Connection *con, const entity_a
>    }
>  
>    // local?
> -  if (!pipe && my_inst.addr == dest_addr) {
> +  if (my_inst.addr == dest_addr) {
>      if (!destination_stopped) {
>        // local
>        ldout(cct,20) << "submit_message " << *m << " local" << dendl;
> -- 
> 1.7.7.6
> 
> -- 
> Alexandre Oliva, freedom fighter    http://FSFLA.org/~lxoliva/
> You must be the change you wish to see in the world. -- Gandhi
> Be Free! -- http://FSFLA.org/   FSF Latin America board member
> Free Software Evangelist      Red Hat Brazil Compiler Engineer
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux