"Internal server error" message


#1

Some of the changes I’ve made to my branch of the matrix are causing my sandbox version of the matrix to give me an “Internal Server Error” message whenever I try to add possessive morphemes. These changes don’t cause any of the regression tests to fail, and running the customize.py script from the command line generates the expected grammar without any apparent issue. Has anyone seen this error before? I’m not certain, but it might be related to my adding features to the LexicalRuleType object in lexbase.py.


#2

This error just means the webpage could not be loaded successfully. It could be for any reason, unfortunately… But given that customize.py seems to work fine, you could tell that this has to do with matrixdef, most likely, e.g. if you had any invalid syntax in it (such as beginIter x ending with endIter y).

Your best bet would be doing binary elimination of your changes. Would it be possible to revert to an earlier revision which did not cause the error? Did you keep track of the last satisfactorily working revision, perhaps? After that, compare the versions of matrixdef and add the diffs back gradually (as described here: http://www.codelord.net/2012/04/10/using-binary-search-for-debugging/).

It could also be a permission issue, though if you weren’t having it before, it is unlikely.


#3

So I solved this, and embarrassingly it just turns out to have been print statements I had put in morphotactics.py to help with debugging. That was the weird thing – since the error was only with the website, it seemed like it was probably a bug in matrixdef or deffile.py, but it was my edits to morphotactics.py that clearly were causing it to break. Turns out print statements cause problems :slight_smile:


#4

Glad you solved it! In the future you should be able to look at the error logs in patas at /home/www-matrix/logs.


#5

I literally had this written here but fell asleep before hitting post:

“It could be something else, but in my experience it’s almost always leftover print statements.” :slight_smile: