[python-win32] calling a dll after python 2.3 pywin32-208

EdShallow ed.shallow at gmail.com
Thu May 24 03:02:58 CEST 2012


Hi Marc,

    I finally found the bug. It had nothing to do with pywin32 (which is
installed with ActiveState Python 2.7 BTW). It was an insidious change
introduced with the new python-ldap-2.4.9 for 2.7 which expects
CertificateRevocationList;binary as the attribute name for a CRL where
CertificateRevocationList worked under the old python-ldap module. Before
the correction this returned nothing which appeared as an object exception
in the .dll. I thought it was the binding that was broken.

Thanks for the time,
Ed

On Sun, May 20, 2012 at 3:04 AM, Mark Hammond <skippy.hammond at gmail.com>wrote:

> On 20/05/2012 1:22 AM, EdShallow wrote:
>
>> Hi Mark,
>>
>>      After much more testing here is some more to go on:
>>
>> Background again:
>> - I have a VisualBasic-generated ActiveX COM object called
>> capiCrypto.clsCrypto
>> - I call it like this
>>         clsCrypto = win32com.client.Dispatch("**capiCrypto.clsCrypto")
>>         clsCrypto.InStringBuffer = newCert
>>         clsCrypto.CRLFileName = self.Request.FqdnCRL
>>         result = clsCrypto.**CheckCertBufferAgainstCRLFile(**)
>> - it was generated on WinXP SP2
>> - It can successfully be called from Python 2.3 win32-208 without problem
>> - As soon as I upgrade to Python 2.7 I get this stack trace without
>> touching the dll or its registration
>> 2012/05/19 10:18:12  INFO Traceback (most recent call last):
>>   File "cherrypy\_cphttptools.pyo", line 271, in run
>>   File "cherrypy\_cphttptools.pyo", line 502, in main
>>   File "checkcertcrld.pyw", line 113, in crlHandler
>>   File "CrlDispatch.pyo", line 121, in handle
>>   File "CheckCertCrl.pyo", line 38, in execute
>>   File "<COMObject capiCrypto.clsCrypto>", line 3, in
>> CheckCertBufferAgainstCRLFile
>> com_error: (-2147417851, 'The server threw an exception.', None, None)
>>
>> Now here is some strange feedback . . .
>> - Knowing that everything was OK with Python 2.3, I isolated the above
>> code
>> in its own HTTP process and py2exe'ed it thinking py2exe would preserve
>> the
>> whole 2.3 call environment
>> - My thought was I would call the HTTP daemon which was packaged with 2.3
>> and 208 from my 2.7 environment both in their own py2exe-created exe's one
>> in 2.7 the other in 2.3
>> - So check this, the very first call to the dll in the 2.3 exe from the
>> 2.7
>> exe worked !!! Then all successive calls failed ????
>>
>
> So you have a Python 2.3 process that accepts incoming http connections
> and calls the crypto DLL, and it fails after making one call?  So it should
> be possible to reproduce the problem in your 2.3 environment by simulating
> the incoming http connection and get the same behaviour?  And are you sure
> this isn't the same thing you are seeing with 2.7 - one successful call
> then failure?  (You didn't mention what version of pywin32 you were using
> with 2.7, which could be useful info.)
>
> I'm afraid it just sounds like a problem with the other DLL though.
> pywin32 still has a test case against a vb6 dll, so it doesn't seem a
> generic problem.  I'd try asking them for some help diagnosing this...
>
> Cheers,
>
> Mark
>
>  - here is the log:
>>
>> 2012/05/19 08:53:28  INFO CheckCertCRL completed with TransactionStatus
>> ===> 1763 and TransactionStatusString ==> Certificate Revocation Check
>> failed  Current time is NOT within the CRL validity period
>>
>> 2012/05/19 10:18:12 HTTP INFO 127.0.0.1 - POST /crlHandler HTTP/1.1
>> 2012/05/19 10:18:12  INFO Traceback (most recent call last):
>>   File "cherrypy\_cphttptools.pyo", line 271, in run
>>   File "cherrypy\_cphttptools.pyo", line 502, in main
>>   File "checkcertcrld.pyw", line 113, in crlHandler
>>   File "CrlDispatch.pyo", line 121, in handle
>>   File "CheckCertCrl.pyo", line 38, in execute
>>   File "<COMObject capiCrypto.clsCrypto>", line 3, in
>> CheckCertBufferAgainstCRLFile
>> com_error: (-2147417851, 'The server threw an exception.', None, None)
>>
>> - Note the first call which successfully checked the revocation status of
>> a
>> certificate and returned a 1763 indicating a successful call to the COM
>> dll
>> (although the cert check failed)
>> - Every subsequent time I called the dll it fails ???
>> - Something happened in the environment after the first call and I have no
>> clue ???
>>
>> Ed
>>
>>
>> On Mon, May 14, 2012 at 8:50 AM, Mark Hammond <mhammond at skippinet.com.au>
>> **wrote:
>>
>>  [re-adding python-win32 - please keep replies on list]
>>>
>>>
>>> On 14/05/2012 10:39 PM, EdShallow wrote:
>>>
>>>  Hi Mark,
>>>>
>>>>      Python 2.3 with pywin32-208 works. The error I receive reads
>>>> "Object through and exception at line 3".
>>>>
>>>>
>>> How do you get that error?  You say "my dll throws an exception
>>> immediately upon entry" - I can't reconcile that "with the error I
>>> receive".  What does Python do when calling your failing DLL?  (ie, do
>>> you
>>> get a traceback?  If so, please include it completely.  If not, what
>>> result
>>> does Python get?  I'm still very unclear on the context of your problem.
>>>
>>>
>>>       Un-registering and re-registering the dll does not help.
>>>
>>>>
>>>>
>>> But that's just unregistering and re-registering your DLL right?
>>>
>>>
>>>       The test was conducted on the same machine after uninstalling
>>>
>>>> Python and re-installing numerous combinations of Python 2.4, 2.5, 2.6,
>>>> 2.7 with associated pywin32-208 thry pywin32-214.
>>>>
>>>>     If I uninstall the newer Python and re-install Python 2.3 and
>>>> pywin32-208 all is OK again. It is definitely environmental as opposed
>>>> to the code.
>>>>
>>>>
>>> Well - it's *someone's* code :)  To be clear, 2.3 + pywin32 209 fails?
>>>
>>> Mark
>>>
>>>
>>>> Thanks,
>>>> Ed
>>>>
>>>> On Sun, May 13, 2012 at 9:07 PM, Mark Hammond <skippy.hammond at gmail.com
>>>> <mailto:skippy.hammond at gmail.****com <skippy.hammond at gmail.com>>>
>>>> wrote:
>>>>
>>>>    You haven't given us enough information to help.  What error do you
>>>>    see?  What is the most recent combination of Python and pywin32 that
>>>>    works?
>>>>
>>>>    Mark
>>>>
>>>>
>>>>    On 12/05/2012 10:31 PM, EdShallow wrote:
>>>>
>>>>        Hi Folks,
>>>>
>>>>              I have an ActiveX COM dll generated by VisualBasic 6 in
>>>>        WinXP. I
>>>>        can call it and use it successfully with Python 2.3 and
>>>> pywin32-208
>>>>        without problems.
>>>>
>>>>              As soon as I upgrade either pywin32- or Python to anything
>>>>        itself
>>>>        to anything newer, my dll throws an exception immediately upon
>>>>        entry.
>>>>
>>>>              Can anyone point me in a general direction with respect to
>>>>        addressing this incompatibility?
>>>>
>>>>        Thanks,
>>>>        Ed
>>>>
>>>>        --
>>>>        Ed's Contact Information:
>>>>        Mobile Phone: 613-852-6410 <tel:613-852-6410>
>>>>        Gmail: ed.shallow at gmail.com <mailto:ed.shallow at gmail.com>
>>>>        <mailto:ed.shallow at gmail.com <mailto:ed.shallow at gmail.com>>
>>>>        VOIP Address: 107529 at sip.ca1.voip.ms
>>>>        <mailto:107529 at sip.ca1.voip.ms****> <mailto:
>>>> 107529 at sip.ca1.voip.ms
>>>>        <mailto:107529 at sip.ca1.voip.ms****>__>
>>>>
>>>>
>>>>        VOIP DID#: 613-458-5004 <tel:613-458-5004>
>>>>        Skype ID: edward.shallow
>>>>        Home Phone: 613-482-2090 <tel:613-482-2090>
>>>>
>>>>
>>>>
>>>>        ______________________________****___________________
>>>>        python-win32 mailing list
>>>>        python-win32 at python.org <mailto:python-win32 at python.****org<
>>>> python-win32 at python.org>
>>>>
>>>>>
>>>>>         http://mail.python.org/__****mailman/listinfo/python-win32<http://mail.python.org/__**mailman/listinfo/python-win32>
>>>> <**http://mail.python.org/__**mailman/listinfo/python-win32<http://mail.python.org/__mailman/listinfo/python-win32>
>>>> >
>>>>
>>>>        <http://mail.python.org/****mailman/listinfo/python-win32<http://mail.python.org/**mailman/listinfo/python-win32>
>>>> <**http://mail.python.org/**mailman/listinfo/python-win32<http://mail.python.org/mailman/listinfo/python-win32>
>>>> >
>>>>
>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Ed's Contact Information:
>>>> Mobile Phone: 613-852-6410
>>>> Gmail: ed.shallow at gmail.com <mailto:ed.shallow at gmail.com>
>>>> VOIP Address: 107529 at sip.ca1.voip.ms <mailto:107529 at sip.ca1.voip.ms**
>>>> **>
>>>>
>>>> VOIP DID#: 613-458-5004
>>>> Skype ID: edward.shallow
>>>> Home Phone: 613-482-2090
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>> ______________________________**_________________
>> python-win32 mailing list
>> python-win32 at python.org
>> http://mail.python.org/**mailman/listinfo/python-win32<http://mail.python.org/mailman/listinfo/python-win32>
>>
>>
>
>


-- 
Ed's Contact Information:
Mobile Phone: 613-852-6410
Gmail: ed.shallow at gmail.com
VOIP Address: 107529 at sip.ca1.voip.ms
VOIP DID#: 613-458-5004
Skype ID: edward.shallow
Home Phone: 613-482-2090
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-win32/attachments/20120523/9f99a520/attachment.html>


More information about the python-win32 mailing list