[rds-devel] possible deadlock in rds_wake_sk_sleep

Sowmini Varadhan sowmini.varadhan at oracle.com
Tue Aug 7 14:07:54 PDT 2018


On (08/07/18 13:47), syzbot wrote:
>  Possible unsafe locking scenario:
> 
>        CPU0                    CPU1
>        ----                    ----
>   lock(&(&rm->m_rs_lock)->rlock);
>                                lock(&rs->rs_recv_lock);
>                                lock(&(&rm->m_rs_lock)->rlock);
>   lock(&rs->rs_recv_lock);
> 
>  *** DEADLOCK ***

looks like a valid find, I think the deadlock should be avoided
by having rds_clear_recv_queue do something like

 get rs_recv_lock
 un-tether the rs_recv_queue into a temporary list 
 releease rs_recv_lock
 purge the rds_incoming  temporary list

I can give this a shot later this week.

--Sowmini



More information about the rds-devel mailing list