little more info: - the process which gets crazy is the one which was used as last (so, when i set wsgi to use only one process, 100% of requests are invalid) - upgrading mod_wsgi to the newest version didn't fix anything
Burak, are you 100% sure this can't be rpclib problem ? ______________________________________________________________ > Od: "Burak Arslan" <[email protected]> > Komu: azurIt <[email protected]> > Dátum: 06.12.2011 18:52 > Predmet: Re: [Soap-Python] rpclib - very strange problem > > CC: [email protected] >On 12/06/11 19:48, azurIt wrote: >> Burak, i got something!! :) i'm running two wsgi processes for my wsgi >> application (via mod_wsgi). invalid result is always returned by first of >> them and valid result is always returned by the second (until i restart wsgi >> app). this is why every second request gets crazy (there's a 50% chance). >> now why is this happening ? some kind of desynchronization between processes >> ? >> > >ah, now it makes more sense. i'm not familiar with mod_wsgi, but i don't >think mod_wsgi processes share information one way or the other. are you >sure both initialize correctly? > >why not use twisted, cherrypy or any other pure-python http solution and >use apache as a reverse-proxy? > >burak > >> ______________________________________________________________ >>> Od: "azurIt" <[email protected]> >>> Komu: <[email protected]> >>> Dátum: 06.12.2011 18:43 >>> Predmet: Re: [Soap-Python] rpclib - very strange problem >>> >>> cool, it's working now. problem is that traceback for both cases (where >>> result is ok and is not ok) looks the same: >>> >>> >>> File >>> "/usr/lib/python2.5/site-packages/rpclib-2.4.1_beta-py2.5.egg/rpclib/server/wsgi.py", >>> line 168, in __call__ >>> return self.__handle_rpc(req_env, start_response) >>> File >>> "/usr/lib/python2.5/site-packages/rpclib-2.4.1_beta-py2.5.egg/rpclib/server/wsgi.py", >>> line 239, in __handle_rpc >>> self.get_out_object(ctx) >>> File >>> "/usr/lib/python2.5/site-packages/rpclib-2.4.1_beta-py2.5.egg/rpclib/server/_base.py", >>> line 73, in get_out_object >>> self.app.process_request(ctx) >>> File >>> "/usr/lib/python2.5/site-packages/rpclib-2.4.1_beta-py2.5.egg/rpclib/application.py", >>> line 102, in process_request >>> ctx.out_object = self.call_wrapper(ctx) >>> File >>> "/usr/lib/python2.5/site-packages/rpclib-2.4.1_beta-py2.5.egg/rpclib/_base.py", >>> line 190, in __setattr__ >>> object.__setattr__(self, k, v) >>> File >>> "/usr/lib/python2.5/site-packages/rpclib-2.4.1_beta-py2.5.egg/rpclib/_base.py", >>> line 51, in set_out_object >>> traceback.print_stack() >>> >>> >>> i can only see rpclib code, not mine. any hints how can i show something >>> more ? thnx!!! >>> >>> azur >>> >>> >>> ______________________________________________________________ >>>> Od: "Burak Arslan" <[email protected]> >>>> Komu: azurIt <[email protected]> >>>> Dátum: 06.12.2011 17:53 >>>> Predmet: Re: [Soap-Python] rpclib - very strange problem >>>> >>>> CC: [email protected] >>>> On 12/06/11 18:51, Burak Arslan wrote: >>>>> On 12/06/11 18:46, azurIt wrote: >>>>>> Sorry for bordering, i would write/fix it by myself but i don't fully >>>>>> understand your code. This is what it is doing now: >>>>> you should read about the property built-in. >>>>> >>>>>> Traceback (most recent call last): >>>>>> File >>>>>> "/usr/lib/python2.5/site-packages/rpclib-2.4.1_beta-py2.5.egg/rpclib/application.py", >>>>>> line 102, in process_request >>>>>> ctx.out_object = self.call_wrapper(ctx) >>>>>> File >>>>>> "/usr/lib/python2.5/site-packages/rpclib-2.4.1_beta-py2.5.egg/rpclib/_base.py", >>>>>> line 191, in __setattr__ >>>>>> raise ValueError("use the udc member for storing arbitrary data " >>>>>> ValueError: use the udc member for storing arbitrary data in the method >>>>>> context >>>>> set self.frozen to false in the constructor's last line. >>>> or rather add self.__out_object=None to the ctor. >>>> >>>>> i'd forgotten about the __getattr__ in that class, you can modify that >>>>> as well if you understand better what that does. >>>>> >>>>> burak >>>>>> ______________________________________________________________ >>>>>>> Od: "Burak Arslan" <[email protected]> >>>>>>> Komu: azurIt <[email protected]> >>>>>>> Dátum: 06.12.2011 17:19 >>>>>>> Predmet: Re: [Soap-Python] rpclib - very strange problem >>>>>>> >>>>>>> CC: [email protected] >>>>>>> On 12/06/11 18:14, azurIt wrote: >>>>>>>> Burak, >>>>>>>> >>>>>>>> can you, please, help me with this a little more? Where exactly should >>>>>>>> i put that code? Into _base.py file? Thank you! >>>>>>>> >>>>>>>> azur >>>>>>> yes, in the MethodContext class, like so: >>>>>>> >>>>>>> class MethodContext(object): >>>>>>> def get_out_object(self): >>>>>>> return self.__out_object >>>>>>> >>>>>>> def set_out_object(self, what): >>>>>>> import traceback >>>>>>> traceback.print_stack() >>>>>>> self.__out_object = what >>>>>>> >>>>>>> out_object = property(get_out_object, set_out_object) >>>>>>> >>>>>>> # (...) >>>>>>> # rest of the class definition >>>>>>> >>>>>>> hth, >>>>>>> burak >>>>>>> >>>>>>> >>>>>>> >>>>>>>> ______________________________________________________________ >>>>>>>>> Od: "Burak Arslan" <[email protected]> >>>>>>>>> Komu: azurIt <[email protected]> >>>>>>>>> Dátum: 05.12.2011 18:33 >>>>>>>>> Predmet: Re: [Soap-Python] rpclib - very strange problem >>>>>>>>> >>>>>>>>> CC: [email protected] >>>>>>>>> On 12/05/11 17:55, azurIt wrote: >>>>>>>>>> Any hints ? :) >>>>>>>>> patch rpclib code to instrument the out_object attribute. have the >>>>>>>>> instrumentation spit tracebacks on assignments. that way you'll be >>>>>>>>> able >>>>>>>>> to track where that strange value comes from. >>>>>>>>> >>>>>>>>> off the top of my head, add these to the MethodContext class: >>>>>>>>> >>>>>>>>> def get_out_object(self): >>>>>>>>> return self.__out_object >>>>>>>>> >>>>>>>>> def set_out_object(self, what): >>>>>>>>> import traceback >>>>>>>>> traceback.print_stack() >>>>>>>>> self.__out_object = what >>>>>>>>> >>>>>>>>> out_object = property(get_out_object, set_out_object) >>>>>>>>> >>>>>>>>> every _second_ request? heh, that's fun :) >>>>>>>>> >>>>>>>>> good luck, >>>>>>>>> burak >>>>>>>>> >>>>>>>>> >>>>>>>>>> azur >>>>>>>>>> _______________________________________________ >>>>>>>>>> Soap mailing list >>>>>>>>>> [email protected] >>>>>>>>>> http://mail.python.org/mailman/listinfo/soap >>>>>>>> _______________________________________________ >>>>>>>> Soap mailing list >>>>>>>> [email protected] >>>>>>>> http://mail.python.org/mailman/listinfo/soap >>>>>> _______________________________________________ >>>>>> Soap mailing list >>>>>> [email protected] >>>>>> http://mail.python.org/mailman/listinfo/soap >>>>> _______________________________________________ >>>>> Soap mailing list >>>>> [email protected] >>>>> http://mail.python.org/mailman/listinfo/soap >>>> >>> _______________________________________________ >>> Soap mailing list >>> [email protected] >>> http://mail.python.org/mailman/listinfo/soap >>> >> _______________________________________________ >> Soap mailing list >> [email protected] >> http://mail.python.org/mailman/listinfo/soap > > _______________________________________________ Soap mailing list [email protected] http://mail.python.org/mailman/listinfo/soap
