MSW crash with <refcnt 0 at ...>

Mark Hammond mhammond at skippinet.com.au
Sat Jun 14 21:32:47 EDT 2003


Unfortunately, win32all-150 has that bug already applied. 
Unfortunately, I am a little stuck on what to do, as I don't have a 
database to test against.  Anyone listenening who has a debug build of 
win32all and an ODBC database to connect to should be able to provide me 
with alot more info (or even just a database I can connect to remotely).

Could you please open a bug in the pywin32 project at sourceforge?

Mark.

Frank Millman wrote:

> Mark Hammond <mhammond at skippinet.com.au> wrote in message news:<5JhGa.3746$GU5.51113 at news-server.bigpond.net.au>...
> 
>>Frank Millman wrote:
>>
>>>Can anyone explain what is going on? Thanks in advance.
>>
>>It smells like a reference count bug in the ODBC module.  What win32all 
>>version are you using?  I have no database to test against, but if you 
>>can reduce it down to the absolute minimum code needed to crash, I may 
>>still be able to find it.
>>
>>If you have an old win32all or ActivePython, please check the date - a 
>>quick check of the log for the ODBC module shows the following checkin:
>>
>>revision 1.5
>>date: 2001/06/18 06:57:21;  author: mhammond;  state: Exp;  lines: +7 -7
>>Patches from Alex Martelli that solves some crashes under error conditions.
>>
>>A later ODBC module may fix your problem.
>>
>>Mark.
> 
> 
> Thanks for the prompt reply, Mark.
> 
> I am not sure how to check the version of win32all, but the
> installation program is win32all-150.exe, so it looks as if it is
> version 1.5. I downloaded it late last year.
> 
> Here is a smaller version of my program that still crashes.
> 
> ######################################################
> 
> import odbc
> db = odbc.odbc('frank/Adminstrator')
> # c = db.cursor()    # [1]
> 
> def update():
>     c = db.cursor()  # [2]
>     try:
>         c.execute("insect into fmtest values ('F001','FGH
> Ltd','Frank','1234567')")
>         return ['success']
>     except:
>         return ['fail']
> 
> print update()
> 
> ######################################################
> 
> Note the deliberate spelling error "insect" intead of "insert". This
> is an easier way of ensuring that the insert fails.
> 
> Another clue - note the lines flagged [1] and [2]. The former declares
> the cursor outside the function, the latter declares it inside. If I
> run the program with line [1] active and line [2] commented out, the
> error does not occur.
> 
> Let me know if I can supply any further information.
> 
> Many thanks
> 
> Frank





More information about the Python-list mailing list