Re: [gensim:2427] Re: Not able to run Distributed LDA

Irmen de Jong <[email protected]> Mon, 06 Jan 2014 22:59:40 +0100
Newsgroups gmane.comp.python.pyro,gmane.comp.ai.gensim
Message-ID <[email protected]>
Hi!
First, a bit late, but let me wish you all a happy new year!


On 6-1-2014 13:44, Radim Řehůřek wrote:
> Hello Ritesh (cross-posting to the Pyro list, where people may have more qualified
> experience with these issues),
> 
>         I restarted the system, ran the server again but still the same message.
> 
>         I ran "python -c 'import Pyro4; print(Pyro4.config.SERIALIZERS_ACCEPTED)' in the
>         Console. It prints "set(['pickle'])"; so I guess it is set correctly there.

This means you have changed the default setting. From what I can deduce, by setting the
PYRO_SERIALIZERS_ACCEPTED environment variable.

Btw, if you "python -m Pyro4.configuration" it dumps the current set of config items.


> Well, we could set PYRO_SERIALIZERS_ACCEPTED and PYRO_SERIALIZER directly from Python,
> instead of depending on ENV vars. But I was under the impression it's the same thing. Irmen?

Well, setting the PYRO_XXX environment variables will cause the corresponding XXX config
item to be set. But they can be overruled by setting them in your Python code; this
overwrites the values taken from the environment vars.
Also there is the (obscure?) method Pyro4.config.reset(useenvironment=True) which will
essentially make ignore the environment vars and reset the config to the Pyro defaults.
See http://pythonhosted.org/Pyro4/config.html

Seems to me the "the Python Shell" (whatever that may be) is using one of these ways to
reset the serializer config items at startup. Or it resets the environment vars before
loading Pyro. Or some thing it loads which in turn uses Pyro, (re)sets the config items.



>     Also I ran the distributed LDA on one Windows and one Linux system. There are two
>     workers and the dispatcher on my Ubuntu. And there is one worker on Windows.
>     Everything seems to go fine. The worker registers with the name server running on
>     Ubuntu. The dispatcher registers the worker on Windows. But when I run it, the
>     dispatcher assigns jobs only to the workers on Ubuntu and not on Windows. And the
>     worker on Windows tells me that "No connection could be made because the target
>     machine actively refused it". It looked like a Firewall issue. So I disabled
>     Firewall on Windows and as far as I know the firewall on Ubuntu is set to 'allow'
>     all connections. But still it does not work. What could be possible reason?
> 
> 
> Sounds like a firewall issue to me, but again, the Pyro folks will have more experience
> with such "heterogeneous" communication, what could go wrong and how to debug it.


Could be a lot of stuff preventing the connection. My first guess is indeed a firewall
issue. But also a DNS/routing issue could be the problem, for instance when the linux
box can't be contacted from the Windows box at all.

Suggestions for troubleshooting:
Check what's registered in the name server (python -m Pyro4.nsc list)
Try to ping the linux box from windows.
Try to telnet to the Pyro port on the linux box.
Check to have the same Python and Pyro versions on both machines



Good luck

Irmen de Jong


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Pyro-core mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pyro-core