Hi, I have a Python GP script that is published to ArcGIS Server, from Catalog. It runs about 2/3 of the time without fail but 1/3 of the time it totally crashes either ArcGIS Catalog or the ArcGIS Server instance. The script is a fairly simple arcpy.mapping report and it does make use of the Pyodbc library for some of the report values. There is no apparent pattern to when it crashes and when it doesn't. There is no warning when it crashes and it creates a crash dump but I can't read those to see if there are any clues.
Intermittent problems are the hardest ones to diagnose. On top of that, there isn't much to go on here. It is a "fairly simple arcpy.mapping report" but no code is provided so GeoNet users have no idea what functions you are calling and how you are calling them. I see the Pyodbc library is used, but again, we have no idea what functions are being called and how. It also helps to provide information on versions of software involved and what types of data are being access in what types of storage backends.
I don't mean to sound dismissive, but the quality of feedback one gets is higher with the more information provided.
I had the exact same behavior with pyodbc. Have you looked into pypyodbc to see if it can get you what you need? It is pretty similar (although it can't reference rows quite the same as I recall). I think it may be more reliable.
Too bad pyodbc has this problem within a custom script tool. It really is a fantastic package but for this issue!