← Back to team overview

openstack team mailing list archive

Re: Issue in debugging OpenStack Swift

 

Hi Paul,

I have got the debug environment setup for Swift only. I have a devstack
installation running on my machine. I use python debugger (pdb) for
debugging. To debug any method you can issue 'pdb.set_trace()' call in that
method (after importing pdb) and restart that particular service from
"screen". (You can get multiple screens in devstack by 'screen -r stack' in
running devstack directory. And service can be restarted by first switching
to screen of service using Ctrl+A+screen_num, than pressing Ctrl+C to stop
service, and pressing Up arrow to get command to restart the service).

To get into some server methods such as PUT, GET, WRITE etc. in account,
container and object, after calling pdb.set_trace() in them, you need to
issue Swift commands such as Post and Upload from shell. And the screen of
that particular service at which pdb was called will take you into
debugger.

Regards,
M Kazim



On Tue, Jul 23, 2013 at 4:25 PM, Luse, Paul E <paul.e.luse@xxxxxxxxx> wrote:

>  HI Muhammad ****
>
> ** **
>
> If you’ve got full debug working well, I would love to replicate your
> environment (and suspect I’m not the only one).  If you have some time, it
> would be great if you could detail setup instructions and config options on
> this post.****
>
> ** **
>
> Thx****
>
> Paul****
>
> ** **
>
> *From:* Openstack [mailto:openstack-bounces+paul.e.luse=
> intel.com@xxxxxxxxxxxxxxxxxxx] *On Behalf Of *Muhammad Kazim
> *Sent:* Tuesday, July 23, 2013 12:33 AM
> *To:* Gareth
> *Cc:* openstack@xxxxxxxxxxxxxxxxxxx
>
> *Subject:* Re: [Openstack] Issue in debugging OpenStack Swift****
>
> ** **
>
> Worked perfectly in the first attempt. Thanks a lot for the help. :) ****
>
> On Tue, Jul 23, 2013 at 10:41 AM, Gareth <academicgareth@xxxxxxxxx> wrote:
> ****
>
> the key reason it here:
> https://github.com/openstack/swift/blob/master/swift/common/utils.py#L1047
> ****
>
> ** **
>
> you have many ways to stop flush IO; I prefer add a line "stdio_files =
> []" after line 1037****
>
> ** **
>
> On Sun, Jul 21, 2013 at 1:58 AM, Muhammad Kazim <kazimalik@xxxxxxxxx>
> wrote:****
>
>  Hi all,
>
> I wanted to debug Swift source code. I have a Devstack setup running on my
> machine that i have configured to only run keystone, mysql and swift.
>
> I have used pdb to debug source code. I was able to debug
> python-swiftclient, middleware (common), and proxy-server code. However,
> when i try to debug Object Server of Swift, by issuing pdb.set_trace() call
> in diskwrite or any write function in /swift/obj/server.py (except
> constructor) and than issue a 'swift post' or 'swift upload' command from
> other terminal, the object server crashes. The screen of s-object shows an
> error in the line in which 'pdb.set_trace()' is called.
>
> Can someone please guide me how can i debug the Swift s-object code in
> /swift/obj/server.py. Thanks.
>
> Regards,
> Muhammad Kazim****
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp****
>
>
>
> ****
>
> ** **
>
> -- ****
>
> Gareth****
>
> ** **
>
> *Cloud Computing, OpenStack, Fitness, Basketball*****
>
> *OpenStack contributor*****
>
> *Company: UnitedStack <http://www.ustack.com>*****
>
> *My promise: if you find any spelling or grammar mistakes in my email
> from Mar 1 2013, notify me *****
>
> *and I'll donate $1 or **¥1 to an open organization you specify.*****
>
> ** **
>

References