WeBWorK Problems

Computing Ability for Sage

Re: Computing Ability for Sage

by Geoff Goehle -
Number of replies: 0
For what its worth what I think what is happening is that the code is too slow. If I change

s4 = [k*prec*exp(theta *$pi/180*I) for k in range(1,1000*abs(p2))]

to

s4 = [k*prec*exp(theta *$pi/180*I) for k in range(1,100*abs(p2))]

then the call succeeds. If I leave it as is but turn on "debug=>true" in the AskSage constructor then the result comes back as

"success": false

indicating that the sagecell server itself was not finishing correctly.

Poking around in the sagecell server code (https://github.com/sagemath/sagecell/blob/master/handlers.py#L322) shows that there is a default_timeout of 30 seconds built into the service which will cause long running code to fail. If I time how long it takes for WeBWorK to load the failing version of the PG problem I find that it takes around 31 seconds for the page to load. To me this would indicate that the sage code is running for 30 seconds, and then the sagecell server is giving up and returning a failure message. I can't confirm this without changing the default_timeout on the sagecell server and seeing if that changes how long it takes for the WeBWorK page to load.

If this is what is causing the problem then the only option is to make your sage code faster. The default timeout in the sage cell server is hard coded and cannot be overridden. (And your students will thank you for making more responsive problems!)