You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Steve Huston (JIRA)" <qp...@incubator.apache.org> on 2009/03/20 23:44:50 UTC

[jira] Created: (QPID-1765) C++ unit tests won't run on Windows

C++ unit tests won't run on Windows
-----------------------------------

                 Key: QPID-1765
                 URL: https://issues.apache.org/jira/browse/QPID-1765
             Project: Qpid
          Issue Type: Bug
    Affects Versions: 0.5
         Environment: Windows, Visual Studio 2008
            Reporter: Steve Huston


The C++ unit_tests test suite won't run correctly on Windows. The main issue is that the SocketProxy class, used as a relay between client and broker that can be programmed to drop data or close a connection at an inopportune time, uses the Poller class in a way that's incompatible with the Windows IocpPoller.

The Poller class is used to react to events on the sockets being used, but the SocketProxy class then expects to perform the needed send/recv operations directly on the Socket classes. However, the Windows Poller class reacts to I/O completions, not possibilities, so it's not compatible with the approach taken by SocketProxy.

I tried replacing this with AsynchIO use... too messy and leaky.

I have an approach working that uses select() instead of the Poller. It's portable, even if a bit trickier to use correctly than Poller. Patch forthcoming.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Commented: (QPID-1765) C++ unit tests won't run on Windows

Posted by "Steve Huston (JIRA)" <qp...@incubator.apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-1765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12689660#action_12689660 ] 

Steve Huston commented on QPID-1765:
------------------------------------

Committed on trunk, r758852. Pending on 0.5-release.

> C++ unit tests won't run on Windows
> -----------------------------------
>
>                 Key: QPID-1765
>                 URL: https://issues.apache.org/jira/browse/QPID-1765
>             Project: Qpid
>          Issue Type: Bug
>    Affects Versions: 0.5
>         Environment: Windows, Visual Studio 2008
>            Reporter: Steve Huston
>         Attachments: SocketProxy.h.diff
>
>
> The C++ unit_tests test suite won't run correctly on Windows. The main issue is that the SocketProxy class, used as a relay between client and broker that can be programmed to drop data or close a connection at an inopportune time, uses the Poller class in a way that's incompatible with the Windows IocpPoller.
> The Poller class is used to react to events on the sockets being used, but the SocketProxy class then expects to perform the needed send/recv operations directly on the Socket classes. However, the Windows Poller class reacts to I/O completions, not possibilities, so it's not compatible with the approach taken by SocketProxy.
> I tried replacing this with AsynchIO use... too messy and leaky.
> I have an approach working that uses select() instead of the Poller. It's portable, even if a bit trickier to use correctly than Poller. Patch forthcoming.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Resolved: (QPID-1765) C++ unit tests won't run on Windows

Posted by "Steve Huston (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-1765?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steve Huston resolved QPID-1765.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 0.5
         Assignee: Steve Huston

Committed on 0.5-release, r759253.

> C++ unit tests won't run on Windows
> -----------------------------------
>
>                 Key: QPID-1765
>                 URL: https://issues.apache.org/jira/browse/QPID-1765
>             Project: Qpid
>          Issue Type: Bug
>    Affects Versions: 0.5
>         Environment: Windows, Visual Studio 2008
>            Reporter: Steve Huston
>            Assignee: Steve Huston
>             Fix For: 0.5
>
>         Attachments: SocketProxy.h.diff
>
>
> The C++ unit_tests test suite won't run correctly on Windows. The main issue is that the SocketProxy class, used as a relay between client and broker that can be programmed to drop data or close a connection at an inopportune time, uses the Poller class in a way that's incompatible with the Windows IocpPoller.
> The Poller class is used to react to events on the sockets being used, but the SocketProxy class then expects to perform the needed send/recv operations directly on the Socket classes. However, the Windows Poller class reacts to I/O completions, not possibilities, so it's not compatible with the approach taken by SocketProxy.
> I tried replacing this with AsynchIO use... too messy and leaky.
> I have an approach working that uses select() instead of the Poller. It's portable, even if a bit trickier to use correctly than Poller. Patch forthcoming.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] Updated: (QPID-1765) C++ unit tests won't run on Windows

Posted by "Steve Huston (JIRA)" <qp...@incubator.apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-1765?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steve Huston updated QPID-1765:
-------------------------------

    Attachment: SocketProxy.h.diff

Proposed alternate way to handle SocketProxy.

This uses low-level socket stuff, and requires a platform-specific include and typedef. I have my asbestos suit on, so fire away ;-)

> C++ unit tests won't run on Windows
> -----------------------------------
>
>                 Key: QPID-1765
>                 URL: https://issues.apache.org/jira/browse/QPID-1765
>             Project: Qpid
>          Issue Type: Bug
>    Affects Versions: 0.5
>         Environment: Windows, Visual Studio 2008
>            Reporter: Steve Huston
>         Attachments: SocketProxy.h.diff
>
>
> The C++ unit_tests test suite won't run correctly on Windows. The main issue is that the SocketProxy class, used as a relay between client and broker that can be programmed to drop data or close a connection at an inopportune time, uses the Poller class in a way that's incompatible with the Windows IocpPoller.
> The Poller class is used to react to events on the sockets being used, but the SocketProxy class then expects to perform the needed send/recv operations directly on the Socket classes. However, the Windows Poller class reacts to I/O completions, not possibilities, so it's not compatible with the approach taken by SocketProxy.
> I tried replacing this with AsynchIO use... too messy and leaky.
> I have an approach working that uses select() instead of the Poller. It's portable, even if a bit trickier to use correctly than Poller. Patch forthcoming.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org