Hello,

I have some requirement wherein I need to change the way Cinder creates 
volumes. Along with code changes I want to debug and understand the code flow. 

So far I've been able to debug the `cinderclient` package using the Python 
debugger `pdb` by following these steps: 
- Add pdb.set_trace() statements in the python files
- Run the "cinder create" CLI command 
- Step through the code.

My understanding is that the requests end up going to the Cinder api exposed 
the "$HOST/volumes" http endpoint. For my debugging purposes, this is not deep 
enough (I want to understand the interaction between `cinder` and some of the 
NVMe volumes that I have). 

For debugging the core `cinder` package, I've tried using the same `pdb` 
approach but I've not been able to make it work. Mostly because I've not been 
able to find the entry point where I can add the trace statements and start the 
service.  

Another approach that I've tried is to attach debugger on the running python 
process and add a file+function breakpoint. Again, I've not been able to make 
this work. I believe gdb is mostly looking for C files and even if I give the 
complete path of the file and function, it doesn't break. Moreover, there are 3 
instances of `cinder-volume` running on my machine and I've tried attaching gdb 
to all three of them but nothing happens.

So my question is how do I debug the core Cinder process? Is there any 
documentation I can refer to? Or some other practice that is involved in doing 
so?

Thanks

-- 
  Tushar Tyagi
  t...@fastmail.com

_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to     : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack

Reply via email to