[Building Sakai] Sakai Issues in Assignments, Syllabi, Quizzes in Production - HELP!

Stephen Marquard stephen.marquard at uct.ac.za
Mon Sep 14 11:02:28 PDT 2009


I would start by looking at the filesystem permissions on your app servers for 

/tmp

which is what T&Q appears to be using to handle file uploads. On Linux/*BSD/Solaris systems, /tmp should normally have permissions which allow any OS user to create files there, but perhaps the user account under which Tomcat is running does not have permission to do that.

I'm not sure that's in any related to the 403 and 404s on the URLs below however (/access/content/...). I'd suggest investigating those individually, looking at what files are being requested (and from what referer URL - you can enable referer logging in apache), and why the user can't access them. For example it could be something like an image referenced inside the HTML for a quiz question where the image itself is in a location that the user taking the quiz has no rights to access.

Regards
Stephen
 
>>> kfaella <kmf at uri.edu> 9/14/2009 3:53 PM >>> 

Hi all,

We are running Sakai 2.5.4 in our first full semester.  We are getting lots
of errors in our logs of the type
   403 Forbidden  /access/content/attachment/....
   403 Forbidden /access/content/group/...
   403  Forbidden /access/content/user

& 404 Not found   in the same directories.

Users are reporting the inability for students to access some syllabi,
assignment attachments and the inability to load some quizzes.   I have
looked into the jiras and see some possibilities but I am hoping someone can
tell me if there is a known common issue or two for this behaviour.  

I am afraid these errors are giving Sakai a bad name here.  We have migrated
from WebCT and initial reactions are good but these problems are becoming
critical in nature.

Any help appreciated!

Our setup is  Sakai 2.5.4 on Redhat 5.  Multiple tomcat instances load
balanced with apache mod_proxy_ajp.

Kathy

PS Here is the basic error just sent to me for a user attempting to upload a
quiz.


org.sakaiproject.portal.api.PortalHandlerException:
org.sakaiproject.tool.api.ToolException: java.io.FileNotFoundException:
/tmp/jsf/upload_tmp/qti_imports/d945dba1-923d-4692-9624-a7087a0fa901/ExamA_nopix2_1252933703881.xml
(Permission denied)
    at
org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:63)
caused by: org.sakaiproject.tool.api.ToolException:
java.io.FileNotFoundException:
/tmp/jsf/upload_tmp/qti_imports/d945dba1-923d-4692-9624-a7087a0fa901/ExamA_nopix2_1252933703881.xml
(Permission denied)
    at
org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1343)
caused by: javax.servlet.ServletException: java.io.FileNotFoundException:
/tmp/jsf/upload_tmp/qti_imports/d945dba1-923d-4692-9624-a7087a0fa901/ExamA_nopix2_1252933703881.xml
(Permission denied)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
caused by: javax.faces.FacesException: java.io.FileNotFoundException:
/tmp/jsf/upload_tmp/qti_imports/d945dba1-923d-4692-9624-a7087a0fa901/ExamA_nopix2_1252933703881.xml
(Permission denied)
    at
javax.faces.component.UIComponentBase.decode(UIComponentBase.java:665)
caused by: java.io.FileNotFoundException:
/tmp/jsf/upload_tmp/qti_imports/d945dba1-923d-4692-9624-a7087a0fa901/ExamA_nopix2_1252933703881.xml
(Permission denied)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
    at
org.apache.commons.fileupload.disk.DiskFileItem.write(DiskFileItem.java:413)
    at com.corejsf.UploadRenderer.decode(UploadRenderer.java:123)
    at
javax.faces.component.UIComponentBase.decode(UIComponentBase.java:665)
    at javax.faces.component.UIInput.decode(UIInput.java:464)
    at
javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:885)
    at javax.faces.component.UIInput.processDecodes(UIInput.java:380)
    at javax.faces.component.UIForm.processDecodes(UIForm.java:144)
    at
javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:880)
    at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:306)
    at
com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:79)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at com.corejsf.UploadFilter.doFilter(UploadFilter.java:142)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:555)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
    at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
    at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
    at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
    at
org.sakaiproject.jsf.util.SamigoJsfTool.dispatch(SamigoJsfTool.java:266)
    at org.sakaiproject.jsf.util.JsfTool.doPost(JsfTool.java:256)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
    at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
    at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:364)
    at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
    at
org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:459)
    at
org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1343)
    at
org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:163)
    at
org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:86)
    at
org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:63)
    at
org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1186)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:592)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
    at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
    at
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
    at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:595)




-- 
View this message in context: http://www.nabble.com/Sakai-Issues-in-Assignments%2C-Syllabi%2C-Quizzes-in-Production---HELP%21-tp25436166p25436166.html
Sent from the Sakai - Development mailing list archive at Nabble.com.

_______________________________________________
sakai-dev mailing list
sakai-dev at collab.sakaiproject.org
http://collab.sakaiproject.org/mailman/listinfo/sakai-dev

TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"



More information about the sakai-dev mailing list