Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
GoogleCodeExporter opened this issue Mar 15, 2015 · 3 comments
Closed

Comments

@GoogleCodeExporter
Copy link
Collaborator

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

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
Copy link
Collaborator Author

Hi,

This has been fixed in version 1.5.


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

  • Changed state: Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant