Project

General

Profile

Actions

Bug #20111

closed

Python RBD: diff_iterate_cb() does not acquire GIL before calling user-provided callback.

Added by Марк Коренберг almost 7 years ago. Updated almost 7 years ago.

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

0%

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

Description

rbd_diff_iterate2() is called with GIL released. Callback it calls must acquire GIL.

Bug was not detected since Cython is not smart enough when pointer casting is used. Also,
rbd_diff_iterate_cb() is not declared as

cdef ...rbd_diff_iterate_cb(...) nogil:
Actions #1

Updated by Марк Коренберг almost 7 years ago

Cython internally ensures (and acquires) GIL in such functions. Please close the bug. I verified, that GIL is locked in this function.

Actions #2

Updated by Nathan Cutler almost 7 years ago

  • Project changed from Ceph to rbd
Actions #3

Updated by Jason Dillaman almost 7 years ago

  • Status changed from New to Rejected

Indeed -- the callback cdef functions have the "with gil" suffix to tell Cython to re-acquire the GIL.

Actions

Also available in: Atom PDF