Hillf Danton <hdan...@sina.com> wrote: > > - if (rxnet->live) { > > + if (rxnet->live && !conn->params.local->dead) { > > idle_timestamp = READ_ONCE(conn->idle_timestamp); > > expire_at = idle_timestamp + rxrpc_connection_expiry * > > HZ; > > if (conn->params.local->service_closed) > > Is there any chance out there that this reaper starts running one minute > after the dead local went into graveyard?
It's certainly possible that that can happen. The reaper is per network-namespace. conn->params.local holds a ref on the local endpoint. It may be worth wrapping the "local->dead = true;" in rxrpc_local_destroyer() in rxnet->conn_lock. David