Project

General

Profile

Bug #39089

krbd: fix rbd map hang due to udev return subsystem unordered

Added by Zhi Zhang almost 5 years ago. Updated over 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Community (dev)
Tags:
Backport:
luminous,mimic,nautilus
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Recently we found 'rbd map' hang forever but rbd device can work fine after terminating 'rbd map' or waiting it timed-out by using this change: http://tracker.ceph.com/issues/38792.

We tried to dig into it by adding some logs into krbd.cc and found that the order of subsystem returned by udev_device_get_subsystem might not be same order as adding subsystem by udev_monitor_filter_add_match_subsystem_devtype. So if subsystem 'block' is returned first and subsystem 'rbd' is returned next, then further poll will get nothing back and hang there.

So our fix is no matter which subsystem is returned first, we will deal with it properly. When both subsystems are returned, we will do the final check and compare. If something is wrong, it will still fall into next poll to be timed-out.


Related issues

Related to Linux kernel client - Bug #14737: libkrbd vs udev event ordering Resolved 02/11/2016
Copied to rbd - Backport #39314: luminous: krbd: fix rbd map hang due to udev return subsystem unordered Resolved
Copied to rbd - Backport #39315: nautilus: krbd: fix rbd map hang due to udev return subsystem unordered Resolved
Copied to rbd - Backport #39316: mimic: krbd: fix rbd map hang due to udev return subsystem unordered Resolved

History

#1 Updated by Zhi Zhang almost 5 years ago

  • Pull request ID set to 27339

#2 Updated by Ilya Dryomov almost 5 years ago

  • Related to Bug #14737: libkrbd vs udev event ordering added

#3 Updated by Ilya Dryomov almost 5 years ago

  • Status changed from New to Pending Backport
  • Assignee set to Zhi Zhang
  • Backport set to luminous,mimic,nautilus

#4 Updated by Nathan Cutler almost 5 years ago

  • Copied to Backport #39314: luminous: krbd: fix rbd map hang due to udev return subsystem unordered added

#5 Updated by Nathan Cutler almost 5 years ago

  • Copied to Backport #39315: nautilus: krbd: fix rbd map hang due to udev return subsystem unordered added

#6 Updated by Nathan Cutler almost 5 years ago

  • Copied to Backport #39316: mimic: krbd: fix rbd map hang due to udev return subsystem unordered added

#7 Updated by Nathan Cutler over 4 years ago

  • Status changed from Pending Backport to Resolved

While running with --resolve-parent, the script "backport-create-issue" noticed that all backports of this issue are in status "Resolved" or "Rejected".

Also available in: Atom PDF