[zeromq-dev] Crash of ZMQ 2.1.11 on Windows 2008 64bit
Dimiter 'malkia' Stanev
malkia at gmail.com
Tue Jan 24 23:46:23 CET 2012
Hi Soeren,
You should have the CRT source code with VS2008. Please check the
comment over there. It's saying that __setlc_active and
__setlc_active_func are obsolete, and just left for binary compability.
It's possible though that this was real code with older runtimes, or
maybe that the compiler somehow knows about them (open coding
intrinsics) and generates different code.
setlc is related to the locale, could it be related to it?
I compile ZeroMQ with my own batch file, and target MSVCRT.DLL, instead
of MSVCRxx.DLLs. I chose that route, as it seems to be mingw compatible,
and works back to Windows 2000.
This is only doable with Windows DDK 7.1 (also called WDK 7.1), and it
takes a bit of tricks to get zeromq compiled with it (it needs to be
compiled with the static C++ library version, and there are two included
- 6 and 7 - with 6 it does not work, but it does with 7).
But I'm not sure whether this still is going to work for you.
My project is open, and it's here http://github.com/malkia/ufo - please
locate bin/Windows/x86 and bin/Windows/x64 - but all zeromq code there
is from the "master" branch of zeromq (so 3.1).
I can compile 2.1 for you, if you are interrested though, or you can
extract the piece from my batch files (build/Windows, then there is
zmq.cmd, but it might require cygwin for some unixy tools).
There are couple of other pointers how to target MSVCRT.DLL (again if
that works for you) that should be easier than mine.
Thanks,
Dimiter 'malkia' Stanev
On 1/24/2012 1:11 PM, soeren wrote:
> Hi,
>
> I am currently trying to integrate the ZMQ library in multiple
> versions of the same software; a trading frontend which cames in
> different flavour but almost same ingredients from different brokers.
> I compiled it out of the box, small wrapper around it and finally got
> all the nasty DLL stuff on Windows working.
> Currently I have ZMQ running on 5 different frontends, but on another
> 2 it crashes the frontend upon the first call to create a socket (init
> and version retrieval works perfect). Unfortunately the stack
> information is most I've got:
>
> 75BCB964:000058 [75BCB9BC] RaiseException (kernelbase.dll)
> 594436B6:00000F [594436C5] __setlc_active (msvcr90.dll)
> 594433EF:0000D8 [594434C7] _endthreadex (msvcr90.dll)
> 76E53665:000012 [76E53677] AcquireSRWLockExclusive (kernel32.dll)
> 77AD9E9F:000063 [77AD9F02] RtlInsertElementGenericTableAvl (ntdll.dll)
> 77AD9E9F:000036 [77AD9ED5] RtlInsertElementGenericTableAvl (ntdll.dll)
>
>
> My OS information is
>
> OS : Windows 7 Server 6.1 (Build 7600)
> Processors : 24 x Intel Xeon X5650 @ 2.67GHz
> Memory : 4095 free of 4095 Mb
> Virtual : 1916 free of 2047 Mb
> Exception : 40000015 at 75BCB9BC NA to 00000000
>
> Compiler: MSVC 2008 professional **NOT SP1** / 32 Bit; the same for
> the frontend software. The frontend blocks (damn!) to start it in
> debug mode from my compiler, so I cannot test anything with the
> debugger - unfortunately.
>
> All I found was this link: https://github.com/lestrrat/ZeroMQ-Perl/issues/12.
> Crash looks very similar, but different action in his code.
>
>
> Thanks for any hints to look after,
> Soeren Gerlach
More information about the zeromq-dev
mailing list