Version-Release number of selected component (if applicable): lvm2-2.02.132 How reproducible: always when source lv (xx/lv1 in example) is of segment type linear Steps to Reproduce: 1. lvconvert --interval 1 --type mirror -m2 xx/lv1 Actual results: No progress reported when using lvmpolld. While lvconvert --config "global { use_lvmpolld = 0 }" --interval 1 --type mirror -m2 xx/lv1 works as expected Expected results: [root@frawhide ~]# lvconvert --interval 1 --type mirror -m2 xx/lv1 xx/lv1: Converted: 0,0% xx/lv1: Converted: 7,9% xx/lv1: Converted: 13,2% xx/lv1: Converted: 21,1% xx/lv1: Converted: 26,3% xx/lv1: Converted: 34,2% xx/lv1: Converted: 42,1% xx/lv1: Converted: 47,4% xx/lv1: Converted: 55,3% xx/lv1: Converted: 63,2% xx/lv1: Converted: 68,4% xx/lv1: Converted: 76,3% xx/lv1: Converted: 84,2% xx/lv1: Converted: 92,1% xx/lv1: Converted: 100,0
Curiouser and curiouser... same command with --background option added won't contact lvmpolld at all!
This one was a bit tricky. While converting non-mirror type LV to mirror one the conversion is instant. In other words there's no need to poll the lvconvert operation when source LV is not a mirror type in the beginning of the lvconvert process. That's also the reason why with --background option lvmpolld is not even started. In such case the reported percentage in the foreground mode is not the percentage of conversion completed so far but in-sync progress info of both mirror legs instead. The lv status type in this particular case is not set to CONVERTING either. On the other hand when we upconvert i.e. two leg mirror to a three leg one, the CONVERTING status is set (also visible in lvs output) and a real conversion is started. The conversion requires polling no matter if lvconvert is initiated in background mode or foreground mode because in the end of conversion the cleanup has to be done by lvmpolld initiated lvpoll command.
Fixed with https://git.fedorahosted.org/cgit/lvm2.git/commit/?id=33465066c5eddaa6169814d645d543e5673bc2a6