[ZCM] [ZC] 1401/10 Accept "SystemError in SessionDataManager"

Collector: Zope Bugs, Features, and Patches ... zope-coders-admin at zope.org
Wed Aug 4 22:21:38 EDT 2004


Issue #1401 Update (Accept) "SystemError in SessionDataManager"
 Status Accepted, Zope/bug critical
To followup, visit:
  http://zope.org/Collectors/Zope/1401

==============================================================
= Accept - Entry #10 by mcdonc on Aug 4, 2004 10:21 pm

 Status: Deferred => Accepted

 Supporters added: mcdonc

Dieter provides what might be a clue, and I checked in a change he suggested to the 2.7 branch and HEAD.  See http://mail.zope.org/pipermail/zope-checkins/2004-August/028135.htmlfor the patch.  If the folks who are getting these errors could try to apply this patch to their running Zopes and report if they continue to see these errors, it would be helpful. 
________________________________________
= Comment - Entry #9 by mcdonc on Aug 3, 2004 2:19 pm

> Proposal:
> Don't create a new session unless some is safing data in a session. A
>   operation like session = request.SESSION or request.SESSION.get('foo',
>   None) shouldn't create a new session

That's an interesting idea, although I think it may not quite work for all use cases.  In the meantime, however, there's not a lot of evidence that decreasing the sessioning load in this way would prevent the reported error from happening, so my request for people to bust out gdb when they see it still stands...
________________________________________
= Comment - Entry #8 by Tiran on Aug 3, 2004 1:33 pm

Plone is using PTS and PTS made very heavy use of SESSIONs because the author (me :|) didn't know that even the test for the existence of a session var did create a new session.

Proposal:
Don't create a new session unless some is safing data in a session. A operation like session = request.SESSION or request.SESSION.get('foo', None) shouldn't create a new session
________________________________________
= Comment - Entry #7 by mcdonc on Aug 3, 2004 12:30 pm

Thanks for the report(s).

I have heard from four people, all of whom use Plone, that they have this problem.  I haven't been able to replicate it, but I also haven't used Plone in a while.  FWIW, no non-Plone users have reported this error.

The SystemError itself is indicative of a bad piece of C code somewhere (although it's not clear where).

The way this will get fixed is for someone to outline a repeatable set of configuration and usage steps for the systemerror to be reproduced, and then research the cause of the systemerror (maybe using gdb).  I may be able to do this, but it likely won't be soon due to other committments, so help is appreciated in the meantime.
________________________________________
= Comment - Entry #6 by hrma on Aug 3, 2004 10:58 am

I couldn't attach my event log (Insufficient Privs) so I placed it in my folder.  It can be found here:

http://zope.org/Members/hrma/event.zip


________________________________________
= Comment - Entry #5 by hrma on Aug 3, 2004 10:46 am

Hey folks...  I'm having the same issue after upgrading to Zope 2.7.2.  I'm running Python 2.3.3, Zope 2.7.2, Plone 2.0.3 frontended by Apache2 on a Windows 2000 server.  There are 2 zope instances running on this server.  I seem to be having this problem (so far) with only one of them.  Here's the traceback I'm getting:

Traceback (innermost last):
  Module ZPublisher.Publish, line 101, in publish
  Module ZPublisher.mapply, line 88, in mapply
  Module ZPublisher.Publish, line 39, in call_object
  Module Products.CMFCore.PortalContent, line 116, in __call__
  Module Shared.DC.Scripts.Bindings, line 306, in __call__
  Module Shared.DC.Scripts.Bindings, line 343, in _bindAndExec
  Module Products.CMFCore.FSPageTemplate, line 191, in _exec
  Module Products.CMFCore.FSPageTemplate, line 124, in pt_render
  Module Products.PageTemplates.PageTemplate, line 96, in pt_render
   - <FSPageTemplate at /www_hrma_org/document_view used for /www_hrma_org/index_html>
  Module TAL.TALInterpreter, line 189, in __call__
  Module TAL.TALInterpreter, line 233, in interpret
  Module TAL.TALInterpreter, line 670, in do_useMacro
  Module TAL.TALInterpreter, line 233, in interpret
  Module TAL.TALInterpreter, line 408, in do_optTag_tal
  Module TAL.TALInterpreter, line 393, in do_optTag
  Module TAL.TALInterpreter, line 388, in no_tag
  Module TAL.TALInterpreter, line 233, in interpret
  Module TAL.TALInterpreter, line 636, in do_condition
  Module TAL.TALInterpreter, line 233, in interpret
  Module TAL.TALInterpreter, line 559, in do_insertTranslation
  Module TAL.TALInterpreter, line 622, in translate
  Module Products.PageTemplates.TALES, line 264, in translate
  Module Products.PlacelessTranslationService.PlacelessTranslationService, line 113, in translate
  Module Products.PlacelessTranslationService.PlacelessTranslationService, line 504, in translate
  Module Products.PlacelessTranslationService.PlacelessTranslationService, line 416, in getCatalogsForTranslation
  Module Products.PlacelessTranslationService.PlacelessTranslationService, line 541, in negotiate_language
  Module Products.PlacelessTranslationService.Negotiator, line 261, in negotiate
  Module Products.PlacelessTranslationService.Negotiator, line 266, in _negotiate
  Module Products.PlacelessTranslationService.Negotiator, line 54, in getLangPrefs
  Module Products.PlacelessTranslationService.Negotiator, line 172, in getAccepted
  Module ZPublisher.HTTPRequest, line 1218, in __getattr__
  Module ZPublisher.HTTPRequest, line 1178, in get
  Module Products.Sessions.SessionDataManager, line 94, in getSessionData
  Module Products.Sessions.SessionDataManager, line 183, in _getSessionDataObject
SystemError: error return without exception set



I am also seeing ZODB conflict errors in the event log.  I get KeyErrors all over the place, and when I try to access the Session Data container within /temp_folder I get:

Traceback (innermost last):
  Module ZPublisher.Publish, line 101, in publish
  Module ZPublisher.mapply, line 88, in mapply
  Module ZPublisher.Publish, line 39, in call_object
  Module App.special_dtml, line 62, in __call__
  Module DocumentTemplate.DT_String, line 474, in __call__
  Module Products.Transience.Transience, line 838, in nudge
  Module Products.Transience.Transience, line 694, in _gc
KeyError: 1091222580

I've attached a zipped snapshot of my event log detailing the numerous errors since my last instance startup on the 29th.

I hope all this is A) related and B) helps.  Let me know if I can be of any assistance.

Mick Drevyanko
mick at portofhamptonroads.com
________________________________________
= Defer - Entry #4 by chrisw on Jul 30, 2004 9:46 am

 Status: Pending => Deferred

If this can't be reproduced within a month, it'll get rejected as something specific to your setup.
________________________________________
= Comment - Entry #3 by morphex on Jul 21, 2004 6:19 am

Not sure if it can be reproduced, I'll try to create a test that reproduces the bug this week
________________________________________
= Comment - Entry #2 by ajung on Jul 20, 2004 12:35 am

Can this error be reproduced somehow?
________________________________________
= Request - Entry #1 by morphex on Jul 3, 2004 10:03 am

2004-07-03T09:00:04 ERROR(200) SiteError http://www.blogologue.com/index_html
Traceback (most recent call last):
  File "/home/shared/zope271/lib/python/ZPublisher/Publish.py", line 101, in publish
    request, bind=1)
  File "/home/shared/zope271/lib/python/ZPublisher/mapply.py", line 88, in mapply
    if debug is not None: return debug(object,args,context)
  File "/home/shared/zope271/lib/python/ZPublisher/Publish.py", line 39, in call_object
    result=apply(object,args) # Type s<cr> to step into published object.
  File "/home/shared/zope271/lib/python/Shared/DC/Scripts/Bindings.py", line 306, in __call__
    return self._bindAndExec(args, kw, None)
  File "/home/shared/zope271/lib/python/Shared/DC/Scripts/Bindings.py", line 343, in _bindAndExec
    return self._exec(bound_data, args, kw)
  File "/home/shared/zope271/lib/python/Products/PageTemplates/PageTemplateFile.py", line 106, in _exec
    return self.pt_render(extra_context=bound_names)
  File "/home/shared/zope271/lib/python/Products/PageTemplates/PageTemplate.py", line 96, in pt_render
    tal=not source, strictinsert=0)()
  File "/home/shared/zope271/lib/python/TAL/TALInterpreter.py", line 189, in __call__
    self.interpret(self.program)
  File "/home/shared/zope271/lib/python/TAL/TALInterpreter.py", line 233, in interpret
    handlers[opcode](self, args)
  File "/home/shared/zope271/lib/python/TAL/TALInterpreter.py", line 605, in do_loop_tal
    self.interpret(block)
  File "/home/shared/zope271/lib/python/TAL/TALInterpreter.py", line 233, in interpret
    handlers[opcode](self, args)
  File "/home/shared/zope271/lib/python/TAL/TALInterpreter.py", line 561, in do_insertStructure_tal
    structure = self.engine.evaluateStructure(expr)
  File "/home/shared/zope271/lib/python/Products/PageTemplates/TALES.py", line 221, in evaluate
    return expression(self)
  File "/home/shared/zope271/lib/python/Products/PageTemplates/ZRPythonExpr.py", line 47, in __call__
    return eval(code, g, {})
  File "Python expression "here.render_issue_contents(item['issue'])"", line 1, in <expression>
  File "/home/shared/zope271/instance/Products/IssueDealerWeblog/local_weblog_publisher.py", line 249, in render_issue_contents
    return issue.render_contents_weblog()
  File "/home/shared/zope271/instance/Products/IssueDealer/issue.py", line 485, in render_contents_weblog
    return self.render_contents()
  File "/home/shared/zope271/instance/Products/IssueDealer/issue.py", line 457, in render_contents
    return self.render_text_as_html()
  File "/home/shared/zope271/instance/Products/IssueDealer/issue.py", line 200, in render_text_as_html
    size = self.get_user_preferences().issue_contents_size
  File "/home/shared/zope271/instance/Products/IssueDealer/base.py", line 169, in get_user_preferences
    return self.get_issue_dealer()[self.REQUEST.SESSION['preferences']]
  File "/home/shared/zope271/lib/python/ZPublisher/HTTPRequest.py", line 1218, in __getattr__
    v = self.get(key, default, returnTaints=returnTaints)
  File "/home/shared/zope271/lib/python/ZPublisher/HTTPRequest.py", line 1178, in get
    if callable(v): v = v()
  File "/home/shared/zope271/lib/python/Products/Sessions/SessionDataManager.py", line 94, in getSessionData
    return self._getSessionDataObject(key)
  File "/home/shared/zope271/lib/python/Products/Sessions/SessionDataManager.py", line 183, in _getSessionDataObject
    if getattr(ob, '__of__', None) and getattr(ob, 'aq_parent', None):
SystemError: error return without exception set

==============================================================



More information about the Zope-Collector-Monitor mailing list