Enable remote debugger in Cinder
Glance, Keystone and Nova all support the use of a remote debugger. It would be nice to add that to Cinder as well.
This feature is used when you want to connect to a Cinder service via a debugger running on a different host.
Similar to Nova, to use it you start the cinder service with the following command line parameters
--remote_
--remote_
Blueprint information
- Status:
- Complete
- Approver:
- John Griffith
- Priority:
- Low
- Drafter:
- Trump.Zhang
- Direction:
- Approved
- Assignee:
- Trump.Zhang
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
- Sean McGinnis
Related branches
Related bugs
Sprints
Whiteboard
(smcginnis): Marking obsolete as this has been sitting out there for a long time. If this is still needed, please submit a new bp.
Note: Simple monkey patching disabling in Icehouse will not let you remote debug. We have a patch that will let you accomplish this in Icehouse. This could be a start to this work. (cjones) ,- replace with + in the code
example : (-) (25)->line no - -> eventlet.
(+) (25) -> line no --> eventlet.
Thanks for your advice. Could you give me some detailed info about your patch? (trump)
Adding a starter patch. More work will of course need to be done to flick the bits for port/ip on the command line. The patch below is the hard bit (cjones)
diff --git a/bin/cinder-volume b/bin/cinder-volume
index c8c0c84..88ab0f2 100755
--- a/bin/cinder-volume
+++ b/bin/cinder-volume
@@ -25,7 +25,7 @@ if os.name == 'nt':
# on Windows when using pipes due to missing non-blocking IO support.
eventlet.
else:
- eventlet.
+ eventlet.
import sys
diff --git a/cinder/
index 7632625..b952750 100644
--- a/cinder/
+++ b/cinder/
@@ -314,6 +314,9 @@ class ProcessLauncher
pid = os.fork()
if pid == 0:
+ import pydevd
+ pydevd.
+ stderrToServer=
while True:
@@ -481,7 +484,8 @@ class Services(object):
"""
- done.wait()
+ while not done.wait(1):
+ eventlet.
def launch(service, workers=None):