[ZODB-Dev] iobtree has no attribute "keys"

Thomas Guettler hv at tbz-pariv.de
Tue Mar 9 03:23:10 EST 2004


Am Montag, 8. März 2004 20:03 schrieben Sie:
> Thomas Guettler wrote at 2004-3-8 13:19 +0100:
> >Sometime I get this traceback:
> >
> >ids_dict.update(this_ids_dict)
> >
> >AttributeError: keys
> > ...
> >This only happens sometimes (not reproducable)
>
> I expect, that "this_ids_dict" is not an "IOBTree" when it happens...

I thought that first, too. But then cgitb is lieing. Here is the
text version of the cgitb traceback: (relevant part marked with ***)

   AttributeError Python 2.3.2: /usr/bin/python2.3
   Mon Mar 8 12:50:03 2004

   A problem occurred in a Python script. Here is the sequence of function 
calls leading up to the error, in the
   order they occurred.

    
[1]/mnt/raid/modarch/workflow/python/lib/python2.3/site-packages/quixote/publish.py 
in
   publish(self=<ZEOClientPublisher.ZEOClientPublisher instance>, stdin=<open 
file '<stdin>', mode 'r'>,
   stdout=<open file '<stdout>', mode 'w'>, stderr=<open file '<stderr>', mode 
'w'>, env={'AUTH_TYPE': 'Basic',
   'HTTP_REFERER': 'https://...': 'QExd6gpyDTwAAAMMrFM', 'PATH_INFO': 
'/search'})
     557         except:
     558             # Some other exception, generate error messages to the 
logs, etc.
     559             output = self.finish_failed_request(request)
     560
     561         # Output results from Response object
   output undefined, self = <ZEOClientPublisher.ZEOClientPublisher instance>, 
self.finish_failed_request = <bound
   method 
ZEOClientPublisher.finish_failed_r...<ZEOClientPublisher.ZEOClientPublisher 
instance>>, request =
   <quixote.http_request.HTTPRequest instance>

    
[2]/mnt/raid/modarch/workflow/python/lib/python2.3/site-packages/quixote/publish.py 
in
   process_request(self=<ZEOClientPublisher.ZEOClientPublisher instance>,
   request=<quixote.http_request.HTTPRequest instance>, env={'AUTH_TYPE': 
'Basic', 'HTTP_REFERER': 'https://...':
   'QExd6gpyDTwAAAMMrFM', 'PATH_INFO': '/search'})
     533         """
     534         self._set_request(request)
     535         output = self.try_publish(request, env.get('PATH_INFO', ''))
     536         self.log_request(request)
     537
   output undefined, self = <ZEOClientPublisher.ZEOClientPublisher instance>, 
self.try_publish = <bound method
   ZEOClientPublisher.try_publish of <ZEOClientPublisher.ZEOClientPublisher 
instance>>, request =
   <quixote.http_request.HTTPRequest instance>, env = {'AUTH_TYPE': 'Basic', 
'HTTP_REFERER': 'https://...':
   'QExd6gpyDTwAAAMMrFM', 'PATH_INFO': '/search'}, env.get = <bound method 
_Environ.get of {'AUTH_TYPE': 'Bas...:
   'QExd6gpyDTwAAAMMrFM', 'PATH_INFO': '/search'}>

    [3]/mnt/raid/modarch/workflow/lib/ZEOClientPublisher.py in
   try_publish(self=<ZEOClientPublisher.ZEOClientPublisher instance>, 
request=<quixote.http_request.HTTPRequest
   instance>, path='/search')
     213                 self.connection.sync()
     214                 request.response = HTTPResponse() # reset response 
object
     215                 time.sleep(1 + (random.random() * (i+1)))
     216         else:
     217             raise RuntimeError("too many conflict errors")
   global time = <module 'time' from 
'/usr/lib/python2.3/lib-dynload/time.so'>, time.sleep = <built-in function
   sleep>, global random = <module 'random' from 
'/usr/lib/python2.3/random.pyc'>, random.random = <built-in
   method random of Random object>, i = 0

    
[4]/mnt/raid/modarch/workflow/python/lib/python2.3/site-packages/quixote/publish.py 
in
   try_publish(self=<ZEOClientPublisher.ZEOClientPublisher instance>, 
request=<quixote.http_request.HTTPRequest
   instance>, path='/search')
     485                 output = "SystemExit exception caught, shutting down"
     486                 self.log(output)
     487                 self.exit_now = 1
     488
     489             if output is None:
   self = <ZEOClientPublisher.ZEOClientPublisher instance>, self.exit_now = 0

    [5]/mnt/raid/modarch/workflow/lib/WorkflowServer.py in 
search(self=<WorkflowServer instance at 405a8a40>,
   request=<quixote.http_request.HTTPRequest instance>)
     932         
ids_rechnungsdatum.update(self.catalog.search_dict("rechnungsdatum",
     933                                                       
rechnungsdatum_von,
     934                                                       
rechnungsdatum_bis))
     935         ids_buchungsdatum={}
     936         
ids_buchungsdatum.update(self.catalog.search_dict("buchungsdatum",
   rechnungsdatum_bis = 1078786800

    [6]/mnt/raid/modarch/workflow/lib/SearchCatalog.py in 
search_dict(self=<SearchCatalog instance at 405a8b30>,
   attr='rechnungsdatum', value=1076108400, maxvalue=1078786800)
     396                 # TODO hier tritt sporadisch der Fehler auf,
     397                 # dass this_ids_dict.keys nicht vorhanden ist
     398                 ids_dict.update(this_ids_dict)
     399             return ids_dict
     400
   ids_dict = {2281: 1, 2378: 1, 2379: 1, 2396: 1, 2412: 1, 2419: 1, 2420: 1, 
2425: 1, 2426: 1, 2427: 1, ...},
   ids_dict.update = <built-in method update of dict object>, 
    *** this_ids_dict = <IOBTree object>***

   AttributeError: keys
         args = ('keys',)






More information about the ZODB-Dev mailing list