[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