Hi Ambie, I have uploaded a detailed description of the steps I followed here: https://github.com/dagg/OpenEdxExternalGrader Follow these steps to create a simple external grader, and if it works you can use this method for more advanced problems as well. If you have any questions about these steps please ask me again :)
Dimitris Τη Δευτέρα, 19 Σεπτεμβρίου 2016 - 4:31:16 μ.μ. UTC+3, ο χρήστης ambie έγραψε: > > hi Dimitris! How do you manage to resolve this issue? my problem is > exactly the same as you have. > I would really appreciate your reply. thanks > > > > On Friday, March 18, 2016 at 12:00:40 AM UTC+8, dimitris agelakis wrote: >> >> I have come to a dead end with this thing, can somebody give me a hint on >> how to overcome my problem with the external grader? >> Here is what I have done so far: >> >> I have imported the sample course and also cloned the java grader from >> here: >> https://github.com/huynq55/java-grader >> >> I have edited the /edx/app/xqueue/xqueue.env.json to look like this: >> >> { >> "LOCAL_LOGLEVEL": "INFO", >> "LOGGING_ENV": "sandbox", >> "LOG_DIR": "/edx/var/log/xqueue", >> "RABBIT_HOST": "localhost", >> "S3_BUCKET": "sandbox-bucket", >> "S3_PATH_PREFIX": "sandbox-xqueue", >> "SYSLOG_SERVER": "localhost", >> "XQUEUES": { >> "certificates": null, >> "java-queue": "http://localhost:1710", >> "open-ended": null, >> "open-ended-message": null, >> "test-pull": null >> }, >> "XQUEUE_WORKERS_PER_QUEUE": 12 >> } >> >> I have restarted the xqueue with the following command: >> sudo /edx/bin/supervisorctl restart xqueue: >> >> Seems that all the services are running normally: >> >> $ sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf status >> certs RUNNING pid 5412, uptime 0:10:20 >> edxapp:cms RUNNING pid 1506, uptime 1 day, 19:59: >> 30 >> edxapp:lms RUNNING pid 1504, uptime 1 day, 19:59: >> 30 >> edxapp_worker:cms_default_4 RUNNING pid 1526, uptime 1 day, 19:59: >> 29 >> edxapp_worker:cms_high_1 RUNNING pid 1521, uptime 1 day, 19:59: >> 29 >> edxapp_worker:cms_low_3 RUNNING pid 1512, uptime 1 day, 19:59: >> 30 >> edxapp_worker:lms_default_3 RUNNING pid 1517, uptime 1 day, 19:59: >> 29 >> edxapp_worker:lms_high_4 RUNNING pid 1531, uptime 1 day, 19:59: >> 29 >> edxapp_worker:lms_high_mem_2 RUNNING pid 1513, uptime 1 day, 19:59: >> 30 >> edxapp_worker:lms_low_1 RUNNING pid 1523, uptime 1 day, 19:59: >> 29 >> forum RUNNING pid 1500, uptime 1 day, 19:59: >> 30 >> xqueue RUNNING pid 5409, uptime 0:10:20 >> xqueue_consumer RUNNING pid 1499, uptime 1 day, 19:59: >> 30 >> >> I run the JavaGrader.py: >> sudo python /edx/java-grader/JavaGrader.py >> >> And then I go to the course and try to test the grader... >> >> When I run the one of the 3 problems from the sample course, i see that >> the grader seems to work correctly, it puts the data to the "xqueue" >> database in MySQL for example the following query: >> select grader_reply from queue_submission; >> >> returns something like this: >> >> >> +------------------------------------------------------------------------------------------+ >> | grader_reply >> | >> >> +------------------------------------------------------------------------------------------+ >> | {"msg": "Good job!", "score": 1, "correct": true} >> | >> | {"msg": "Good job!", "score": 1, "correct": true} >> | >> | {"msg": "Good job!", "score": 1, "correct": true} >> | >> | {"msg": "Good job!", "score": 1, "correct": true} >> | >> | {"msg": "Good job!", "score": 1, "correct": true} >> | >> ..... >> (the rows increase every time I check the program from the sample >> course)... >> >> But although the grader passes, and it puts the data into database, it >> NEVER returns the answer to the LMS. >> >> The logs from: >> /edx/var/log/xqueue/edx.log >> >> are the following (after each check): >> >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][queue.consumer][env: >> sandbox] INFO [Mathesis1 1896] [consumer.py:321] - Processing >> submission from queue_name: java-queue, submission_id: 31 >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][requests.packages. >> urllib3.connectionpool][env:sandbox] INFO [Mathesis1 1896] [ >> connectionpool.py:191] - Starting new HTTP connection (1): localhost >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][queue.consumer][env: >> sandbox] ERROR [Mathesis1 1896] [consumer.py:185] - Could not connect >> to server at http://localhost:1710 in timeout=30.000000 >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][queue.consumer][env: >> sandbox] ERROR [Mathesis1 1896] [consumer.py:403] - Submission 31 to >> grader http://localhost:1710 failure: Reply: cannot connect to server, >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][requests.packages. >> urllib3.connectionpool][env:sandbox] INFO [Mathesis1 1896] [ >> connectionpool.py:191] - Starting new HTTP connection (1): localhost >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][queue.consumer][env: >> sandbox] ERROR [Mathesis1 1896] [consumer.py:185] - Could not connect >> to server at >> http://localhost:3180/courses/CUP/j101/2014_T12/xqueue/9/i4x://CUP/j101/problem/a2ed4ae1e2e94c278d92c494b2b738b6/score_update >> >> in timeout=5.000000 >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][requests.packages. >> urllib3.connectionpool][env:sandbox] INFO [Mathesis1 1896] [ >> connectionpool.py:191] - Starting new HTTP connection (1): localhost >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][queue.consumer][env: >> sandbox] ERROR [Mathesis1 1896] [consumer.py:185] - Could not connect >> to server at >> http://localhost:3180/courses/CUP/j101/2014_T12/xqueue/9/i4x://CUP/j101/problem/a2ed4ae1e2e94c278d92c494b2b738b6/score_update >> >> in timeout=5.000000 >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][requests.packages. >> urllib3.connectionpool][env:sandbox] INFO [Mathesis1 1896] [ >> connectionpool.py:191] - Starting new HTTP connection (1): localhost >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][queue.consumer][env: >> sandbox] ERROR [Mathesis1 1896] [consumer.py:185] - Could not connect >> to server at >> http://localhost:3180/courses/CUP/j101/2014_T12/xqueue/9/i4x://CUP/j101/problem/a2ed4ae1e2e94c278d92c494b2b738b6/score_update >> >> in timeout=5.000000 >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][requests.packages. >> urllib3.connectionpool][env:sandbox] INFO [Mathesis1 1896] [ >> connectionpool.py:191] - Starting new HTTP connection (1): localhost >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][queue.consumer][env: >> sandbox] ERROR [Mathesis1 1896] [consumer.py:185] - Could not connect >> to server at >> http://localhost:3180/courses/CUP/j101/2014_T12/xqueue/9/i4x://CUP/j101/problem/a2ed4ae1e2e94c278d92c494b2b738b6/score_update >> >> in timeout=5.000000 >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][requests.packages. >> urllib3.connectionpool][env:sandbox] INFO [Mathesis1 1896] [ >> connectionpool.py:191] - Starting new HTTP connection (1): localhost >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][queue.consumer][env: >> sandbox] ERROR [Mathesis1 1896] [consumer.py:185] - Could not connect >> to server at >> http://localhost:3180/courses/CUP/j101/2014_T12/xqueue/9/i4x://CUP/j101/problem/a2ed4ae1e2e94c278d92c494b2b738b6/score_update >> >> in timeout=5.000000 >> Mar 17 16:33:09 Mathesis1 [service_variant=xqueue][queue.consumer][env: >> sandbox] ERROR [Mathesis1 1896] [consumer.py:163] - Unable to return to >> LMS: lms_callback_url: >> http://localhost:3180/courses/CUP/j101/2014_T12/xqueue/9/i4x://CUP/j101/problem/a2ed4ae1e2e94c278d92c494b2b738b6/score_update, >> >> payload: {'xqueue_header': u'{"lms_key": >> "eb1915fccfad4b664377bf8e47e27d9e", "lms_callback_url": " >> http://localhost:3180/courses/CUP/j101/2014_T12/xqueue/9/i4x://CUP/j101/problem/a2ed4ae1e2e94c278d92c494b2b738b6/score_update", >> >> "queue_name": "java-queue"}', 'xqueue_body': '{"msg": "<div >> class=\\"capa_alert\\">Your submission could not be graded. Please recheck >> your submission and try again. If the problem persists, please notify the >> course staff.</div>", "score": 0, "correct": null}'}, lms_reply: cannot >> connect to server >> >> >> Anyone knows what this "lms_reply: cannot connect to server" means and >> why it is happening? >> And what is this "/score_update" at the end of the url shown in the logs? >> How can I make the LMS accept the reply? >> >> Any help would be appreciated as I am totally lost on this one! >> And a thorough tutorial by the creators of the external grader on how to >> make it work would also be appreciated ! >> >> Thank you in advance guys, I hope someone has an answer :) >> >> >> >> >> -- You received this message because you are subscribed to the Google Groups "General Open edX discussion" group. To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/91780dc7-4704-482a-adef-2261140946c2%40googlegroups.com.
