Project

General

Profile

Bug #39089

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

Added by Zhi Zhang 12 months ago. Updated 4 months 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:

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 12 months ago

  • Pull request ID set to 27339

#2 Updated by Ilya Dryomov 12 months ago

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

#3 Updated by Ilya Dryomov 12 months ago

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

#4 Updated by Nathan Cutler 12 months ago

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

#5 Updated by Nathan Cutler 12 months ago

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

#6 Updated by Nathan Cutler 12 months ago

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

#7 Updated by Nathan Cutler 4 months 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