You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Andrew Stitcher (JIRA)" <ji...@apache.org> on 2019/05/13 15:50:00 UTC

[jira] [Comment Edited] (PROTON-1993) Tests fail on Windows for release builds (without debug symbols)

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

Andrew Stitcher edited comment on PROTON-1993 at 5/13/19 3:49 PM:
------------------------------------------------------------------

It's actually not function level linking per se that is the problem here - rather that the compiler/optimiser merges together the stubs as they are identical. Here's the offending code:

{{{color:#0000ff}static{color} {color:#0000ff}void{color} {color:#795e26}proactor_wake_stub{color}{color:#000000}() {}{color}}}
{{{color:#000000}ULONG_PTR proactor_wake_key {color}{color:#000000}={color}{color:#000000} (ULONG_PTR) {color}{color:#000000}&{color}{color:#000000}proactor_wake_stub;{color}}}

{{{color:#0000ff}static{color} {color:#0000ff}void{color} {color:#795e26}psocket_wakeup_stub{color}{color:#000000}() {}{color}}}
{{{color:#000000}ULONG_PTR psocket_wakeup_key {color}{color:#000000}={color}{color:#000000} (ULONG_PTR) {color}{color:#000000}&{color}{color:#000000}psocket_wakeup_stub;{color}}}

{{{color:#0000ff}static{color} {color:#0000ff}void{color} {color:#795e26}recycle_accept_stub{color}{color:#000000}() {}{color}}}
{{{color:#000000}ULONG_PTR recycle_accept_key {color}{color:#000000}={color}{color:#000000} (ULONG_PTR) {color}{color:#000000}&{color}{color:#000000}recycle_accept_stub;{color}}}

{color:#000000}The keys are not changed after this so I think a simple fix would be to use a different means of getting an alternative set of keys - we do something very similar in PN_HANDLE which ironically is used the very next line of code!{color}


was (Author: astitcher):
It's actually not function level linking per se that is the problem here - rather that the compiler/optimiser merges together the stubs as they are identical. Here's the offending code:

{{{color:#0000ff}static{color} {color:#0000ff}void{color} {color:#795e26}proactor_wake_stub{color}{color:#000000}() {}{color}}}
{{ {color:#000000}ULONG_PTR proactor_wake_key {color}{color:#000000}={color}{color:#000000} (ULONG_PTR) {color}{color:#000000}&{color}{color:#000000}proactor_wake_stub;{color}}}

{{{color:#0000ff}static{color} {color:#0000ff}void{color} {color:#795e26}psocket_wakeup_stub{color}{color:#000000}() {}{color}}}
{{ {color:#000000}ULONG_PTR psocket_wakeup_key {color}{color:#000000}={color}{color:#000000} (ULONG_PTR) {color}{color:#000000}&{color}{color:#000000}psocket_wakeup_stub;{color}}}

{{{color:#0000ff}static{color} {color:#0000ff}void{color} {color:#795e26}recycle_accept_stub{color}{color:#000000}() {}{color}}}
{{ {color:#000000}ULONG_PTR recycle_accept_key {color}{color:#000000}={color}{color:#000000} (ULONG_PTR) {color}{color:#000000}&{color}{color:#000000}recycle_accept_stub;{color}}}

{color:#000000}The keys are not changed after this so I think a simple fix would be to use a different means of getting an alternative set of keys - we do something very similar in PN_HANDLE which ironically is used the very next line of code!{color}

> Tests fail on Windows for release builds (without debug symbols)
> ----------------------------------------------------------------
>
>                 Key: PROTON-1993
>                 URL: https://issues.apache.org/jira/browse/PROTON-1993
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>    Affects Versions: proton-c-0.26.0, proton-c-0.27.0
>         Environment: Windows 7 Pro 64 bit, as well as Windows 10 Pro 64 bit, up to date MSVC 2017 compiler, CMake build system.
>            Reporter: Bogdan Bozi
>            Priority: Major
>         Attachments: LastTest-0.22.0.log, LastTest.zip
>
>
> Environment: project created using CMake, building only the C and C++ binding, for 64 bit architecture using the MS VS2017 compiler.
>  
> Tests are ok for the following build configurations:
>  * Debug
>  * RelWithDebInfo
> Tests fail for the following build configurations:
>  * Release
>  * MinSizeRel
>  
> Issue is present with the current head, as well as the released proton-c-0.26.0. Older versions were not tested but might fail too.
> Linux builds were not tested.
>  
> Test results for builds with debug symbols:
> {noformat}
> 1>------ Build started: Project: RUN_TESTS, Configuration: Debug x64 ------
> 1>Test project C:/Work/projects/qpid-proton/build
> 1> Start 1: c-example-tests
> 1> 1/22 Test #1: c-example-tests .................. Passed 1.68 sec
> 1> Start 2: c-core-test
> 1> 2/22 Test #2: c-core-test ...................... Passed 0.11 sec
> 1> Start 3: c-extra-test
> 1> 3/22 Test #3: c-extra-test ..................... Passed 0.07 sec
> 1> Start 4: c-proactor-test
> 1> 4/22 Test #4: c-proactor-test .................. Passed 8.29 sec
> 1> Start 5: c-fdlimit-tests
> 1> 5/22 Test #5: c-fdlimit-tests .................. Passed 0.10 sec
> 1> Start 6: fuzz-connection-driver
> 1> 6/22 Test #6: fuzz-connection-driver ........... Passed 0.96 sec
> 1> Start 7: fuzz-message-decode
> 1> 7/22 Test #7: fuzz-message-decode .............. Passed 0.28 sec
> 1> Start 8: fuzz-url
> 1> 8/22 Test #8: fuzz-url ......................... Passed 0.10 sec
> 1> Start 9: fuzz-sniff-header
> 1> 9/22 Test #9: fuzz-sniff-header ................ Passed 0.06 sec
> 1> Start 10: cpp-codec_test
> 1>10/22 Test #10: cpp-codec_test ................... Passed 0.07 sec
> 1> Start 11: cpp-connection_driver_test
> 1>11/22 Test #11: cpp-connection_driver_test ....... Passed 0.09 sec
> 1> Start 12: cpp-interop_test
> 1>12/22 Test #12: cpp-interop_test ................. Passed 0.06 sec
> 1> Start 13: cpp-message_test
> 1>13/22 Test #13: cpp-message_test ................. Passed 0.07 sec
> 1> Start 14: cpp-map_test
> 1>14/22 Test #14: cpp-map_test ..................... Passed 0.07 sec
> 1> Start 15: cpp-scalar_test
> 1>15/22 Test #15: cpp-scalar_test .................. Passed 0.07 sec
> 1> Start 16: cpp-value_test
> 1>16/22 Test #16: cpp-value_test ................... Passed 0.08 sec
> 1> Start 17: cpp-container_test
> 1>17/22 Test #17: cpp-container_test ............... Passed 0.60 sec
> 1> Start 18: cpp-reconnect_test
> 1>18/22 Test #18: cpp-reconnect_test ............... Passed 8.58 sec
> 1> Start 19: cpp-link_test
> 1>19/22 Test #19: cpp-link_test .................... Passed 1.10 sec
> 1> Start 20: cpp-url-test
> 1>20/22 Test #20: cpp-url-test ..................... Passed 0.07 sec
> 1> Start 21: cpp-example-container
> 1>21/22 Test #21: cpp-example-container ............ Passed 0.75 sec
> 1> Start 22: cpp-example-container-ssl
> 1>22/22 Test #22: cpp-example-container-ssl ........ Passed 0.46 sec
> 1>
> 1>100% tests passed, 0 tests failed out of 22
> 1>
> 1>Total Test time (real) = 23.76 sec
> ========== Build: 1 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
> {noformat}
> Test results for builds without debug symbols:
> {noformat}
> 1>------ Build started: Project: RUN_TESTS, Configuration: Release x64 ------
> 1>Test project C:/Work/projects/qpid-proton/build
> 1> Start 1: c-example-tests
> 1> 1/22 Test #1: c-example-tests ..................***Failed 0.95 sec
> 1> Start 2: c-core-test
> 1> 2/22 Test #2: c-core-test ...................... Passed 0.07 sec
> 1> Start 3: c-extra-test
> 1> 3/22 Test #3: c-extra-test ..................... Passed 0.06 sec
> 1> Start 4: c-proactor-test
> 1> 4/22 Test #4: c-proactor-test ..................***Failed 0.06 sec
> 1> Start 5: c-fdlimit-tests
> 1> 5/22 Test #5: c-fdlimit-tests .................. Passed 0.10 sec
> 1> Start 6: fuzz-connection-driver
> 1> 6/22 Test #6: fuzz-connection-driver ........... Passed 0.46 sec
> 1> Start 7: fuzz-message-decode
> 1> 7/22 Test #7: fuzz-message-decode .............. Passed 0.25 sec
> 1> Start 8: fuzz-url
> 1> 8/22 Test #8: fuzz-url ......................... Passed 0.09 sec
> 1> Start 9: fuzz-sniff-header
> 1> 9/22 Test #9: fuzz-sniff-header ................ Passed 0.06 sec
> 1> Start 10: cpp-codec_test
> 1>10/22 Test #10: cpp-codec_test ................... Passed 0.06 sec
> 1> Start 11: cpp-connection_driver_test
> 1>11/22 Test #11: cpp-connection_driver_test ....... Passed 0.07 sec
> 1> Start 12: cpp-interop_test
> 1>12/22 Test #12: cpp-interop_test ................. Passed 0.06 sec
> 1> Start 13: cpp-message_test
> 1>13/22 Test #13: cpp-message_test ................. Passed 0.07 sec
> 1> Start 14: cpp-map_test
> 1>14/22 Test #14: cpp-map_test ..................... Passed 0.06 sec
> 1> Start 15: cpp-scalar_test
> 1>15/22 Test #15: cpp-scalar_test .................. Passed 0.06 sec
> 1> Start 16: cpp-value_test
> 1>16/22 Test #16: cpp-value_test ................... Passed 0.07 sec
> 1> Start 17: cpp-container_test
> 1>17/22 Test #17: cpp-container_test ...............***Failed 0.07 sec
> 1> Start 18: cpp-reconnect_test
> 1>18/22 Test #18: cpp-reconnect_test ...............***Failed 0.07 sec
> 1> Start 19: cpp-link_test
> 1>19/22 Test #19: cpp-link_test .................... Passed 1.11 sec
> 1> Start 20: cpp-url-test
> 1>20/22 Test #20: cpp-url-test ..................... Passed 0.08 sec
> 1> Start 21: cpp-example-container
> 1>21/22 Test #21: cpp-example-container ............***Failed 8.64 sec
> 1> Start 22: cpp-example-container-ssl
> 1>22/22 Test #22: cpp-example-container-ssl ........***Failed 0.45 sec
> 1>
> 1>73% tests passed, 6 tests failed out of 22
> 1>
> 1>Total Test time (real) = 13.03 sec
> 1>
> 1>The following tests FAILED:
> 1>	1 - c-example-tests (Failed)
> 1>	4 - c-proactor-test (Failed)
> 1>	17 - cpp-container_test (Failed)
> 1>	18 - cpp-reconnect_test (Failed)
> 1>	21 - cpp-example-container (Failed)
> 1>	22 - cpp-example-container-ssl (Failed)
> 1>Errors while running CTest
> 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: The command "setlocal
> 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: C:\Work\apps\cmake-3.13.3-win64-x64\bin\ctest.exe --force-new-ctest-process -C Release
> 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
> 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :cmEnd
> 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
> 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :cmErrorLevel
> 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: exit /b %1
> 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :cmDone
> 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
> 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :VCEnd" exited with code 8.
> 1>Done building project "RUN_TESTS.vcxproj" -- FAILED.
> ========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
> {noformat}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org