[Mini-NDN] Issues with producer and consumer in Python experiment

André D. Carneiro adcarneiro at inf.ufrgs.br
Wed Sep 30 18:59:09 PDT 2020


Hi Saraub,


that worked! I believe it makes sense that the producer was the only one 
which could consume its own data if that's the case.


I was able to run that same script and achieve the following results:


(/myApp/a, 1027.0000, DATA) - host a

(/myApp/a, 26333.0000, DATA) - host b

(/myApp/a, 64384.0000, DATA) - host c

(/myApp/a, 21340.0000, DATA) - host d



Thank you guys very much!


- André



On 30/09/2020 15:24, Saurab Dulal (sdulal) wrote:
> Hi André,
>
> The experiment setup seems fine. Can you add 20 - 30s sleep after 
> starting the NLSR and see if the problem goes away?
>
>>> info('Starting NLSR on nodes\n')
>>>     nlsrs = AppManager(ndn, ndn.net.hosts, Nlsr)
>>>
>>>     time.sleep(30) # 30s to be on safe side.
>>>
>>>     # Run producer
>>>     producer = ndn.net.hosts[0]
>>>
> NLSR takes some time to compute the whole routing table. So, if the 
> routes are not set up by the time the consumer requests for the 
> data, it will get the NoRoute nacks.
>
> Regards,
> Saurab Dulal
>
> ------------------------------------------------------------------------
> *From:* Mini-NDN <mini-ndn-bounces at lists.cs.ucla.edu> on behalf of 
> Alexander Wilhelm Lane (awlane) <awlane at memphis.edu>
> *Sent:* Tuesday, September 29, 2020 6:03 PM
> *To:* adcarneiro at inf.ufrgs.br <adcarneiro at inf.ufrgs.br>
> *Cc:* mini-ndn at lists.cs.ucla.edu <mini-ndn at lists.cs.ucla.edu>
> *Subject:* Re: [Mini-NDN] Issues with producer and consumer in Python 
> experiment
> Apologies if these are unhelpful suggestions but could you post the 
> output from the producer program when called from the script? You 
> should just be able to capture that in Bash. You also could try using 
> something like ndnping to see if it’s an issue with NFD or routing in 
> the script or something occurring when you run the producer.
>
> I’d recommend using the getPopen method from minindn.util in the 
> future as it uses the more robust Python popen API.
> -Alex
>
>> On Sep 29, 2020, at 3:28 PM, Lan Wang (lanwang) <lanwang at memphis.edu 
>> <mailto:lanwang at memphis.edu>> wrote:
>>
>>
>>
>> Begin forwarded message:
>>
>>> *From:* "André D. Carneiro" <adcarneiro at inf.ufrgs.br 
>>> <mailto:adcarneiro at inf.ufrgs.br>>
>>> *Date:* September 28, 2020 at 8:56:41 PM CDT
>>> *To:* "Lan Wang (lanwang)" <lanwang at memphis.edu 
>>> <mailto:lanwang at memphis.edu>>
>>> *Subject:* *Re: [Mini-NDN] Issues with producer and consumer in 
>>> Python experiment*
>>>
>>> 
>>>
>>> Hi,
>>>
>>>
>>> the consumers are getting NACKs when the commands are issued within 
>>> python, when running the same commands in the hosts' xterm windows, 
>>> the consumers get the data. Here is the simplest code I used to test 
>>> it, it was based on the mnndn.py script and the imports were kept 
>>> the same.
>>>
>>> The only exception to that is the consumer ran by the same host that 
>>> also ran the producer program, which received the data.
>>>
>>> if __name__ == '__main__':
>>>     setLogLevel('info')
>>>
>>>     Minindn.cleanUp()
>>> Minindn.verifyDependencies()
>>>
>>>     ndn = Minindn()
>>>
>>>     ndn.start()
>>>
>>>     info('Starting NFD on nodes\n')
>>>     nfds = AppManager(ndn, ndn.net.hosts, Nfd)
>>>     info('Starting NLSR on nodes\n')
>>>     nlsrs = AppManager(ndn, ndn.net.hosts, Nlsr)
>>>
>>>     # Run producer
>>>     producer = ndn.net.hosts[0]
>>>     strInterestFilter = '/myApp/' + producer.name
>>>     strCmdAdvertise = 'nlsrc advertise ' + strInterestFilter
>>>     strCmdProducer  = 'producer ' + strInterestFilter + ' &'
>>> producer.cmd(strCmdAdvertise)
>>> producer.cmd(strCmdProducer)
>>>     time.sleep(1)
>>>
>>>     # Run consumers
>>>     for host in ndn.net.hosts:
>>>         strCmdConsumer = 'consumer ' + strInterestFilter
>>> host.cmd(strCmdConsumer)
>>>
>>>     MiniNDNCLI(ndn.net <http://ndn.net>)
>>>
>>>     ndn.stop()
>>>
>>>
>>> Printing the commands above issued to the hosts, I get the following:
>>>
>>> CmdProducer: nlsrc advertise /myApp/a
>>> CmdProducer: producer /myApp/a &
>>> CmdConsumer: consumer /myApp/a
>>> CmdConsumer: consumer /myApp/a
>>> CmdConsumer: consumer /myApp/a
>>> CmdConsumer: consumer /myApp/a
>>>
>>>
>>> Running these same commands in the hosts' xterm windows, in the same 
>>> default topology, all the consumers get the data as expected. I 
>>> believe there must be some command missing from the python script, I 
>>> just don't know what it is.
>>>
>>> The producer and consumer programs used here are only slightly 
>>> modified versions of the ones in the examples folder so that they 
>>> log times and accept some parameters from the command line. They 
>>> were compiled and have a symbolic link so they can be called without 
>>> their full path.
>>>
>>>
>>> best regards,
>>>
>>> André Dexheimer Carneiro
>>>
>>>
>>> On 28/09/2020 13:29, Lan Wang (lanwang) wrote:
>>>> Can you explain what specific problems you have right now?  Are the 
>>>> consumers getting the data?
>>>>
>>>> Lan
>>>>
>>>>> On Sep 27, 2020, at 7:33 PM, Lan Wang (lanwang) 
>>>>> <lanwang at memphis.edu <mailto:lanwang at memphis.edu>> wrote:
>>>>>
>>>>>
>>>>>
>>>>>> Begin forwarded message:
>>>>>>
>>>>>> *From: *André D. Carneiro <adcarneiro at inf.ufrgs.br 
>>>>>> <mailto:adcarneiro at inf.ufrgs.br>>
>>>>>> *Subject: **Issues with producer and consumer in Python experiment*
>>>>>> *Date: *September 27, 2020 at 5:42:24 PM CDT
>>>>>> *To: *mini-ndn at lists.cs.ucla.edu <mailto:mini-ndn at lists.cs.ucla.edu>
>>>>>>
>>>>>>
>>>>>> Hi everyone and thanks very much for the help so far,
>>>>>>
>>>>>>
>>>>>> I have the basics covered now and the install seems to be working 
>>>>>> fine. Running producers/consumers on the MiniNDN CLI responds as 
>>>>>> I expected so I got back to my python experiment. Only when 
>>>>>> instantiating producers/consumers via the 'host.cmd' directive I 
>>>>>> am getting NACKs, though I'm not sure why. These producer and 
>>>>>> consumer programs are copies from the ones in the examples 
>>>>>> directory, only with minimal changes to log the elapsed time and 
>>>>>> accept interest filters from the command line.
>>>>>>
>>>>>> To give you a broad view of the script, all the producers are 
>>>>>> instantiated during setup, being assigned their interest filter, 
>>>>>> after running their respective 'nlsrc advertise' command (thanks 
>>>>>> for that again) and running in the background (ex. 'producer /a &').
>>>>>>
>>>>>> The consumers are instantiated by demand, the main difference 
>>>>>> being that they don't run in the background (without the '&') and 
>>>>>> they are responsible for logging the elapsed time when onData, 
>>>>>> onNack or onTimeout is called.
>>>>>>
>>>>>> When the experiment is done and the CLI is shown, I ran 'nlsrc 
>>>>>> lsdb' and noticed that the advertise commands had worked because 
>>>>>> the interest filters show up in their respective hosts. I also 
>>>>>> tried adding the 'export HOME' command for each host before 
>>>>>> calling the producer or consumer programs, but it did not seem to 
>>>>>> make any difference.
>>>>>>
>>>>>>
>>>>>> Also note that a consumer can run while a producer for that same 
>>>>>> host is running in the background, which I don't think is a problem.
>>>>>>
>>>>>>
>>>>>> Best regards,
>>>>>>
>>>>>> André Dexheimer Carneiro
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Mini-NDN mailing list
>>>>> Mini-NDN at lists.cs.ucla.edu <mailto:Mini-NDN at lists.cs.ucla.edu>
>>>>> http://www.lists.cs.ucla.edu/mailman/listinfo/mini-ndn
>>>>
>>>>
>>>> _______________________________________________
>>>> Mini-NDN mailing list
>>>> Mini-NDN at lists.cs.ucla.edu  <mailto:Mini-NDN at lists.cs.ucla.edu>
>>>> http://www.lists.cs.ucla.edu/mailman/listinfo/mini-ndn
>> _______________________________________________
>> Mini-NDN mailing list
>> Mini-NDN at lists.cs.ucla.edu <mailto:Mini-NDN at lists.cs.ucla.edu>
>> http://www.lists.cs.ucla.edu/mailman/listinfo/mini-ndn
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/mini-ndn/attachments/20200930/bb9578b9/attachment-0001.html>


More information about the Mini-NDN mailing list