I have an overpass api server that I set up, which is under reasonably heavy usage, although the machine is beefy (16 CPUS, 48G RAM, SSDs). 99.9% of the time it handles things fine. However every so often I get a HTTP 500 error from apache, and all I get in the apache error logs is this:
I can't find anything in the overpass When the same query is sent at a later time, it works and returns results quickly. Is there anything I can do to debug this problem more, or to find out what's going on? Or should I just resubmit the query when there is a 500 error until I get a 200 result? asked 15 Apr '16, 11:05 rorym |
First of all, it is for sure a bug in the software. HTTP 500 means most often that the process has crashed. There are HTTP 500 errors on the main instance, too. It happens about once per 100'000 requests, and the errors aren't reproducible. The Apache error log often, but not always tells "End of script output before headers". After all, I have no idea what is happening there. The first log message to $DB_DIR/transactions.log is written quite early (once the process knows where the log directory is), hence I have no idea yet how to catch the error condition. A general advice I can give is to run the latest version from the minor_issues branch. This branch is always intended to get patches, and some bugs that may or may not cause crashed have been fixed there. The second advice is, like mmd has said, to subscribe to the Overpass list. It is probably a better place to discuss all the deeper technical details once there is more information. answered 16 Apr '16, 09:05 Roland Olbricht |
Better ask this question on the overpass dev list: http://listes.openstreetmap.fr/wws/info/overpass and don't forget to add much more details: (a) which Overpass / apache version do you run (b) which queries do you run (c) do you run them in parallel, if so, how many parallel threads, (d) what kind of client do you use, (e) how did you set up your db, does it include attic data?... etc... basically, what is needed to reproduce this?