pottersintcollege / course-builder

Automatically exported from code.google.com/p/course-builder
0 stars 0 forks source link

With multiple courses, student entities suffer from bad caching. #37

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Create a new install with two courses according to the wiki's instructions. 
I simply made two copies of the demo course, that way the urls for the 
assessments only differed in the course prefix.
2. (NOTE: The order is important here.) With a new user, register for one 
course and take an assessment. Click on the link for the next assessment, and 
then edit the url to point to the second course's version.
3. You can now take the assessment for a course you are not enrolled in.

What is the expected output? What do you see instead?
You should be kicked out to the preview for the second course. It should not 
allow you to view the other assessment, let alone submit and create the 
attendant entities under the second course's namespace (but not the Student 
entity, that is not created).

What version of the product are you using? On what operating system?
The latest commit, c10d492642d69796398084c7867ff88fc3074c19, running on the 
server. The problem does not occur with the dev server.

Please provide any additional information below.
It seems to be a caching problem because 
Student.get_enrolled_student_by_email() checks memcache without specifying a 
namespace. To prove this further, flush memcache, and visit the urls again, but 
this time first visit the course for which you are _not_ enrolled and you will 
correctly be redirected to the preview if you try to visit one of the inner 
links manually. However, if you now go back to the first course, which you are 
actually enrolled in, you will be treated as if you are not. Why? Because 
memcache is giving back {} when asked for that student.

Original issue reported on code.google.com by da...@aptwebapps.com on 20 Apr 2013 at 5:18

GoogleCodeExporter commented 9 years ago
To clarify, when I refer to memcache in the last para, I'm talking about 
models.models.MemcacheManager.

Original comment by da...@aptwebapps.com on 20 Apr 2013 at 5:27

GoogleCodeExporter commented 9 years ago
Hi David,

Thank you very much for reporting this issue.  We will fix this in version 
1.5.0.  In the meantime, you can use this workaround found here:

https://groups.google.com/forum/?fromgroups#!topic/course-builder-announce/bAKkk
Vo2wew

Original comment by r...@google.com on 11 Jun 2013 at 5:37

GoogleCodeExporter commented 9 years ago
Hi,

This has been fixed in version 1.5.

Original comment by r...@google.com on 2 Jul 2013 at 11:41