Project

General

Profile

Bug #5896

Updated by Joao Eduardo Luis over 10 years ago

on next (ceph version 0.67-rc3-100-ge8d72ef (e8d72ef0402a42c8aa8ea624497d13db81d5e361)) 

 <pre> 
 $ ceph mon dump 
 *** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH *** 
 dumped monmap epoch 9 
 epoch 9 
 fsid d8b53103-f50e-4fed-84e9-c95f30b5b441 
 last_changed 2013-08-06 17:56:49.452341 
 created 2013-08-05 19:24:54.662265 
 0: 127.0.0.1:6789/0 mon.a 
 1: 127.0.0.1:6790/0 mon.b 
 2: 127.0.0.1:6791/0 mon.c 

 $ ceph mon add foo 127.0.0.1:6795 
 *** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH *** 
 Error EEXIST: mon foo 127.0.0.1:6795/0 already exists 
 </pre> 

 What the bug is: 

 - MonmapMonitor::handle_command() will add update the pending inc with the new mon, and queue the reply to the client on wait_for_finished_proposal(). 
 - Monitor bootstraps due to updated monmap before waking up waiters on waiting_for_finished_proposal. 
 - all waiters on waiting_for_finished_proposal are retried with -EAGAIN 
 - Command is retried instead of replying to the client -> monitor already exists.

Back