This is a snapshot of Indico's old Trac site. Any information contained herein is most probably outdated. Access our new GitHub site here.

Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#411 closed defect (fixed)

Fossilize - PersistentList is not fossilizable

Reported by: pferreir Owned by: irolewic
Priority: critical Milestone: v0.97.0
Component: General Version: 0.97.0
Keywords: Cc:

Description (last modified by pferreir)

6245d868eab278c86f83ca4d3110bb989573f261 tries to fix that, but it happens that in ZODB 3.8 PersistentList has no __iter__ method. Tricky one, we should avoid referencing ZODB code from fossilize.py.

Change History (8)

comment:1 Changed 5 years ago by pferreir

  • Description modified (diff)

comment:2 Changed 5 years ago by pferreir

Example of the original exception:

url: http://indico.cern.ch/conferenceTimeTable.py?confId=0514

parameters: {'confId': '0514'}

Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/rh/base.py", line 475, in process
    res = self._process()
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/rh/conferenceDisplay.py", line 628, in _process
    return p.display( **self._getRequestParams() )
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/pages/base.py", line 164, in display
    return "%s%s%s"%( self._getHTMLHeader(), \
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/pages/conferences.py", line 289, in _display
    return WPConferenceBase._display(self,params)
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/pages/base.py", line 225, in _display
    return self._applyDecoration( self._getBody( params ) )
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/pages/conferences.py", line 1980, in _getBody
    return wc.getHTML(params)
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/wcomponents.py", line 189, in getHTML
    vars = self.getVars()
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/pages/conferences.py", line 1160, in getVars
    useAttrCache = True))
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/schedule.py", line 1557, in process
    genId, resultData = ScheduleToJson.processEntry(obj, tz, aw, mgmtMode, useAttrCache)
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/schedule.py", line 1487, in processEntry
    entry = obj.fossilize(useAttrCache = useAttrCache)
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/common/fossilize.py", line 265, in fossilize
    methodResult = Fossilizable._fossilizeIterable(
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/common/fossilize.py", line 210, in _fossilizeIterable
    raise NonFossilizableException("Type %s is not fossilizable!" %
NonFossilizableException: Type <class 'persistent.list.PersistentList'> is not fossilizable!

comment:3 Changed 5 years ago by irolewic

  • Owner set to irolewic
  • Status changed from new to accepted

comment:4 Changed 5 years ago by Ian Rolewicz <ian.rolewicz@…>

In [be7bc64032e16ecea39804d08357502573a8b68b]:

[FIX] PersistentList? not fossilizable

  • Since the PersistentList? isn't an iterable, another default behaviour of the fossilization has become the direct fossilizing of objects acting as 'wrappers' to iterables (i.e. objects that contain only one attribute that is an iterable)
  • fixes #411

comment:5 Changed 5 years ago by Ian Rolewicz <ian.rolewicz@…>

In [be7bc64032e16ecea39804d08357502573a8b68b]:

[FIX] PersistentList? not fossilizable

  • Since the PersistentList? isn't an iterable, another default behaviour of the fossilization has become the direct fossilizing of objects acting as 'wrappers' to iterables (i.e. objects that contain only one attribute that is an iterable)
  • fixes #411

comment:6 Changed 5 years ago by jbenito

  • Resolution set to fixed
  • Status changed from accepted to closed

comment:7 Changed 5 years ago by Ian Rolewicz <ian.rolewicz@…>

In [be7bc64032e16ecea39804d08357502573a8b68b]:

[FIX] PersistentList? not fossilizable

  • Since the PersistentList? isn't an iterable, another default behaviour of the fossilization has become the direct fossilizing of objects acting as 'wrappers' to iterables (i.e. objects that contain only one attribute that is an iterable)
  • fixes #411

comment:8 Changed 5 years ago by Ian Rolewicz <ian.rolewicz@…>

In [be7bc64032e16ecea39804d08357502573a8b68b]:

[FIX] PersistentList? not fossilizable

  • Since the PersistentList? isn't an iterable, another default behaviour of the fossilization has become the direct fossilizing of objects acting as 'wrappers' to iterables (i.e. objects that contain only one attribute that is an iterable)
  • fixes #411
Note: See TracTickets for help on using tickets.