Installation

New 2.9 Install - Cannot add problems using Library Browser

New 2.9 Install - Cannot add problems using Library Browser

by Alan Ableson -
Number of replies: 8
Hi folks,

I have a new Webwork 2.9 installation on Ubuntu 14.04.1, following the instructions at

http://webwork.maa.org/wiki/Installation_Manual_for_2.9_on_Ubuntu_14.04

Everything seemed to be operating normally at first, but I've now encountered an odd problem with the library browser not being able to add problems to problem sets.

- In the library browser, I can search the OPL, and also view local problems.
When I click on either "Add" for single problems, or "Add All" to add multiple ones, I get the success/green bar saying "X problems have been added to set Y."

However, when I go back to the Hmwk Sets Editor, the problem set Y is unchanged.

So adding from the library says its working, but doesn't actually change the problem set.

In contrast, I can use the Hmwk Sets Editor to 1) add blank problems, then 2) cut-and-paste in the paths to OPL or local problems. When I do that, the problem set is correctly updated.

Looking in the log files in /var/log/apache2/error.log, I found entries like
---
[Thu Aug 28 13:40:38.115191 2014] [perl:error] [pid 1923] [client 130.15.100.106:49891] [/webwork2/instructorXMLHandler] Can't call method "result" on an undefined value at /opt/webwork/webwork2/lib/WebworkClient.pm line 164.\n * in WebworkClient::xmlrpcCall called at line 318 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator/instructorXMLHandler.pm\n * in WeBWorK::ContentGenerator::instructorXMLHandler::pre_header_initialize called at line 183 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm\n * in WeBWorK::ContentGenerator::go called at line 370 of /opt/webwork/webwork2/lib/WeBWorK.pm, referer: http://r140.n100.queensu.ca:8018/webwork2/Test2/instructor/setmaker/
There were a lot of errors
---

Any thoughts or suggestions would be welcome. Thanks!

Alan



In reply to Alan Ableson

Re: New 2.9 Install - Cannot add problems using Library Browser

by Jason Aubrey -
Hi Alan,

My first thought is that the issue is related to your nonstandard port. So I'd suggest you first check your $server_root_url in site.conf and make sure it's fully http://r140.n100.queensu.ca:8018 (with the port). Hopefully it's not already that, and when you change it to that and restart the server everything will work.

Jason
In reply to Jason Aubrey

Re: New 2.9 Install - Cannot add problems using Library Browser

by Alan Ableson -
Thanks for the suggestion Jason. Unfortunately, I did have the full URL in the $server_root_url, so that doesn't seem to be the issue.

Since we haven't done much course development work on the new system, I think I'm going to try a new install from the LiveCD and see if that works any better.

Thanks again,

Alan
In reply to Alan Ableson

Re: New 2.9 Install - Cannot add problems using Library Browser

by Danny Glin -
When you select a Subject in the Library Browser, does it automatically populate the Chapter drop down for that Subject?

If so, then the basic setup is working, and the problem is deeper.

This may be a stupid question, but did you make sure that you selected a target set at the top of the page before adding problems?
In reply to Danny Glin

Re: New 2.9 Install - Cannot add problems using Library Browser

by Alan Ableson -
Hi Danny,

> When you select a Subject in the Library Browser, does it automatically populate the Chapter drop down for that Subject?

Yes, browsing with both the regular and "Advanced Search" works exactly as it is supposed to.

>This may be a stupid question, but did you make sure that you selected a target set at the top of the page before adding problems?

Definitely not a stupid question! (I've made my own share of "did you check the plug?" errors.) Unfortunately in this case, I did have a problem set selected.

>If so, then the basic setup is working, and the problem is deeper.

That's my fear, and with something deeper going wrong, I'm afraid I'll only find a superficial fix that will come back with another more subtle problem later. Thus a re-install from the liveDVD.

Thanks for the thoughts!

Alan
In reply to Alan Ableson

Re: New 2.9 Install - Cannot add problems using Library Browser

by John Curran -
Alan,

how did this play out? It's about a year later and I am having very similar symptoms with my installation....except my Chapter dropdown menu does not automatically populate unless I select View Problems or Clear Problem Display
In reply to John Curran

Re: New 2.9 Install - Cannot add problems using Library Browser

by Michael Gage -
The problem --- as described above --- is that the javaScript call backs to the server to refresh the library browser page are not getting through.  A mismatch between the site_url variable and the actual url used to call webwork could be one culprit but there might be others. (Something as simple as using http in one location and https in another can cause this problem.)

To trouble shoot use two tools.  Choosing "web console" or "developer tools" (depends on the browser) will give you a console with error messages emitted by the java script on the page.   Viewing the apache error log will give you the server error messages. Between the two of them you will at least have more information about why the connection can't be made. 

Hope that helps
In reply to Michael Gage

Re: New 2.9 Install - Cannot add problems using Library Browser

by Alan Ableson -
I just came back to this after doing a 2.10 install with the same issue as last time, so I figured I should add an update.

My guess is that, in our case, having an explicit port in the URL is causing the problem. We have several VMs behind a firewall, and another machine using the natural :80 HTTP port. Our full URL is

http://r140.n100.queensu.ca:8118

There is are both Apache and Javascript errors produced when "Add" is pressed.

Apache error.log:
There were a lot of errors
[Wed Sep 09 20:29:01.497837 2015] [perl:error] [pid 17681] [client 67.193.166.227:50410] [/webwork2/instructorXMLHandler] Can't call method "result" on an undefined value at /opt/webwork/webwork2/lib/WebworkClient.pm line 168.\n * in WebworkClient::xmlrpcCall called at line 320 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator/instructorXMLHandler.pm\n * in WeBWorK::ContentGenerator::instructorXMLHandler::pre_header_initialize called at line 183 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm\n * in WeBWorK::ContentGenerator::go called at line 380 of /opt/webwork/webwork2/lib/WeBWorK.pm, referer: http://r140.n100.queensu.ca:8118/webwork2/APSC171/instructor/setmaker/
There were a lot of errors
[Wed Sep 09 20:29:01.678729 2015] [perl:error] [pid 17681] [client 67.193.166.227:50410] [/webwork2/instructorXMLHandler] Can't call method "result" on an undefined value at /opt/webwork/webwork2/lib/WebworkClient.pm line 168.\n * in WebworkClient::xmlrpcCall called at line 320 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator/instructorXMLHandler.pm\n * in WeBWorK::ContentGenerator::instructorXMLHandler::pre_header_initialize called at line 183 of /opt/webwork/webwork2/lib/WeBWorK/ContentGenerator.pm\n * in WeBWorK::ContentGenerator::go called at line 380 of /opt/webwork/webwork2/lib/WeBWorK.pm, referer: http://r140.n100.queensu.ca:8118/webwork2/APSC171/instructor/setmaker/
Use of uninitialized value $method_uri in hash element at /usr/share/perl5/SOAP/Lite.pm line 2750.

The Javascript error is:
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

I'm wondering if it is as simple as the colon specifying the port, and there being a regular expression filter in place?

Alan

In reply to Alan Ableson

Re: New 2.9 Install - Cannot add problems using Library Browser

by Michael Gage -
I would use the Developer->Developer Tools window (in chrome) or a similar one in Safari of Firefox (Firebug) to catch the javascript messages being issued by the browser.  I suspect that the browser call back to the server instructorXmlHandler might not be connecting and using the browser tools will verify that if it's true. This is a not uncommon occurrence, usually because $site_root_url isn't correctly specified.

The instructorXmlHandler script translates the HTML form from the browser into xml and then calls the webworkwebservice.  It's possible that this second callback is the one that's failing -- again probably because it's calling the standard port instead of the non-standard one.  I don't have a fool proof way to check that. Possibly  viewing the access.logs at your site might reveal calls from instructorXmlHandler to the port 80 address.