Trying to generating a report, exception occurs.
Server running Ubuntu 12.04 LTS
SchoolTool 2.4.0
Accessed through Apache VirtualHost configured to use SSL (as documented on cando.cteresource.org).
Exception
IOError: [Errno socket error] [Errno 1] _ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
handle_pageBegin args=()
Traceback
File "/usr/lib/python2.7/dist-packages/zope/publisher/publish.py", line 132, in publish
result = publication.callObject(request, obj)
File "/usr/lib/python2.7/dist-packages/zope/app/publication/zopepublication.py", line 207, in callObject
return mapply(ob, request.getPositionalArguments(), request)
File "/usr/lib/python2.7/dist-packages/zope/publisher/publish.py", line 107, in mapply
return debug_call(obj, args)
Extra information: <schooltool.skin.flourish.zcml_content.StudentCompetencySectionReportPDFView_student_competency_section_report.pdf object at 0x7f3ae25c2950>
File "/usr/lib/python2.7/dist-packages/zope/publisher/publish.py", line 113, in debug_call
return obj(*args)
File "/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/report.py", line 161, in __call__
data = self.renderPDF(rml)
File "/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/report.py", line 110, in renderPDF
stream = rml2pdf.parseString(xml, filename=filename or None)
File "/usr/lib/python2.7/dist-packages/z3c/rml/rml2pdf.py", line 41, in parseString
doc.process(output)
File "/usr/lib/python2.7/dist-packages/z3c/rml/document.py", line 286, in process
self.doc.multiBuild(self.flowables)
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 960, in multiBuild
self.build(tempStory, **buildKwds)
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 877, in build
self.clean_hanging()
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 510, in clean_hanging
self.handle_flowable(self._hanging)
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 757, in handle_flowable
f.apply(self)
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 140, in apply
getattr(doc,arn)(*args)
File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 535, in handle_pageBegin
self.pageTemplate.onPage(self.canv,self)
File "/usr/lib/python2.7/dist-packages/z3c/rml/template.py", line 146, in drawOnCanvas
drawing.process()
File "/usr/lib/python2.7/dist-packages/z3c/rml/directive.py", line 109, in process
self.processSubDirectives()
File "/usr/lib/python2.7/dist-packages/z3c/rml/directive.py", line 102, in processSubDirectives
directive.process()
File "/usr/lib/python2.7/dist-packages/z3c/rml/canvas.py", line 304, in process
kwargs = dict(self.getAttributeValues(attrMapping=self.attrMapping))
File "/usr/lib/python2.7/dist-packages/z3c/rml/directive.py", line 59, in getAttributeValues
value = attr.bind(self).get()
File "/usr/lib/python2.7/dist-packages/z3c/rml/attr.py", line 100, in get
return self.fromUnicode(value)
File "/usr/lib/python2.7/dist-packages/z3c/rml/attr.py", line 308, in fromUnicode
fileObj = super(Image, self).fromUnicode(value)
File "/usr/lib/python2.7/dist-packages/z3c/rml/attr.py", line 292, in fromUnicode
fileObj = self.open(value)
File "/usr/lib/python2.7/urllib.py", line 86, in urlopen
return opener.open(url)
File "/usr/lib/python2.7/urllib.py", line 207, in open
return getattr(self, name)(url)
File "/usr/lib/python2.7/urllib.py", line 436, in open_https
h.endheaders(data)
File "/usr/lib/python2.7/httplib.py", line 954, in endheaders
self._send_output(message_body)
File "/usr/lib/python2.7/httplib.py", line 814, in _send_output
self.send(msg)
File "/usr/lib/python2.7/httplib.py", line 776, in send
self.connect()
File "/usr/lib/python2.7/httplib.py", line 1161, in connect
self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file)
File "/usr/lib/python2.7/ssl.py", line 381, in wrap_socket
ciphers=ciphers)
File "/usr/lib/python2.7/ssl.py", line 143, in __init__
self.do_handshake()
File "/usr/lib/python2.7/ssl.py", line 305, in do_handshake
self._sslobj.do_handshake()