It appears that if I use lazy-apps and don't specify any code for a mule to
load, the mule doesn't load anything.

--nate

On Wed, Aug 9, 2017 at 6:53 PM, Curtis Maloney <cur...@tinbrain.net> wrote:

> I'm curious. Do mules still get "polluted" with app code if you enable
> lazy_apps?
>
> --
> C
>
>
> On 10 August 2017 2:07:56 AM AEST, Nate Coraor <n...@bx.psu.edu> wrote:
>>
>> Hi all,
>>
>> I've been testing mules a lot lately. I started off with programmed
>> mules, but eventually discovered that mules work in the traditional
>> fork-and-exec method, and this occurs after the master has fully loaded, at
>> the same time that workers are forked.
>>
>> This messed up some pieces of my application in the mules because they
>> were using postfork hooks that fired too early (at the fork from master,
>> before exec). I got that straightened out but this led me to wonder whether
>> I could just use unprogrammed mules instead.
>>
>> With programmed mules we're just loading the same application as the
>> master process, without the wsgi stack on top. It'd be quicker and simpler
>> if our mules could just be forks from the master. The documentation says
>> that unprogrammed mules are "signal only", however.
>>
>> Turns out, most things seem to work, except that message passing has
>> intermittent problems and signals are not always passed. For example, I can
>> send mule messages, but occasionally they fail (I believe this is being
>> raised in a worker):
>>
>> File 
>> "/home/nate/work/galaxy/.venv/local/lib/python2.7/site-packages/uwsgidecorators.py",
>> line 194, in mule_msg_dispatcher
>>     msg = pickle.loads(message)
>> cPickle.UnpicklingError: invalid load key, '{'.
>>
>> Where '{' is the first character of the message string.
>>
>> Signals do typically propagate to mules with --py-call-osafterfork set,
>> but I have found that sometimes they don't (if the mules are blocked on
>> mule/farm_get_msg??) unless I send a mule message from a worker after
>> signalling, regardless of whether the mule actually seems to receive the
>> message (which it does not always do).
>>
>> tl;dr, should I keep trying to debug this (I think maybe it's because of
>> the way I'm handling things postfork) or should I not expect unprogrammed
>> mules to work with messages?
>>
>> Thanks,
>> --nate
>>
>
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>
_______________________________________________
uWSGI mailing list
uWSGI@lists.unbit.it
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to