I know how difficult things are without the traceback; I was mostly looking for a suggestion exactly like yours in the hopes that it would push me in the right direction. I actually didn't even get a traceback, as my application crashed hard enough that it did not output an error.
According to a few locations online, the Suds Client object is not threadsafe, so that could have something to do with it. I am reimplementing this with a threadsafe connection pool instead. On Mon, May 27, 2013 at 12:37 PM, Michael Merickel <mmeri...@gmail.com> wrote: > It's *really* difficult for the internet to help debug your problems without > a full traceback. You're basically asking if anyone has seen this exact > problem before because they have no other context to help them out. > > Anyway, Pyramid does not copy anything that is in the settings or the > registry. Are you sure your client is threadsafe? If you're touching a > non-threadsafe object from multiple request threads then anything could > happen. > > > On Mon, May 27, 2013 at 8:47 AM, ian marcinkowski > <ianmarcinkow...@gmail.com> wrote: >> >> Attaching my Suds Client to the registry did not help, but I will keep >> that pattern in mind. >> >> Thanks! >> >> >> >> On Thu, May 23, 2013 at 3:35 PM, Michael Merickel <mmeri...@gmail.com> >> wrote: >>> >>> The settings dictionary is copied once when you pass it into the >>> configurator, and it is supposed to be a shallow copy. >>> >>> new_settings = {} >>> new_settings.update(settings) >>> >>> That doesn't explain your issue though. >>> >>> A likely fix is just to follow the pattern I use, which is to leave the >>> settings dictionary for primitive types. Services and utilities are things I >>> attach to the registry itself (it's a dict too). >>> >>> >>> >>> >>> >>> On Thu, May 23, 2013 at 2:19 PM, ian marcinkowski >>> <ianmarcinkow...@gmail.com> wrote: >>>> >>>> Are objects modified when they are saved in the Configurator >>>> registry.settings dictionary? >>>> >>>> I am trying to store a Suds SOAP Client in the registry which can be >>>> cloned in my view-callables so I can avoid re-parsing that WSDL document. >>>> When I am trying to clone the Suds Client that has been stored in the >>>> registry, my app is crashing horribly due to a maximum recursion limit >>>> reached exception. >>>> >>>> Some code: >>>> >>>> In my app __init__.py: >>>> def main(global_config, **app_settings): >>>> settings = {} >>>> ... >>>> settings['soap_client'] = suds.client.Client('file:///service.wsdl', >>>> username='foo', password='bar') >>>> >>>> config = Configurator(settings=settings, ...) >>>> return config.make_wsgi_app() >>>> >>>> view-callable.py >>>> def view(request): >>>> cloned_soap_client = request.registry.settings['soap_client'].clone() >>>> <-- Induces Max. Recursion exception >>>> return cloned_soap_client.service.SomeMethod() >>>> >>>> If I drop in to a PDB terminal inside of my application's main() >>>> function and try cloneing settings['soap_client'] I do not encounter this >>>> recursion limit. >>>> >>>> Sure, this is probably an bug with the Suds client, but I'm not sure how >>>> toreproduce it outside of my application. >>>> >>>> Thoughts? >>>> >>>> -- >>>> Ian Marcinkowski >>>> ianmarcinkow...@gmail.com >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "pylons-discuss" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to pylons-discuss+unsubscr...@googlegroups.com. >>>> To post to this group, send email to pylons-discuss@googlegroups.com. >>>> Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>>> >>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "pylons-discuss" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to pylons-discuss+unsubscr...@googlegroups.com. >>> To post to this group, send email to pylons-discuss@googlegroups.com. >>> Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >> >> >> >> >> -- >> Ian Marcinkowski >> ianmarcinkow...@gmail.com >> >> -- >> You received this message because you are subscribed to the Google Groups >> "pylons-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to pylons-discuss+unsubscr...@googlegroups.com. >> To post to this group, send email to pylons-discuss@googlegroups.com. >> Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> > > > -- > You received this message because you are subscribed to the Google Groups > "pylons-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to pylons-discuss+unsubscr...@googlegroups.com. > To post to this group, send email to pylons-discuss@googlegroups.com. > Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. > For more options, visit https://groups.google.com/groups/opt_out. > > -- Ian Marcinkowski ianmarcinkow...@gmail.com -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. Visit this group at http://groups.google.com/group/pylons-discuss?hl=en. For more options, visit https://groups.google.com/groups/opt_out.