You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "Chuck Rolke (JIRA)" <ji...@apache.org> on 2014/01/23 21:15:40 UTC

[jira] [Commented] (PROTON-488) Windows 7 64-bit VS2010 qpid-proton Crash on Startup with Send / Recv Application

    [ https://issues.apache.org/jira/browse/PROTON-488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13880309#comment-13880309 ] 

Chuck Rolke commented on PROTON-488:
------------------------------------

I never let cmake decide which compiler to use. Even with the x64 Win64 Command Prompt cmake is building a 32-bit solution. Try forcing a 64-bit solution with

> cmake -G "Visual Studio 10 Win64" .

Getting the correct solution generated by cmake makes changing properties (steps 3-6) unnecessary.


> Windows 7 64-bit VS2010 qpid-proton Crash on Startup with Send / Recv Application
> ---------------------------------------------------------------------------------
>
>                 Key: PROTON-488
>                 URL: https://issues.apache.org/jira/browse/PROTON-488
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: 0.6
>         Environment: Windows 7 64-bit VS 2010
>            Reporter: Frank Quinn
>            Assignee: Cliff Jansen
>            Priority: Critical
>         Attachments: qpid-proton-win64-send-crash.png
>
>
> Steps to recreate:
> 1. Grab latest 0.6 tarball
> 2. Start up Visual Studio x64 Win64 Command Prompt (2010) and run "cmake ." to generate the visual studio files
> 3. Open Up the newly created Proton.sln in VS2010, right click on qpid-proton and add the path to python to executable directories
> 4. In the configuration manager, select qpid-proton and select active configuration to be Debug, then select "Add" to add x64 support, copying win32 configuration in the process.
> 5. Select qpid-proton properties and remove the hard coded /machine:X86 extra command lines in Linker -> Command Line (MACHINE:X64 should already be in the command line above so no need to add here)
> 6. Right click on qpid-proton and select build
> Repeat steps 3-6 for send / recv applications. When you run recv, then run send, you'll get a crash with the (soon to be attached) trace.
> Cheers,
> Frank



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Re: [jira] [Commented] (PROTON-488) Windows 7 64-bit VS2010 qpid-proton Crash on Startup with Send / Recv Application

Posted by Cliff Jansen <cl...@gmail.com>.
I can reproduce the problem even when using cmake as recommended.

The problem is proton's fast and loose use of binary data in the
codec.  The assumption that a struct will be placed on the stack a
certain way falls apart in 64bit Visual Studio, so that it is no
longer OK to use either a single argument (pn_data_t struct) or two
separate ones (a size_t and char*), depending on what's convenient at
the time.  The va_arg macro works very differently in 32bit versus
64bit in this case.

I will have a work-around patch soon and will separately work an
official fix through review board and PROTON-488

Cliff

On Thu, Jan 23, 2014 at 12:15 PM, Chuck Rolke (JIRA) <ji...@apache.org> wrote:
>
>     [ https://issues.apache.org/jira/browse/PROTON-488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13880309#comment-13880309 ]
>
> Chuck Rolke commented on PROTON-488:
> ------------------------------------
>
> I never let cmake decide which compiler to use. Even with the x64 Win64 Command Prompt cmake is building a 32-bit solution. Try forcing a 64-bit solution with
>
>> cmake -G "Visual Studio 10 Win64" .
>
> Getting the correct solution generated by cmake makes changing properties (steps 3-6) unnecessary.
>
>
>> Windows 7 64-bit VS2010 qpid-proton Crash on Startup with Send / Recv Application
>> ---------------------------------------------------------------------------------
>>
>>                 Key: PROTON-488
>>                 URL: https://issues.apache.org/jira/browse/PROTON-488
>>             Project: Qpid Proton
>>          Issue Type: Bug
>>          Components: proton-c
>>    Affects Versions: 0.6
>>         Environment: Windows 7 64-bit VS 2010
>>            Reporter: Frank Quinn
>>            Assignee: Cliff Jansen
>>            Priority: Critical
>>         Attachments: qpid-proton-win64-send-crash.png
>>
>>
>> Steps to recreate:
>> 1. Grab latest 0.6 tarball
>> 2. Start up Visual Studio x64 Win64 Command Prompt (2010) and run "cmake ." to generate the visual studio files
>> 3. Open Up the newly created Proton.sln in VS2010, right click on qpid-proton and add the path to python to executable directories
>> 4. In the configuration manager, select qpid-proton and select active configuration to be Debug, then select "Add" to add x64 support, copying win32 configuration in the process.
>> 5. Select qpid-proton properties and remove the hard coded /machine:X86 extra command lines in Linker -> Command Line (MACHINE:X64 should already be in the command line above so no need to add here)
>> 6. Right click on qpid-proton and select build
>> Repeat steps 3-6 for send / recv applications. When you run recv, then run send, you'll get a crash with the (soon to be attached) trace.
>> Cheers,
>> Frank
>
>
>
> --
> This message was sent by Atlassian JIRA
> (v6.1.5#6160)