Fwd: Need assistance

Gk Gk ygk.kmr at gmail.com
Thu Nov 10 13:37:15 UTC 2022


---------- Forwarded message ---------
From: Gk Gk <ygk.kmr at gmail.com>
Date: Thu, Nov 10, 2022 at 7:01 PM
Subject: Re: Need assistance
To: <neil at shrug.pw>


The file which is being picked by uwsgi is
'../../nova-20.2.1/lib/python3.6/site-packages/nova/api/openstack/compute/wsgi.py'
. But I dont see how this file is being called. Which program loads this
file ?
Can someone help me here ?

Disregard the abive message.  This is the file I believe is being called
"/openstack/venvs//nova-20.2.1/lib/python3.6/site-packages/nova/api/openstack/wsgi.py"
.  So how is it being called or which program is calling it ? I want to
know the first file which  uwsgi loads after being launched.

On Wed, Nov 9, 2022 at 5:28 PM Neil Hanlon <neil at shrug.pw> wrote:

>
>
> On Wed, Nov 9, 2022, 05:51 Gk Gk <ygk.kmr at gmail.com> wrote:
>
>> Thanks Melanie for the reply. I am able to use pdb successfully for the
>> trace. But I am observing a strange behaviour with the python source files.
>> Whenever I make any changes to the source files
>> , for example, insert a pdb statement in servers.py, it is taking a
>> minute or more for the changes to take effect. For example, after the
>> change, if I run the uwsgi command at the terminal manually with
>> --honour-stdin option,  then immediately if I fire the nova list command,
>> it is not taking effect. Only after a minute or so of making the change, it
>> is taking effect. Somewhat strange.
>>
>> My next question is, inside the nova-api container, I am trying to trace
>> how nova-api service starts. The systemd file has this content:
>> ---
>> ExecStart = /openstack/venvs/uwsgi-20.2.1-python3/bin/uwsgi --autoload
>> --ini /etc/uwsgi/nova-api-os-compute.ini
>> ----
>> So I have checked the file /etc/uwsgi/nova-api-os-compute.ini , which has
>> the below content:
>> ---
>> wsgi-file = /openstack/venvs/nova-20.2.1/bin/nova-api-wsgi
>> --
>>
>> Is the above file '/openstack/venvs/nova-20.2.1/bin/nova-api-wsgi' the
>> one from which the nova-api service starts at all ?
>>
>
> That is correct. The nova-api-wsgi and nova-metadata-wsgi entry points
> read nova.conf and api-paste.ini to generate the required WSGI application.
>
> Those scripts are just python entry points so you should be able to follow
> along there, barring some setuptools magic invoked.
>
>>
>>
>> Thanks
>> Kumar
>>
>> On Wed, Nov 9, 2022 at 5:39 AM melanie witt <melwittt at gmail.com> wrote:
>>
>>> On Tue Nov 08 2022 03:03:18 GMT-0800 (Pacific Standard Time), Gk Gk
>>> <ygk.kmr at gmail.com> wrote:
>>> > Hi All,
>>> >
>>> > I have a OSA setup. I am trying to trace the control flow of nova-api
>>> > using pdb in the file
>>> >
>>> "/openstack/venvs/nova-20.2.1/lib/python3.6/site-packages/nova/objects/instance.py".
>>> >
>>> > My goal is to trace the flow for "nova list --all" command. I am
>>> > launching the nova-api service  manually from the command line as
>>> follows:
>>> >
>>> > #/openstack/venvs/uwsgi-20.2.1-python3/bin/uwsgi --ini
>>> > /etc/uwsgi/nova-api-os-compute.ini   --workers 1
>>> >
>>> > I am executing "nova list --all" command in another terminal.  I have
>>> > inserted pdb in instance.py as follows:
>>> >
>>> > ----
>>> >      @base.remotable_classmethod
>>> >      def get_all(cls, context, expected_attrs=None):
>>> >          import pdb; pdb.set_trace()
>>> >          """Returns all instances on all nodes."""
>>> >          db_instances = db.instance_get_all(
>>> >                  context,
>>> columns_to_join=_expected_cols(expected_attrs))
>>> >          return _make_instance_list(context, cls(), db_instances,
>>> >                                     expected_attrs)
>>> > ---
>>> >
>>> > But when I fire the nova list --all command, I see no pdb prompt being
>>> > shown in the nova-api window. Can anyone help me how to use the pdb to
>>> > trace the flow of control  for "nova list --all" command ?
>>>
>>> It looks like running nova-api that way is still running as a background
>>> process:
>>>
>>>
>>> https://stackoverflow.com/questions/34914704/bdbquit-raised-when-debugging-python-with-pdb
>>>
>>> I got that result ^ when I tried it locally.
>>>
>>> I was however able to get success with remote pdb:
>>>
>>> https://docs.openstack.org/devstack/latest/systemd.html#using-remote-pdb
>>>
>>> so maybe give that a try. Note that the code where you set the trace in
>>> nova/objects/instance.py is not actually hit when doing a server list.
>>> You may have instead meant:
>>>
>>>
>>> https://github.com/openstack/nova/blob/c97507dfcd57cce9d76670d3b0d48538900c00e9/nova/compute/api.py#L2991
>>>
>>> Also note that as a community we're trying to get away from using the
>>> legacy 'nova' command and recommend using the openstackclient instead:
>>>
>>>
>>> https://docs.openstack.org/python-openstackclient/latest/cli/command-objects/server.html#server-list
>>>
>>> The 'nova' CLI is no longer being maintained and we're adding to the
>>> novaclient python bindings only when necessary.
>>>
>>> HTH,
>>> -melwitt
>>>
>>>
>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.openstack.org/pipermail/openstack-discuss/attachments/20221110/227d1a57/attachment-0001.htm>


More information about the openstack-discuss mailing list