[jira] [Created] (PROTON-2474) proton with cyrus-sasl queries DNS for short hostname

2021-12-08 Thread Ken Dreyer (Jira)
Ken Dreyer created PROTON-2474:
--

 Summary: proton with cyrus-sasl queries DNS for short hostname
 Key: PROTON-2474
 URL: https://issues.apache.org/jira/browse/PROTON-2474
 Project: Qpid Proton
  Issue Type: New Feature
  Components: python-binding
Affects Versions: proton-c-0.35.0
Reporter: Ken Dreyer


My python-qpid-proton 0.35.0 client hangs for about four seconds on every new 
connection operation to my broker. The problem is that the client tries to look 
up its own hostname's A and  DNS records before completing the SASL 
exchange (and my DNS server takes a while for missing records.)

*Steps to reproduce:*
 # Set up a CentOS 8 or 9 host.
 # Install cyrus-sasl-devel
 # Install python-qpid-proton. Ensure it's dynamically linked to cyrus-sasl 
({{{}/lib64/libsasl2.so.3{}}}).
 # Ensure the unqualified (short) hostname from the "{{{}hostname{}}}" command 
is not present in {{{}/etc/hosts{}}}.
 # Connect to a broker with ANONYMOUS SASL and no SSL.

*Actual results:*
Immediately after Proton receives the {{sasl.mechanisms}} message, but before 
Proton sends the {{sasl.init}} / {{sasl.outcome}} AMQP messages, it makes two 
DNS queries (A and ) for my host's unqualified hostname.

The  request takes a while to answer (3.5 seconds). This makes makes the 
{{pn_transport_push()}} call hang here:
{noformat}
-> exec(cmd, globals, locals)
  (1)()
  /home/vagrant/dns.py(51)()
-> Container(HelloWorld()).run()
  /usr/lib64/python3.6/site-packages/proton/_reactor.py(180)run()
-> while self.process():
  /usr/lib64/python3.6/site-packages/proton/_reactor.py(245)process()
-> event.dispatch(self._global_handler)
  /usr/lib64/python3.6/site-packages/proton/_events.py(162)dispatch()
-> _dispatch(handler, type.method, self)
  /usr/lib64/python3.6/site-packages/proton/_events.py(125)_dispatch()
-> handler.on_unhandled(method, *args)
  /usr/lib64/python3.6/site-packages/proton/_reactor.py(876)on_unhandled()
-> event.dispatch(self.base)
  /usr/lib64/python3.6/site-packages/proton/_events.py(162)dispatch()
-> _dispatch(handler, type.method, self)
  /usr/lib64/python3.6/site-packages/proton/_events.py(123)_dispatch()
-> m(*args)
  
/usr/lib64/python3.6/site-packages/proton/_handlers.py(1241)on_selectable_readable()
-> n = t.push(b)
  /usr/lib64/python3.6/site-packages/proton/_transport.py(304)push()
-> n = self._check(pn_transport_push(self._impl, binary))
{noformat}
*Expected Results:*

proton with cyrus-sasl should behave the same way it does without cyrus-sasl: 
it should authenticate quickly, without looking up the IP address of its own 
short hostname.

*Extra information:*

This only happens when I build against cyrus-sasl-devel. When I do not have 
cyrus-sasl-devel available, then the package from PyPI does not link against 
cyrus-sasl, and there is no DNS request. (The qpid-proton package in EPEL is 
built against cyrus-sasl, and that  is where I discovered this bug.)

If the client can resolve its unqualified (short) hostname to an IP, then there 
is no delay. For example, if my Proton client's hostname is 
myclient.example.com, I can fix the delay by adding the following entry to 
/etc/hosts:
{noformat}
127.0.0.1   myclient localhost
{noformat}
or by ensuring my DNS server will immediately return A or  records for the 
unqualified "myclient" name.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[jira] [Commented] (DISPATCH-2275) Dispatch test failures with the latest from proton main branch

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455930#comment-17455930
 ] 

ASF GitHub Bot commented on DISPATCH-2275:
--

asfgit merged pull request #1431:
URL: https://github.com/apache/qpid-dispatch/pull/1431


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Dispatch test failures with the latest from proton main branch
> --
>
> Key: DISPATCH-2275
> URL: https://issues.apache.org/jira/browse/DISPATCH-2275
> Project: Qpid Dispatch
>  Issue Type: Test
>  Components: Tests
>Affects Versions: 1.17.1
>Reporter: Ganesh Murthy
>Assignee: Ken Giusti
>Priority: Major
> Fix For: 1.19.0
>
>
> There are 3 test errors
> {noformat}
> 47: Error text:  Process 2801860 error: exit code 1, expected 0
> 47: /usr/bin/python3.9 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/scraper/scraper.py -f 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/A.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/B.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/C.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/D.log
> 47: 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/test_04_scraper_tool/python3.9-1.cmd
> 47: 
> 47: 
> 47: FAIL
> 75: 2021-11-05 10:49:25.394391 TCP_TEST test_01_tcp_EB1_EA1 Client 
> test_01_tcp_EB1_EA1_0_1_1 exited normally
> 75: 2021-11-05 10:49:25.394507 TCP_TEST test_01_tcp_EB1_EA1 SUCCESS
> 75: 2021-11-05 10:49:25.394626 TCP_TEST test_01_tcp_basic_connectivity Stop 
> test_01_tcp_EB1_EA1 SUCCESS
> 75: 2021-11-05 10:49:25.394673 TCP_TEST test_01_tcp_basic_connectivity Start 
> test_01_tcp_EB1_EA2
> 75: 2021-11-05 10:49:25.394726 TCP_TEST test_01_tcp_EB1_EA2 Start 
> do_tcp_echo_n_routers
> 75: 2021-11-05 10:49:25.394774 TCP_TEST test_01_tcp_EB1_EA2 Running pair 0 
> EB1->EA2 size=1 count=1
> 47: 
> 47: ==
> 47: FAIL: test_04_scraper_tool 
> (system_tests_topology_disposition.TopologyDispositionTests)
> 47: --
> 47: Traceback (most recent call last):
> 47:   File 
> "/home/gmurthy/opensource/qpid-dispatch/tests/system_tests_topology_disposition.py",
>  line 432, in test_04_scraper_tool
> 47: self.assertEqual(str(None), error)
> 47: AssertionError: 'None' != 'Process 2801860 error: exit code 1, expec[842 
> chars]'
> 47: - None
> 47: + Process 2801860 error: exit code 1, expected 0
> 47: /usr/bin/python3.9 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/scraper/scraper.py -f 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/A.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/B.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/C.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/D.log
> 47: 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/test_04_scraper_tool/python3.9-1.cmd
> 47: 
> 47:  {noformat}
>  
> {noformat}
> 29: test_max_sessions_zero 
> (system_tests_protocol_settings.MaxSessionsZeroTest) ... FAIL
> 29: 
> 29: ==
> 29: FAIL: test_connector_default 
> (system_tests_protocol_settings.ConnectorSettingsDefaultTest)
> 29: --
> 29: Traceback (most recent call last):
> 29:   File 
> "/home/gmurthy/opensource/qpid-dispatch/tests/system_tests_protocol_settings.py",
>  line 322, in test_connector_default
> 29: self.assertIn(' max-frame-size=16384,', open_lines[0])
> 29: AssertionError: ' max-frame-size=16384,' not found in '2021-11-05 
> 

[jira] [Commented] (DISPATCH-2275) Dispatch test failures with the latest from proton main branch

2021-12-08 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455929#comment-17455929
 ] 

ASF subversion and git services commented on DISPATCH-2275:
---

Commit c6d3d96ee0beb853385bb6858bb2d776e1e5f4a8 in qpid-dispatch's branch 
refs/heads/main from Ken Giusti
[ https://gitbox.apache.org/repos/asf?p=qpid-dispatch.git;h=c6d3d96 ]

DISPATCH-2275: restore testing of proton main branch in CI


> Dispatch test failures with the latest from proton main branch
> --
>
> Key: DISPATCH-2275
> URL: https://issues.apache.org/jira/browse/DISPATCH-2275
> Project: Qpid Dispatch
>  Issue Type: Test
>  Components: Tests
>Affects Versions: 1.17.1
>Reporter: Ganesh Murthy
>Assignee: Ken Giusti
>Priority: Major
> Fix For: 1.19.0
>
>
> There are 3 test errors
> {noformat}
> 47: Error text:  Process 2801860 error: exit code 1, expected 0
> 47: /usr/bin/python3.9 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/scraper/scraper.py -f 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/A.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/B.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/C.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/D.log
> 47: 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/test_04_scraper_tool/python3.9-1.cmd
> 47: 
> 47: 
> 47: FAIL
> 75: 2021-11-05 10:49:25.394391 TCP_TEST test_01_tcp_EB1_EA1 Client 
> test_01_tcp_EB1_EA1_0_1_1 exited normally
> 75: 2021-11-05 10:49:25.394507 TCP_TEST test_01_tcp_EB1_EA1 SUCCESS
> 75: 2021-11-05 10:49:25.394626 TCP_TEST test_01_tcp_basic_connectivity Stop 
> test_01_tcp_EB1_EA1 SUCCESS
> 75: 2021-11-05 10:49:25.394673 TCP_TEST test_01_tcp_basic_connectivity Start 
> test_01_tcp_EB1_EA2
> 75: 2021-11-05 10:49:25.394726 TCP_TEST test_01_tcp_EB1_EA2 Start 
> do_tcp_echo_n_routers
> 75: 2021-11-05 10:49:25.394774 TCP_TEST test_01_tcp_EB1_EA2 Running pair 0 
> EB1->EA2 size=1 count=1
> 47: 
> 47: ==
> 47: FAIL: test_04_scraper_tool 
> (system_tests_topology_disposition.TopologyDispositionTests)
> 47: --
> 47: Traceback (most recent call last):
> 47:   File 
> "/home/gmurthy/opensource/qpid-dispatch/tests/system_tests_topology_disposition.py",
>  line 432, in test_04_scraper_tool
> 47: self.assertEqual(str(None), error)
> 47: AssertionError: 'None' != 'Process 2801860 error: exit code 1, expec[842 
> chars]'
> 47: - None
> 47: + Process 2801860 error: exit code 1, expected 0
> 47: /usr/bin/python3.9 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/scraper/scraper.py -f 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/A.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/B.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/C.log
>  
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/setUpClass/D.log
> 47: 
> /home/gmurthy/opensource/qpid-dispatch/build/tests/system_test.dir/system_tests_topology_disposition/TopologyDispositionTests/test_04_scraper_tool/python3.9-1.cmd
> 47: 
> 47:  {noformat}
>  
> {noformat}
> 29: test_max_sessions_zero 
> (system_tests_protocol_settings.MaxSessionsZeroTest) ... FAIL
> 29: 
> 29: ==
> 29: FAIL: test_connector_default 
> (system_tests_protocol_settings.ConnectorSettingsDefaultTest)
> 29: --
> 29: Traceback (most recent call last):
> 29:   File 
> "/home/gmurthy/opensource/qpid-dispatch/tests/system_tests_protocol_settings.py",
>  line 322, in test_connector_default
> 29: self.assertIn(' max-frame-size=16384,', open_lines[0])
> 29: AssertionError: ' max-frame-size=16384,' not found in '2021-11-05 
> 10:50:24.161355 -0400 PROTOCOL (trace) [C3]:FRAME: 0 <- @open(16) 
> [container-id="QDR.B", hostname="127.0.0.1", max-frame-size=0x4000, 
> 

[GitHub] [qpid-dispatch] asfgit merged pull request #1431: DISPATCH-2275: restore testing of proton main branch in CI

2021-12-08 Thread GitBox


asfgit merged pull request #1431:
URL: https://github.com/apache/qpid-dispatch/pull/1431


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[jira] [Commented] (DISPATCH-2272) Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455344#comment-17455344
 ] 

ASF GitHub Bot commented on DISPATCH-2272:
--

ganeshmurthy commented on a change in pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#discussion_r764995976



##
File path: include/qpid/dispatch/internal/export.h
##
@@ -0,0 +1,27 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+/// @cond INTERNAL
+
+/// import/export macros
+#if defined(_WIN32)

Review comment:
   > In the entire codebase, I think it is pointless, since there are (as 
far as I know only two instances: in the doctest.h framework, which we should 
not edit, and in CMakeLists.txt which is code "borrowed" from LLVM build 
scripts, which is also rather unprofitable to modify, in my view).
   
   Make sense. Let's remove it from the PR. Thanks.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Mark all functions called from Python with QD_EXPORT
> 
>
> Key: DISPATCH-2272
> URL: https://issues.apache.org/jira/browse/DISPATCH-2272
> Project: Qpid Dispatch
>  Issue Type: Sub-task
>Affects Versions: 1.17.0
>Reporter: Jiri Daněk
>Priority: Major
>
> Dispatch requires that all C functions it calls be exported, because it looks 
> them up as if in a dynamic library. This is important on Windows, where 
> functions are unexported by default.
> On Windows, use {{__declspec(dllexport)}} to turn on exporting. Without it, 
> the functions will not be found from Python.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[GitHub] [qpid-dispatch] ganeshmurthy commented on a change in pull request #1413: DISPATCH-2272 Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread GitBox


ganeshmurthy commented on a change in pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#discussion_r764995976



##
File path: include/qpid/dispatch/internal/export.h
##
@@ -0,0 +1,27 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+/// @cond INTERNAL
+
+/// import/export macros
+#if defined(_WIN32)

Review comment:
   > In the entire codebase, I think it is pointless, since there are (as 
far as I know only two instances: in the doctest.h framework, which we should 
not edit, and in CMakeLists.txt which is code "borrowed" from LLVM build 
scripts, which is also rather unprofitable to modify, in my view).
   
   Make sense. Let's remove it from the PR. Thanks.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[jira] [Commented] (DISPATCH-2272) Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455333#comment-17455333
 ] 

ASF GitHub Bot commented on DISPATCH-2272:
--

jiridanek commented on pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#issuecomment-988928497


   > @kgiusti that we'd need devs to be consistent with the use of the new 
QD_EXPORT qualifier when adding/modifying new declarations in the codebase.
   
   Yes, that is true. There is a chunk of code in dispatch which IMO tries to 
resolve all C functions during startup to discover any possible issues. There 
are functions missing here, mostly things added for protocol adaptors.
   
   
https://github.com/apache/qpid-dispatch/blob/main/python/qpid_dispatch_internal/dispatch.py#L51-L79


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Mark all functions called from Python with QD_EXPORT
> 
>
> Key: DISPATCH-2272
> URL: https://issues.apache.org/jira/browse/DISPATCH-2272
> Project: Qpid Dispatch
>  Issue Type: Sub-task
>Affects Versions: 1.17.0
>Reporter: Jiri Daněk
>Priority: Major
>
> Dispatch requires that all C functions it calls be exported, because it looks 
> them up as if in a dynamic library. This is important on Windows, where 
> functions are unexported by default.
> On Windows, use {{__declspec(dllexport)}} to turn on exporting. Without it, 
> the functions will not be found from Python.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[GitHub] [qpid-dispatch] jiridanek commented on pull request #1413: DISPATCH-2272 Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread GitBox


jiridanek commented on pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#issuecomment-988928497


   > @kgiusti that we'd need devs to be consistent with the use of the new 
QD_EXPORT qualifier when adding/modifying new declarations in the codebase.
   
   Yes, that is true. There is a chunk of code in dispatch which IMO tries to 
resolve all C functions during startup to discover any possible issues. There 
are functions missing here, mostly things added for protocol adaptors.
   
   
https://github.com/apache/qpid-dispatch/blob/main/python/qpid_dispatch_internal/dispatch.py#L51-L79


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[jira] [Commented] (DISPATCH-2272) Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455330#comment-17455330
 ] 

ASF GitHub Bot commented on DISPATCH-2272:
--

jiridanek commented on a change in pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#discussion_r764981743



##
File path: include/qpid/dispatch/internal/export.h
##
@@ -0,0 +1,27 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+/// @cond INTERNAL
+
+/// import/export macros
+#if defined(_WIN32)
+#  define QD_EXPORT __declspec(dllexport)
+#else
+#  define QD_EXPORT __attribute__((visibility("default"))) 
__attribute__((used))

Review comment:
   In GCC docs it says nothing about the functions having to be static, 
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes
   
   > This attribute, attached to a function, means that code must be emitted 
for the function even if it appears that the function is not referenced. This 
is useful, for example, when the function is referenced only in inline assembly.
   
   I do remember I had the dead code elimination issue when I tried to switch 
from libqpiddispatch.so to a different way of compiling the code. Because I 
couldn't easily have the .a library due to dead code elimination by the linker, 
I had to do the CMake object library, which is cumbersome in old versions of 
CMake.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Mark all functions called from Python with QD_EXPORT
> 
>
> Key: DISPATCH-2272
> URL: https://issues.apache.org/jira/browse/DISPATCH-2272
> Project: Qpid Dispatch
>  Issue Type: Sub-task
>Affects Versions: 1.17.0
>Reporter: Jiri Daněk
>Priority: Major
>
> Dispatch requires that all C functions it calls be exported, because it looks 
> them up as if in a dynamic library. This is important on Windows, where 
> functions are unexported by default.
> On Windows, use {{__declspec(dllexport)}} to turn on exporting. Without it, 
> the functions will not be found from Python.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[GitHub] [qpid-dispatch] jiridanek commented on a change in pull request #1413: DISPATCH-2272 Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread GitBox


jiridanek commented on a change in pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#discussion_r764981743



##
File path: include/qpid/dispatch/internal/export.h
##
@@ -0,0 +1,27 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+/// @cond INTERNAL
+
+/// import/export macros
+#if defined(_WIN32)
+#  define QD_EXPORT __declspec(dllexport)
+#else
+#  define QD_EXPORT __attribute__((visibility("default"))) 
__attribute__((used))

Review comment:
   In GCC docs it says nothing about the functions having to be static, 
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes
   
   > This attribute, attached to a function, means that code must be emitted 
for the function even if it appears that the function is not referenced. This 
is useful, for example, when the function is referenced only in inline assembly.
   
   I do remember I had the dead code elimination issue when I tried to switch 
from libqpiddispatch.so to a different way of compiling the code. Because I 
couldn't easily have the .a library due to dead code elimination by the linker, 
I had to do the CMake object library, which is cumbersome in old versions of 
CMake.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[jira] [Commented] (DISPATCH-2272) Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455325#comment-17455325
 ] 

ASF GitHub Bot commented on DISPATCH-2272:
--

jiridanek commented on a change in pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#discussion_r764977711



##
File path: include/qpid/dispatch/internal/export.h
##
@@ -0,0 +1,27 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+/// @cond INTERNAL
+
+/// import/export macros
+#if defined(_WIN32)

Review comment:
   In this PR, I agree.
   
   In the entire codebase, I think it is pointless, since there are (as far as 
I know only two instances: in the doctest.h framework, which we should not 
edit, and in CMakeLists.txt which is code "borrowed" from LLVM build scripts, 
which is also rather unprofitable to modify, in my view).




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Mark all functions called from Python with QD_EXPORT
> 
>
> Key: DISPATCH-2272
> URL: https://issues.apache.org/jira/browse/DISPATCH-2272
> Project: Qpid Dispatch
>  Issue Type: Sub-task
>Affects Versions: 1.17.0
>Reporter: Jiri Daněk
>Priority: Major
>
> Dispatch requires that all C functions it calls be exported, because it looks 
> them up as if in a dynamic library. This is important on Windows, where 
> functions are unexported by default.
> On Windows, use {{__declspec(dllexport)}} to turn on exporting. Without it, 
> the functions will not be found from Python.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[GitHub] [qpid-dispatch] jiridanek commented on a change in pull request #1413: DISPATCH-2272 Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread GitBox


jiridanek commented on a change in pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#discussion_r764977711



##
File path: include/qpid/dispatch/internal/export.h
##
@@ -0,0 +1,27 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+/// @cond INTERNAL
+
+/// import/export macros
+#if defined(_WIN32)

Review comment:
   In this PR, I agree.
   
   In the entire codebase, I think it is pointless, since there are (as far as 
I know only two instances: in the doctest.h framework, which we should not 
edit, and in CMakeLists.txt which is code "borrowed" from LLVM build scripts, 
which is also rather unprofitable to modify, in my view).




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[jira] [Commented] (DISPATCH-2109) Shutdown crash: member access within null pointer of type 'struct qdr_node_t'

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455318#comment-17455318
 ] 

ASF GitHub Bot commented on DISPATCH-2109:
--

jiridanek commented on pull request #1307:
URL: https://github.com/apache/qpid-dispatch/pull/1307#issuecomment-988918785


   @kgiusti This issue was fixed by a different PR from @ganeshmurthy. This PR 
should be closed. The fix from Ganesh is already included in main and in 1.18.x 
(assuming it it https://github.com/apache/qpid-dispatch/pull/1389, as far as I 
can determine)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Shutdown crash: member access within null pointer of type 'struct qdr_node_t'
> -
>
> Key: DISPATCH-2109
> URL: https://issues.apache.org/jira/browse/DISPATCH-2109
> Project: Qpid Dispatch
>  Issue Type: Bug
>Affects Versions: 1.17.0
>Reporter: Jiri Daněk
>Assignee: Jiri Daněk
>Priority: Major
> Fix For: 1.18.0
>
>
> https://travis-ci.com/github/apache/qpid-dispatch/jobs/503812980#L4578
> {code}
> 28: 
> /home/travis/build/apache/qpid-dispatch/src/router_core/route_tables.c:530:17:
>  runtime error: member access within null pointer of type 'struct qdr_node_t'
> 28: #0 0x3ff9628d5bd in qdr_set_cost_CT 
> /home/travis/build/apache/qpid-dispatch/src/router_core/route_tables.c:530
> 28: #1 0x3ff9627e7cb in qdr_core_free 
> /home/travis/build/apache/qpid-dispatch/src/router_core/router_core.c:251
> 28: #2 0x3ff962e13f9 in qd_router_free 
> /home/travis/build/apache/qpid-dispatch/src/router_node.c:2160
> 28: #3 0x3ff9617979d in qd_dispatch_free 
> /home/travis/build/apache/qpid-dispatch/src/dispatch.c:375
> 28: #4 0x3ff9617979d in qd_dispatch_free 
> /home/travis/build/apache/qpid-dispatch/src/dispatch.c:363
> 28: #5 0x2aa23604fa9 in main_process 
> /home/travis/build/apache/qpid-dispatch/router/src/main.c:119
> 28: #6 0x2aa23604a23 in main 
> /home/travis/build/apache/qpid-dispatch/router/src/main.c:369
> 28: #7 0x3ff94faa5f9 in __libc_start_main 
> (/lib/s390x-linux-gnu/libc.so.6+0x2a5f9)
> 28: #8 0x2aa23604d23  
> (/home/travis/build/apache/qpid-dispatch/build/router/qdrouterd+0x4d23)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[jira] [Commented] (DISPATCH-2109) Shutdown crash: member access within null pointer of type 'struct qdr_node_t'

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455319#comment-17455319
 ] 

ASF GitHub Bot commented on DISPATCH-2109:
--

jiridanek closed pull request #1307:
URL: https://github.com/apache/qpid-dispatch/pull/1307


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Shutdown crash: member access within null pointer of type 'struct qdr_node_t'
> -
>
> Key: DISPATCH-2109
> URL: https://issues.apache.org/jira/browse/DISPATCH-2109
> Project: Qpid Dispatch
>  Issue Type: Bug
>Affects Versions: 1.17.0
>Reporter: Jiri Daněk
>Assignee: Jiri Daněk
>Priority: Major
> Fix For: 1.18.0
>
>
> https://travis-ci.com/github/apache/qpid-dispatch/jobs/503812980#L4578
> {code}
> 28: 
> /home/travis/build/apache/qpid-dispatch/src/router_core/route_tables.c:530:17:
>  runtime error: member access within null pointer of type 'struct qdr_node_t'
> 28: #0 0x3ff9628d5bd in qdr_set_cost_CT 
> /home/travis/build/apache/qpid-dispatch/src/router_core/route_tables.c:530
> 28: #1 0x3ff9627e7cb in qdr_core_free 
> /home/travis/build/apache/qpid-dispatch/src/router_core/router_core.c:251
> 28: #2 0x3ff962e13f9 in qd_router_free 
> /home/travis/build/apache/qpid-dispatch/src/router_node.c:2160
> 28: #3 0x3ff9617979d in qd_dispatch_free 
> /home/travis/build/apache/qpid-dispatch/src/dispatch.c:375
> 28: #4 0x3ff9617979d in qd_dispatch_free 
> /home/travis/build/apache/qpid-dispatch/src/dispatch.c:363
> 28: #5 0x2aa23604fa9 in main_process 
> /home/travis/build/apache/qpid-dispatch/router/src/main.c:119
> 28: #6 0x2aa23604a23 in main 
> /home/travis/build/apache/qpid-dispatch/router/src/main.c:369
> 28: #7 0x3ff94faa5f9 in __libc_start_main 
> (/lib/s390x-linux-gnu/libc.so.6+0x2a5f9)
> 28: #8 0x2aa23604d23  
> (/home/travis/build/apache/qpid-dispatch/build/router/qdrouterd+0x4d23)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[GitHub] [qpid-dispatch] jiridanek closed pull request #1307: DISPATCH-2109 Fix a shutdown crash: member access within null pointer…

2021-12-08 Thread GitBox


jiridanek closed pull request #1307:
URL: https://github.com/apache/qpid-dispatch/pull/1307


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[GitHub] [qpid-dispatch] jiridanek commented on pull request #1307: DISPATCH-2109 Fix a shutdown crash: member access within null pointer…

2021-12-08 Thread GitBox


jiridanek commented on pull request #1307:
URL: https://github.com/apache/qpid-dispatch/pull/1307#issuecomment-988918785


   @kgiusti This issue was fixed by a different PR from @ganeshmurthy. This PR 
should be closed. The fix from Ganesh is already included in main and in 1.18.x 
(assuming it it https://github.com/apache/qpid-dispatch/pull/1389, as far as I 
can determine)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[jira] [Commented] (DISPATCH-2109) Shutdown crash: member access within null pointer of type 'struct qdr_node_t'

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455317#comment-17455317
 ] 

ASF GitHub Bot commented on DISPATCH-2109:
--

ganeshmurthy commented on pull request #1307:
URL: https://github.com/apache/qpid-dispatch/pull/1307#issuecomment-988917692


   It does seem like DISPATCH-2230 should take care of this. This PR can be 
closed.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Shutdown crash: member access within null pointer of type 'struct qdr_node_t'
> -
>
> Key: DISPATCH-2109
> URL: https://issues.apache.org/jira/browse/DISPATCH-2109
> Project: Qpid Dispatch
>  Issue Type: Bug
>Affects Versions: 1.17.0
>Reporter: Jiri Daněk
>Assignee: Jiri Daněk
>Priority: Major
> Fix For: 1.18.0
>
>
> https://travis-ci.com/github/apache/qpid-dispatch/jobs/503812980#L4578
> {code}
> 28: 
> /home/travis/build/apache/qpid-dispatch/src/router_core/route_tables.c:530:17:
>  runtime error: member access within null pointer of type 'struct qdr_node_t'
> 28: #0 0x3ff9628d5bd in qdr_set_cost_CT 
> /home/travis/build/apache/qpid-dispatch/src/router_core/route_tables.c:530
> 28: #1 0x3ff9627e7cb in qdr_core_free 
> /home/travis/build/apache/qpid-dispatch/src/router_core/router_core.c:251
> 28: #2 0x3ff962e13f9 in qd_router_free 
> /home/travis/build/apache/qpid-dispatch/src/router_node.c:2160
> 28: #3 0x3ff9617979d in qd_dispatch_free 
> /home/travis/build/apache/qpid-dispatch/src/dispatch.c:375
> 28: #4 0x3ff9617979d in qd_dispatch_free 
> /home/travis/build/apache/qpid-dispatch/src/dispatch.c:363
> 28: #5 0x2aa23604fa9 in main_process 
> /home/travis/build/apache/qpid-dispatch/router/src/main.c:119
> 28: #6 0x2aa23604a23 in main 
> /home/travis/build/apache/qpid-dispatch/router/src/main.c:369
> 28: #7 0x3ff94faa5f9 in __libc_start_main 
> (/lib/s390x-linux-gnu/libc.so.6+0x2a5f9)
> 28: #8 0x2aa23604d23  
> (/home/travis/build/apache/qpid-dispatch/build/router/qdrouterd+0x4d23)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[GitHub] [qpid-dispatch] ganeshmurthy commented on pull request #1307: DISPATCH-2109 Fix a shutdown crash: member access within null pointer…

2021-12-08 Thread GitBox


ganeshmurthy commented on pull request #1307:
URL: https://github.com/apache/qpid-dispatch/pull/1307#issuecomment-988917692


   It does seem like DISPATCH-2230 should take care of this. This PR can be 
closed.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[jira] [Commented] (DISPATCH-2272) Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455315#comment-17455315
 ] 

ASF GitHub Bot commented on DISPATCH-2272:
--

ganeshmurthy commented on a change in pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#discussion_r764969413



##
File path: include/qpid/dispatch/internal/export.h
##
@@ -0,0 +1,27 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+/// @cond INTERNAL
+
+/// import/export macros
+#if defined(_WIN32)
+#  define QD_EXPORT __declspec(dllexport)
+#else
+#  define QD_EXPORT __attribute__((visibility("default"))) 
__attribute__((used))

Review comment:
   I was looking at this - 
https://developer.arm.com/documentation/dui0491/f/Compiler-specific-Features/--attributeused---function-attribute?lang=en
   
   It seems to say that "This function attribute informs the compiler that a 
static function is to be retained in the object file, even if it is 
unreferenced."
   
   Is it true that __attribute__((used)) can *only* be used on *static* 
functions ?
   
   I also understand from reading this - 
https://developer.arm.com/documentation/dui0491/f/BABCJJID - that 
__attribute__((used)) can also be used with  *static* variables, although I 
understand that this PR is not attempting to do so. 
   




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Mark all functions called from Python with QD_EXPORT
> 
>
> Key: DISPATCH-2272
> URL: https://issues.apache.org/jira/browse/DISPATCH-2272
> Project: Qpid Dispatch
>  Issue Type: Sub-task
>Affects Versions: 1.17.0
>Reporter: Jiri Daněk
>Priority: Major
>
> Dispatch requires that all C functions it calls be exported, because it looks 
> them up as if in a dynamic library. This is important on Windows, where 
> functions are unexported by default.
> On Windows, use {{__declspec(dllexport)}} to turn on exporting. Without it, 
> the functions will not be found from Python.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[GitHub] [qpid-dispatch] ganeshmurthy commented on a change in pull request #1413: DISPATCH-2272 Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread GitBox


ganeshmurthy commented on a change in pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#discussion_r764969413



##
File path: include/qpid/dispatch/internal/export.h
##
@@ -0,0 +1,27 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+/// @cond INTERNAL
+
+/// import/export macros
+#if defined(_WIN32)
+#  define QD_EXPORT __declspec(dllexport)
+#else
+#  define QD_EXPORT __attribute__((visibility("default"))) 
__attribute__((used))

Review comment:
   I was looking at this - 
https://developer.arm.com/documentation/dui0491/f/Compiler-specific-Features/--attributeused---function-attribute?lang=en
   
   It seems to say that "This function attribute informs the compiler that a 
static function is to be retained in the object file, even if it is 
unreferenced."
   
   Is it true that __attribute__((used)) can *only* be used on *static* 
functions ?
   
   I also understand from reading this - 
https://developer.arm.com/documentation/dui0491/f/BABCJJID - that 
__attribute__((used)) can also be used with  *static* variables, although I 
understand that this PR is not attempting to do so. 
   




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[jira] [Commented] (DISPATCH-2272) Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455311#comment-17455311
 ] 

ASF GitHub Bot commented on DISPATCH-2272:
--

ganeshmurthy commented on a change in pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#discussion_r764964838



##
File path: include/qpid/dispatch/internal/export.h
##
@@ -0,0 +1,27 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+/// @cond INTERNAL
+
+/// import/export macros
+#if defined(_WIN32)

Review comment:
   I suggest we remove any code that accommodates WIN32. In fact, I would 
recommend that we go thru the already existing Dispatch code and remove any 
code that has this kind of #if defined(_WIN32)
   The reason I say this is that we don't want to have any code that even hints 
at anything to do with WIN32




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Mark all functions called from Python with QD_EXPORT
> 
>
> Key: DISPATCH-2272
> URL: https://issues.apache.org/jira/browse/DISPATCH-2272
> Project: Qpid Dispatch
>  Issue Type: Sub-task
>Affects Versions: 1.17.0
>Reporter: Jiri Daněk
>Priority: Major
>
> Dispatch requires that all C functions it calls be exported, because it looks 
> them up as if in a dynamic library. This is important on Windows, where 
> functions are unexported by default.
> On Windows, use {{__declspec(dllexport)}} to turn on exporting. Without it, 
> the functions will not be found from Python.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[GitHub] [qpid-dispatch] ganeshmurthy commented on a change in pull request #1413: DISPATCH-2272 Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread GitBox


ganeshmurthy commented on a change in pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#discussion_r764964838



##
File path: include/qpid/dispatch/internal/export.h
##
@@ -0,0 +1,27 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+/// @cond INTERNAL
+
+/// import/export macros
+#if defined(_WIN32)

Review comment:
   I suggest we remove any code that accommodates WIN32. In fact, I would 
recommend that we go thru the already existing Dispatch code and remove any 
code that has this kind of #if defined(_WIN32)
   The reason I say this is that we don't want to have any code that even hints 
at anything to do with WIN32




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[jira] [Commented] (DISPATCH-2109) Shutdown crash: member access within null pointer of type 'struct qdr_node_t'

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455294#comment-17455294
 ] 

ASF GitHub Bot commented on DISPATCH-2109:
--

kgiusti commented on pull request #1307:
URL: https://github.com/apache/qpid-dispatch/pull/1307#issuecomment-97134


   Should this be included in 1.19.x?  @ganeshmurthy indicated it may have been 
fixed by [DISPATCH-2230](https://issues.apache.org/jira/browse/DISPATCH-2230) - 
is that still the case?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Shutdown crash: member access within null pointer of type 'struct qdr_node_t'
> -
>
> Key: DISPATCH-2109
> URL: https://issues.apache.org/jira/browse/DISPATCH-2109
> Project: Qpid Dispatch
>  Issue Type: Bug
>Affects Versions: 1.17.0
>Reporter: Jiri Daněk
>Assignee: Jiri Daněk
>Priority: Major
> Fix For: 1.18.0
>
>
> https://travis-ci.com/github/apache/qpid-dispatch/jobs/503812980#L4578
> {code}
> 28: 
> /home/travis/build/apache/qpid-dispatch/src/router_core/route_tables.c:530:17:
>  runtime error: member access within null pointer of type 'struct qdr_node_t'
> 28: #0 0x3ff9628d5bd in qdr_set_cost_CT 
> /home/travis/build/apache/qpid-dispatch/src/router_core/route_tables.c:530
> 28: #1 0x3ff9627e7cb in qdr_core_free 
> /home/travis/build/apache/qpid-dispatch/src/router_core/router_core.c:251
> 28: #2 0x3ff962e13f9 in qd_router_free 
> /home/travis/build/apache/qpid-dispatch/src/router_node.c:2160
> 28: #3 0x3ff9617979d in qd_dispatch_free 
> /home/travis/build/apache/qpid-dispatch/src/dispatch.c:375
> 28: #4 0x3ff9617979d in qd_dispatch_free 
> /home/travis/build/apache/qpid-dispatch/src/dispatch.c:363
> 28: #5 0x2aa23604fa9 in main_process 
> /home/travis/build/apache/qpid-dispatch/router/src/main.c:119
> 28: #6 0x2aa23604a23 in main 
> /home/travis/build/apache/qpid-dispatch/router/src/main.c:369
> 28: #7 0x3ff94faa5f9 in __libc_start_main 
> (/lib/s390x-linux-gnu/libc.so.6+0x2a5f9)
> 28: #8 0x2aa23604d23  
> (/home/travis/build/apache/qpid-dispatch/build/router/qdrouterd+0x4d23)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[GitHub] [qpid-dispatch] kgiusti commented on pull request #1307: DISPATCH-2109 Fix a shutdown crash: member access within null pointer…

2021-12-08 Thread GitBox


kgiusti commented on pull request #1307:
URL: https://github.com/apache/qpid-dispatch/pull/1307#issuecomment-97134


   Should this be included in 1.19.x?  @ganeshmurthy indicated it may have been 
fixed by [DISPATCH-2230](https://issues.apache.org/jira/browse/DISPATCH-2230) - 
is that still the case?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[jira] [Commented] (DISPATCH-2272) Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/DISPATCH-2272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17455287#comment-17455287
 ] 

ASF GitHub Bot commented on DISPATCH-2272:
--

kgiusti commented on pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#issuecomment-988879144


   Interesting point re: static builds.  I'd like to get the opinions of 
@ted-ross and @ganeshmurthy since this seems - correct me if I'm wrong - that 
we'd need devs to be consistent with the use of the new QD_EXPORT qualifier 
when adding/modifying new declarations in the codebase.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Mark all functions called from Python with QD_EXPORT
> 
>
> Key: DISPATCH-2272
> URL: https://issues.apache.org/jira/browse/DISPATCH-2272
> Project: Qpid Dispatch
>  Issue Type: Sub-task
>Affects Versions: 1.17.0
>Reporter: Jiri Daněk
>Priority: Major
>
> Dispatch requires that all C functions it calls be exported, because it looks 
> them up as if in a dynamic library. This is important on Windows, where 
> functions are unexported by default.
> On Windows, use {{__declspec(dllexport)}} to turn on exporting. Without it, 
> the functions will not be found from Python.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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



[GitHub] [qpid-dispatch] kgiusti commented on pull request #1413: DISPATCH-2272 Mark all functions called from Python with QD_EXPORT

2021-12-08 Thread GitBox


kgiusti commented on pull request #1413:
URL: https://github.com/apache/qpid-dispatch/pull/1413#issuecomment-988879144


   Interesting point re: static builds.  I'd like to get the opinions of 
@ted-ross and @ganeshmurthy since this seems - correct me if I'm wrong - that 
we'd need devs to be consistent with the use of the new QD_EXPORT qualifier 
when adding/modifying new declarations in the codebase.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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



[GitHub] [qpid-dispatch] asfgit merged pull request #1454: 1.18.x travis fix

2021-12-08 Thread GitBox


asfgit merged pull request #1454:
URL: https://github.com/apache/qpid-dispatch/pull/1454


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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