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 6 years ago

Closed 6 years ago

Last modified 5 years ago

#304 closed defect (fixed)

sessionModifSchedule.py error

Reported by: dmartinc Owned by: dmartinc
Priority: high Milestone: v0.97.0
Component: Timetable Version: 0.97.0
Keywords: timetable, session, room booking Cc:

Description

In some events there are exceptions when the event managers go to sessionModifSchedule.py.

Since 0.97 is in indico.cern.ch there has been 1 error report, 38 exceptions similar to these one, and there were 16 in indicobeta.

It does not happen with all events; maybe only with those that have had a room reservation done and then deleted?

From dmartinc:

It seems that when a Session object is being pickled, its conference is 
also pickled, and then the rooms booked for the conference are pickled,
ultimately this calls a roombooking method.
However in reservation.py, lines 191-194, the "root" object obtained 
(root of the RB ZODB) is None.

Example of exception:

exception message => unsubscriptable object
exception type => exceptions.TypeError
traceback => 
  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/rh/base.py", line 476, in process
    res = self._process()

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/rh/sessionModif.py", line 1042, in _process
    return p.display(**params)

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/pages/base.py", line 146, 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/main.py", line 160, in _display
    body = WMainBase(self._getBody( params ), self._timezone, self._getNavigationDrawer(),

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/pages/conferences.py", line 2213, in _getBody
    return self._applyFrame( self._getPageContent( params ) )

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/pages/sessions.py", line 683, in _getPageContent
    body = wcomponents.WTabControl( self._tabCtrl, self._getAW() ).getHTML( self._getTabContent( params ) )

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/pages/sessions.py", line 1477, in _getTabContent
    return self._getTTPage(params)

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/pages/conferences.py", line 3241, in _getTTPage
    return wc.getHTML(params)

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/wcomponents.py", line 187, in getHTML
    vars = self.getVars()

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/webinterface/pages/sessions.py", line 1502, in getVars
    eventInfo = DictPickler.pickle(self._session.getConference(), timezone=tz)

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/common/PickleJar.py", line 197, in pickle
    return DictPickler._pickle(object, globalPickleMap[clazz], timezone)

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/common/PickleJar.py", line 248, in _pickle
    result = method(object)

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/conference.py", line 3332, in getFavoriteRooms
    roomList.extend(map(lambda x: x._getName(), self.getBookedRooms()))

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/conference.py", line 2229, in getBookedRooms
    for r in self.getRoomBookingList():

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/conference.py", line 2204, in getRoomBookingList
    r = resvGuid.getReservation()

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/rb_location.py", line 305, in getReservation
    return CrossLocationQueries.getReservations(

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/rb_location.py", line 421, in getReservations
    return Location.parse( location ).factory.newReservation().getReservations( **kwargs )

  File "/usr/lib/python2.4/site-packages/cds_indico-0.97b2-py2.4.egg/MaKaC/plugins/RoomBooking/default/reservation.py", line 194, in getReservations
    return root[_RESERVATIONS].get( resvID )

request handler => <class 'MaKaC.webinterface.rh.sessionModif.RHSessionModifSchedule'>
url => http://indico.cern.ch/sessionModifSchedule.py?sessionId=6&confId=76883
parameters => 
sessionId = 6
view = parallel
days = all
confId = 76883

Change History (5)

comment:1 Changed 6 years ago by dmartinc

  • Priority changed from normal to high

After some research lurking in the DB:

This happens for any event where a reservation is made through the "Room Booking" section.
I was confused because in the event 76883 (of the above traceback) there were apparently no bookings. But it seems that if a booking is rejected, there is still a value inside the self.__roomBookingGuids list of the Conference object; it's not erased, just marked as rejected. I then tried with an event of my own and was able to reproduce.

In conclusion: making a room booking for an event makes the sessionModifSchedule.py page go bad.

PS: to get to the sessionModifSchedule.py page: Timetable section->eedit properties of a session->timetable tab inside the session modif interface.

comment:2 Changed 6 years ago by dmartinc

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

comment:3 Changed 6 years ago by jbenito

  • Milestone set to v0.97

comment:4 Changed 6 years ago by david.martin.clavo@…

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

commit a21bf83183a0895356e16f780402066fe88970db
Author: David Martín Clavo <david.martin.clavo@…>
Date: Thu Mar 11 17:05:57 2010 +0100

[FIX] Missing RoomBookingDBMixin in sessionModif


-fixes #304

comment:5 Changed 5 years ago by David Martín Clavo <david.martin.clavo@…>

In [a21bf83183a0895356e16f780402066fe88970db]:

[FIX] Missing RoomBookingDBMixin in sessionModif

-fixes #304

Note: See TracTickets for help on using tickets.