Re: proton 0.10 blocker

2015-07-20 Thread Rafael Schloming
I'm fine going ahead with Gordon's fix. I don't have a lot of time to dig
into the refcounting issue personally right now, but I'd at least leave the
bug open until we have made it through a bit more testing. I have an uneasy
feeling it (or something closely related) may pop up again if we push
harder on testing.

--Rafael


On Mon, Jul 20, 2015 at 10:43 AM, Ken Giusti  wrote:

> +1 for using Gordon's fix for now - we can cut a beta and see if it holds
> up.
>
> Since there's some unanswered questions regarding the patch's behavior,
> I'll leave the bug open - drop the blocker status - and assign it over to
> Rafi.  He's better cerebrally equipped to understand the reference counting
> implementation than I certainly am.
>
>
>
> - Original Message -
> > From: "Robbie Gemmell" 
> > To: d...@qpid.apache.org, proton@qpid.apache.org
> > Sent: Monday, July 20, 2015 12:03:06 PM
> > Subject: Re: proton 0.10 blocker
> >
> > On 17 July 2015 at 23:32, Gordon Sim  wrote:
> > > On 07/17/2015 10:04 PM, Rafael Schloming wrote:
> > >>
> > >> On Fri, Jul 17, 2015 at 12:47 PM, Gordon Sim  wrote:
> > >>
> > >>> On 07/17/2015 08:15 PM, Rafael Schloming wrote:
> > >>>
> >  On Fri, Jul 17, 2015 at 11:56 AM, Gordon Sim 
> wrote:
> > 
> >    On 07/17/2015 07:17 PM, Rafael Schloming wrote:
> > >
> > >
> > >   Given this I believe the incref/decref pair is indeed running
> into
> > >>
> > >> problems
> > >> when being invoked from inside a finalizer. I'd be curious if an
> > >> alternative fix would work. I suspect you could replace the
> additional
> > >> conditions you added to the if predicate with this:
> > >>
> > >>  pn_refcount(endpoint) > 0
> > >>
> > >>
> > > If the refcount is *not* 0, what does the incref/decref sequence
> > > accomplish?
> > >
> > 
> > 
> >  I believe the answer to this is the same as the answer I just
> posted on
> >  the
> >  other thread, i.e. the incref may trigger the incref hook (see
> >  pn_xxx_incref in engine.c), and this in turn may update the endpoint
> >  state
> >  and adjust the refcount accordingly. The decref may then end up
> >  finalizing
> >  the object.
> > 
> > >>>
> > >>> Right, understood now.
> > >>>
> > >>> Unfortunately replacing the additional conditions with just that
> check on
> > >>> the refcount doesn't prevent the crash though.
> > >>>
> > >>
> > >> Doh, not the result I was hoping for. Does it yield the same stack
> trace
> > >> as
> > >> before?
> > >
> > >
> > > Yes
> > >
> >
> > Given that and all who looked thinking the earlier proposal was safe,
> > is it worth going with that change at least for now? Knocking things
> > off the blocker list and getting an RC (or even just a beta) out would
> > be really really good.
> >
> > Robbie
> >
>
> --
> -K
>


[GitHub] qpid-proton pull request: NO-JIRA: Change travis configuration to ...

2015-07-20 Thread astitcher
Github user astitcher commented on the pull request:

https://github.com/apache/qpid-proton/pull/47#issuecomment-123005675
  
I've raised [PROTON-951](https://issues.apache.org/jira/browse/PROTON-951) 
and [PROTON-952](https://issues.apache.org/jira/browse/PROTON-952) - which are 
related bugs to this discussion. 
[PROTON-952](https://issues.apache.org/jira/browse/PROTON-952) may be related 
to the python 2.6 tox issue.




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (PROTON-951) Make install fails when building Proton-C with python 3.4

2015-07-20 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on PROTON-951:
---

Github user astitcher commented on the pull request:

https://github.com/apache/qpid-proton/pull/47#issuecomment-123005675
  
I've raised [PROTON-951](https://issues.apache.org/jira/browse/PROTON-951) 
and [PROTON-952](https://issues.apache.org/jira/browse/PROTON-952) - which are 
related bugs to this discussion. 
[PROTON-952](https://issues.apache.org/jira/browse/PROTON-952) may be related 
to the python 2.6 tox issue.




> Make install fails when building Proton-C with python 3.4
> -
>
> Key: PROTON-951
> URL: https://issues.apache.org/jira/browse/PROTON-951
> Project: Qpid Proton
>  Issue Type: Bug
>Affects Versions: 0.10
>Reporter: Andrew Stitcher
> Attachments: py34fail
>
>
> When building proton-C using a python 3.4 virtualenv make install fails:
> {quote}
> $ source ~/LocalPython/Python3/bin/activate
> $ cmake -DCMAKE_INSTALL_PREFIX=$PWD/install ../src
> $ cmake --build . --target install
> {quote}
> {quote}
> ...
> CMake Error at proton-c/bindings/python/cmake_install.cmake:106 (file):
>   file INSTALL cannot find
>   "/home/andrew/Work/proton/bld-python3/proton-c/bindings/python/cproton.pyc".
> Call Stack (most recent call first):
>   proton-c/bindings/cmake_install.cmake:37 (include)
>   proton-c/cmake_install.cmake:139 (include)
>   cmake_install.cmake:50 (include)
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-952) Building Proton with python 2.6 and python 3.4 on Travis CI finds and links wrong libpython

2015-07-20 Thread Andrew Stitcher (JIRA)

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

Andrew Stitcher commented on PROTON-952:


Build log for python 3.4 (2.6 is similar)
{quote}
...
$ cmake .. -DCMAKE_INSTALL_PREFIX=$PWD/install
...
-- Build type is "RelWithDebInfo" (has debug symbols)
-- PN_VERSION: 0.10 (SNAPSHOT)
...
-- Found PythonInterp: /home/travis/virtualenv/python3.4.2/bin/python 
...
-- Found PythonLibs: /usr/lib/libpython2.7.so 
...
{quote}

So it finds the correct python executable but the incorrect libpython. This may 
be a bug in the version of cmake being used (as I don't get this problem on my 
fedora 21/22 developer boxes).

The failure symptoms are:

For Python 3.4 -
{quote}
...
$ ctest -V
...
test 2
  Start  2: python-test
2: Test command: /home/travis/virtualenv/python3.4.2/bin/python 
"/home/travis/build/astitcher/qpid-proton/proton-c/env.py" 
"PATH=/home/travis/build/astitcher/qpid-proton/Build/proton-c:/home/travis/build/astitcher/qpid-proton/Build/tests/tools/apps/c:/home/travis/build/astitcher/qpid-proton/tests/tools/apps/python:/home/travis/.local/bin:/home/travis/virtualenv/python3.4.2/bin:/home/travis/bin:/home/travis/.local/bin:/home/travis/.gimme/versions/go1.4.1.linux.amd64/bin:/opt/python/2.7.9/bin:/opt/python/2.6.9/bin:/opt/python/3.4.2/bin:/opt/python/3.3.5/bin:/opt/python/3.2.5/bin:/opt/python/pypy-2.5.0/bin:/opt/python/pypy3-2.4.0/bin:/usr/local/phantomjs/bin:/home/travis/.nvm/v0.10.36/bin:./node_modules/.bin:/usr/local/maven-3.2.5/bin:/usr/local/clang-3.4/bin:/home/travis/.gimme/versions/go1.4.1.linux.amd64/bin:/opt/python/2.7.9/bin:/opt/python/2.6.9/bin:/opt/python/3.4.2/bin:/opt/python/3.3.5/bin:/opt/python/3.2.5/bin:/opt/python/pypy-2.5.0/bin:/opt/python/pypy3-2.4.0/bin:/usr/local/phantomjs/bin:./node_modules/.bin:/usr/local/maven-3.2.5/bin:/usr/local/clang-3.4/bin:/home/travis/.gimme/versions/go1.4.1.linux.amd64/bin:/home/travis/.rvm/gems/ruby-1.9.3-p551/bin:/home/travis/.rvm/gems/ruby-1.9.3-p551@global/bin:/home/travis/.rvm/rubies/ruby-1.9.3-p551/bin:/opt/python/2.7.9/bin:/opt/python/2.6.9/bin:/opt/python/3.4.2/bin:/opt/python/3.3.5/bin:/opt/python/3.2.5/bin:/opt/python/pypy-2.5.0/bin:/opt/python/pypy3-2.4.0/bin:/usr/local/phantomjs/bin:./node_modules/.bin:/usr/local/maven-3.2.5/bin:/usr/local/clang-3.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/travis/.rvm/bin:/home/travis/.rvm/bin:/home/travis/.rvm/bin"
 
"PYTHONPATH=/home/travis/build/astitcher/qpid-proton/tests/python:/home/travis/build/astitcher/qpid-proton/proton-c/bindings/python:/home/travis/build/astitcher/qpid-proton/Build/proton-c/bindings/python:/home/travis/build/astitcher/qpid-proton/Build/proton-c/bindings/python"
 "PKG_CONFIG_PATH=/home/travis/build/astitcher/qpid-proton/Build/proton" 
"CLASSPATH=/home/travis/build/astitcher/qpid-proton/Build/proton-j/proton-j.jar"
 "SASLPASSWD=/usr/sbin/saslpasswd2" "VALGRIND=/usr/bin/valgrind" 
"/home/travis/virtualenv/python3.4.2/bin/python" 
"/home/travis/build/astitcher/qpid-proton/tests/python/proton-test"
2: Test timeout computed to be: 1500
2: Traceback (most recent call last):
2:   File "/home/travis/build/astitcher/qpid-proton/tests/python/proton-test", 
line 620, in 
2: m = __import__(name, None, None, ["dummy"])
2:   File 
"/home/travis/build/astitcher/qpid-proton/tests/python/proton_tests/__init__.py",
 line 20, in 
2: import proton_tests.codec
2:   File 
"/home/travis/build/astitcher/qpid-proton/tests/python/proton_tests/codec.py", 
line 21, in 
2: from . import common
2:   File 
"/home/travis/build/astitcher/qpid-proton/tests/python/proton_tests/common.py", 
line 26, in 
2: from proton import Connection, Transport, SASL, Endpoint, Delivery, SSL
2:   File 
"/home/travis/build/astitcher/qpid-proton/proton-c/bindings/python/proton/__init__.py",
 line 34, in 
2: from cproton import *
2:   File 
"/home/travis/build/astitcher/qpid-proton/Build/proton-c/bindings/python/cproton.py",
 line 26, in 
2: _cproton = swig_import_helper()
2:   File 
"/home/travis/build/astitcher/qpid-proton/Build/proton-c/bindings/python/cproton.py",
 line 22, in swig_import_helper
2: _mod = imp.load_module('_cproton', fp, pathname, description)
2:   File "/home/travis/virtualenv/python3.4.2/lib/python3.4/imp.py", line 243, 
in load_module
2: return load_dynamic(name, filename, file)
2: ImportError: dynamic module does not define init function (PyInit__cproton)
 2/12 Test  #2: python-test ..***Failed  Required regular 
expression not found.Regex=[Totals: .* 0 failed
]  0.24 sec
...
{quote}
For Python 2.6-
{quote}
...
$ ctest -V
...
test 2
  Start  2: python-test
2: Test command: /home/travis/virtualenv/python2.6.9/bin/python 
"/home/travis/build/astitcher/qpid-proton/proton-c/env.py" 
"PATH=/home/travis/build/astitcher/qpid-proton/Build/proton-c:/home/travis/build/astit

[jira] [Commented] (PROTON-951) Make install fails when building Proton-C with python 3.4

2015-07-20 Thread Andrew Stitcher (JIRA)

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

Andrew Stitcher commented on PROTON-951:


This may not have been noticed before because running ctest runs all the tests 
fine.

It seems to be a slight difference in the built artifacts for python 3.4 
compared to python 2.7 (lack of .pyc being generated?)

> Make install fails when building Proton-C with python 3.4
> -
>
> Key: PROTON-951
> URL: https://issues.apache.org/jira/browse/PROTON-951
> Project: Qpid Proton
>  Issue Type: Bug
>Affects Versions: 0.10
>Reporter: Andrew Stitcher
> Attachments: py34fail
>
>
> When building proton-C using a python 3.4 virtualenv make install fails:
> {quote}
> $ source ~/LocalPython/Python3/bin/activate
> $ cmake -DCMAKE_INSTALL_PREFIX=$PWD/install ../src
> $ cmake --build . --target install
> {quote}
> {quote}
> ...
> CMake Error at proton-c/bindings/python/cmake_install.cmake:106 (file):
>   file INSTALL cannot find
>   "/home/andrew/Work/proton/bld-python3/proton-c/bindings/python/cproton.pyc".
> Call Stack (most recent call first):
>   proton-c/bindings/cmake_install.cmake:37 (include)
>   proton-c/cmake_install.cmake:139 (include)
>   cmake_install.cmake:50 (include)
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-952) Building Proton with python 2.6 and python 3.4 on Travis CI finds and links wrong libpython

2015-07-20 Thread Andrew Stitcher (JIRA)
Andrew Stitcher created PROTON-952:
--

 Summary: Building Proton with python 2.6 and python 3.4 on Travis 
CI finds and links wrong libpython
 Key: PROTON-952
 URL: https://issues.apache.org/jira/browse/PROTON-952
 Project: Qpid Proton
  Issue Type: Bug
Affects Versions: 0.10
 Environment: Travis CI build environment (highly customised Ubuntu)
Reporter: Andrew Stitcher


You can specify a specifiv version of python to use in the Traviis build 
process and that will set up the build environment to use a python virtualenv 
with that version of python.

When using python 2.6 or 3.4 (and probably 3.3 too but I've not tested that)
the cmake installed will find the python 2.7 libs and link them into the proton 
bindings extension. This seems to succeed at build time but seems to make the 
"python-test" fail to even start in both cases (though with slightly different 
symptoms).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-951) Make install fails when building Proton-C with python 3.4

2015-07-20 Thread Andrew Stitcher (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTON-951?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Stitcher updated PROTON-951:
---
Attachment: py34fail

Attached Output from "make install"

> Make install fails when building Proton-C with python 3.4
> -
>
> Key: PROTON-951
> URL: https://issues.apache.org/jira/browse/PROTON-951
> Project: Qpid Proton
>  Issue Type: Bug
>Affects Versions: 0.10
>Reporter: Andrew Stitcher
> Attachments: py34fail
>
>
> When building proton-C using a python 3.4 virtualenv make install fails:
> {quote}
> $ source ~/LocalPython/Python3/bin/activate
> $ cmake -DCMAKE_INSTALL_PREFIX=$PWD/install ../src
> $ cmake --build . --target install
> {quote}
> {quote}
> ...
> CMake Error at proton-c/bindings/python/cmake_install.cmake:106 (file):
>   file INSTALL cannot find
>   "/home/andrew/Work/proton/bld-python3/proton-c/bindings/python/cproton.pyc".
> Call Stack (most recent call first):
>   proton-c/bindings/cmake_install.cmake:37 (include)
>   proton-c/cmake_install.cmake:139 (include)
>   cmake_install.cmake:50 (include)
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (PROTON-951) Make install fails when building Proton-C with python 3.4

2015-07-20 Thread Andrew Stitcher (JIRA)
Andrew Stitcher created PROTON-951:
--

 Summary: Make install fails when building Proton-C with python 3.4
 Key: PROTON-951
 URL: https://issues.apache.org/jira/browse/PROTON-951
 Project: Qpid Proton
  Issue Type: Bug
Affects Versions: 0.10
Reporter: Andrew Stitcher


When building proton-C using a python 3.4 virtualenv make install fails:
{quote}
$ source ~/LocalPython/Python3/bin/activate
$ cmake -DCMAKE_INSTALL_PREFIX=$PWD/install ../src
$ cmake --build . --target install
{quote}

{quote}
...
CMake Error at proton-c/bindings/python/cmake_install.cmake:106 (file):
  file INSTALL cannot find
  "/home/andrew/Work/proton/bld-python3/proton-c/bindings/python/cproton.pyc".
Call Stack (most recent call first):
  proton-c/bindings/cmake_install.cmake:37 (include)
  proton-c/cmake_install.cmake:139 (include)
  cmake_install.cmake:50 (include)
{quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (PROTON-905) Long-lived connections leak sessions and links

2015-07-20 Thread Ken Giusti (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTON-905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ken Giusti reassigned PROTON-905:
-

Assignee: Rafael H. Schloming  (was: Ken Giusti)

> Long-lived connections leak sessions and links
> --
>
> Key: PROTON-905
> URL: https://issues.apache.org/jira/browse/PROTON-905
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.9.1
>Reporter: Ken Giusti
>Assignee: Rafael H. Schloming
>Priority: Critical
> Fix For: 0.10
>
> Attachments: test-send.py
>
>
> I found this issue while debugging a crash dump of qpidd.
> Long lived connections do not free its sessions/link.
> This only applies when NOT using the event model.  The version of qpidd I 
> tested against (0.30) still uses the iterative model.  Point to consider, I 
> don't know why this is the case.
> Details:  I have a test script that opens a single connection, then 
> continually creates sessions/links over that connection, sending one message 
> before closing and freeing the sessions/links.  See attached.
> Over time the qpidd run time consumes all memory on the system and is killed 
> by OOM.  To be clear, I'm using drain to remove all sent messages - there is 
> no message build up.
> On debugging this, I'm finding thousands of session objects on the 
> connections free sessions weakref list.  Every one of those sessions has a 
> refcount of one.
> Once the connection is finalized, all session objects are freed.  But until 
> then, freed sessions continue to accumulate indefinitely.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-943) Bump library (.so) major version for proton-c libraries

2015-07-20 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on PROTON-943:


Commit 8f82638b7e8299c8c3544516e4b8a18d185d3325 in qpid-proton's branch 
refs/heads/master from [~kgiusti]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=8f82638 ]

PROTON-943: bump libqpid-proton shared library major version for 0.10 release


> Bump library (.so) major version for proton-c libraries
> ---
>
> Key: PROTON-943
> URL: https://issues.apache.org/jira/browse/PROTON-943
> Project: Qpid Proton
>  Issue Type: Task
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Ken Giusti
>Priority: Blocker
> Fix For: 0.10
>
>
> 0.10 contains incompatible API changes.  The library major versions need to 
> be incremented.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (PROTON-943) Bump library (.so) major version for proton-c libraries

2015-07-20 Thread Ken Giusti (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTON-943?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ken Giusti resolved PROTON-943.
---
Resolution: Fixed

Bumped to 3.0.0

> Bump library (.so) major version for proton-c libraries
> ---
>
> Key: PROTON-943
> URL: https://issues.apache.org/jira/browse/PROTON-943
> Project: Qpid Proton
>  Issue Type: Task
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Ken Giusti
>Priority: Blocker
> Fix For: 0.10
>
>
> 0.10 contains incompatible API changes.  The library major versions need to 
> be incremented.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (PROTON-943) Bump library (.so) major version for proton-c libraries

2015-07-20 Thread Ken Giusti (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTON-943?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ken Giusti reassigned PROTON-943:
-

Assignee: Ken Giusti

> Bump library (.so) major version for proton-c libraries
> ---
>
> Key: PROTON-943
> URL: https://issues.apache.org/jira/browse/PROTON-943
> Project: Qpid Proton
>  Issue Type: Task
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Ken Giusti
>Priority: Blocker
> Fix For: 0.10
>
>
> 0.10 contains incompatible API changes.  The library major versions need to 
> be incremented.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-905) Long-lived connections leak sessions and links

2015-07-20 Thread Ken Giusti (JIRA)

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

Ken Giusti commented on PROTON-905:
---

I've merged Gordon's work around, and have dropped the Blocker status.

I'm leaving this open and assigning to Rafi as there is concern that there may 
be other issues involved that have not been addressed.

> Long-lived connections leak sessions and links
> --
>
> Key: PROTON-905
> URL: https://issues.apache.org/jira/browse/PROTON-905
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.9.1
>Reporter: Ken Giusti
>Assignee: Ken Giusti
>Priority: Critical
> Fix For: 0.10
>
> Attachments: test-send.py
>
>
> I found this issue while debugging a crash dump of qpidd.
> Long lived connections do not free its sessions/link.
> This only applies when NOT using the event model.  The version of qpidd I 
> tested against (0.30) still uses the iterative model.  Point to consider, I 
> don't know why this is the case.
> Details:  I have a test script that opens a single connection, then 
> continually creates sessions/links over that connection, sending one message 
> before closing and freeing the sessions/links.  See attached.
> Over time the qpidd run time consumes all memory on the system and is killed 
> by OOM.  To be clear, I'm using drain to remove all sent messages - there is 
> no message build up.
> On debugging this, I'm finding thousands of session objects on the 
> connections free sessions weakref list.  Every one of those sessions has a 
> refcount of one.
> Once the connection is finalized, all session objects are freed.  But until 
> then, freed sessions continue to accumulate indefinitely.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (PROTON-905) Long-lived connections leak sessions and links

2015-07-20 Thread Ken Giusti (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTON-905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ken Giusti updated PROTON-905:
--
Priority: Critical  (was: Blocker)

> Long-lived connections leak sessions and links
> --
>
> Key: PROTON-905
> URL: https://issues.apache.org/jira/browse/PROTON-905
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.9.1
>Reporter: Ken Giusti
>Assignee: Ken Giusti
>Priority: Critical
> Fix For: 0.10
>
> Attachments: test-send.py
>
>
> I found this issue while debugging a crash dump of qpidd.
> Long lived connections do not free its sessions/link.
> This only applies when NOT using the event model.  The version of qpidd I 
> tested against (0.30) still uses the iterative model.  Point to consider, I 
> don't know why this is the case.
> Details:  I have a test script that opens a single connection, then 
> continually creates sessions/links over that connection, sending one message 
> before closing and freeing the sessions/links.  See attached.
> Over time the qpidd run time consumes all memory on the system and is killed 
> by OOM.  To be clear, I'm using drain to remove all sent messages - there is 
> no message build up.
> On debugging this, I'm finding thousands of session objects on the 
> connections free sessions weakref list.  Every one of those sessions has a 
> refcount of one.
> Once the connection is finalized, all session objects are freed.  But until 
> then, freed sessions continue to accumulate indefinitely.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-905) Long-lived connections leak sessions and links

2015-07-20 Thread Ken Giusti (JIRA)

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

Ken Giusti commented on PROTON-905:
---

Crash as captured by gsim:

> #0  0x003d54635935 in raise () from /lib64/libc.so.6
> #1  0x003d546370e8 in abort () from /lib64/libc.so.6
> #2  0x003d5462e6a2 in __assert_fail_base () from /lib64/libc.so.6
> #3  0x003d5462e752 in __assert_fail () from /lib64/libc.so.6
> #4  0x7fef7d37a761 in pn_class_free (clazz=0x7fef7d5b4ec0, 
> object=0x3692060) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:120
> #5  0x7fef7d37aa12 in pn_free (object=) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:265
> #6  0x7fef7d386000 in pni_free_children (children=0x3690510, 
> freed=0x36905e0) at 
> /home/gordon/projects/proton-git/proton-c/src/engine/engine.c:454
> #7  0x7fef7d386d09 in pn_session_finalize (object=0x3690180) at 
> /home/gordon/projects/proton-git/proton-c/src/engine/engine.c:932
> #8  0x7fef7d37a64d in pn_class_decref (clazz=clazz@entry=0x7fef7d5b4e40, 
> object=object@entry=0x3690180) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:97
> #9  0x7fef7d37a70b in pn_class_free (clazz=0x7fef7d5b4e40, 
> object=0x3690180) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:122
> #10 0x7fef7d37aa12 in pn_free (object=) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:265
> #11 0x7fef7d386000 in pni_free_children (children=0x368e9c0, 
> freed=0x368ea90) at 
> /home/gordon/projects/proton-git/proton-c/src/engine/engine.c:454
> #12 0x7fef7d3866db in pn_connection_finalize (object=0x368e310) at 
> /home/gordon/projects/proton-git/proton-c/src/engine/engine.c:476
> #13 0x7fef7d37a64d in pn_class_decref (clazz=0x7fef7d5b4dc0, 
> object=object@entry=0x368e310) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:97
> #14 0x7fef7d37a9d2 in pn_decref (object=object@entry=0x368e310) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:255
> #15 0x7fef7d38bd08 in pn_transport_unbind 
> (transport=transport@entry=0x36831e0) at 
> /home/gordon/projects/proton-git/proton-c/src/transport/transport.c:733
> #16 0x7fef7d38bd88 in pn_transport_finalize (object=0x36831e0) at 
> /home/gordon/projects/proton-git/proton-c/src/transport/transport.c:602
> #17 0x7fef7d37a64d in pn_class_decref (clazz=0x7fef7d5b50c0, 
> object=0x36831e0) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:97


> Long-lived connections leak sessions and links
> --
>
> Key: PROTON-905
> URL: https://issues.apache.org/jira/browse/PROTON-905
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.9.1
>Reporter: Ken Giusti
>Assignee: Ken Giusti
>Priority: Blocker
> Fix For: 0.10
>
> Attachments: test-send.py
>
>
> I found this issue while debugging a crash dump of qpidd.
> Long lived connections do not free its sessions/link.
> This only applies when NOT using the event model.  The version of qpidd I 
> tested against (0.30) still uses the iterative model.  Point to consider, I 
> don't know why this is the case.
> Details:  I have a test script that opens a single connection, then 
> continually creates sessions/links over that connection, sending one message 
> before closing and freeing the sessions/links.  See attached.
> Over time the qpidd run time consumes all memory on the system and is killed 
> by OOM.  To be clear, I'm using drain to remove all sent messages - there is 
> no message build up.
> On debugging this, I'm finding thousands of session objects on the 
> connections free sessions weakref list.  Every one of those sessions has a 
> refcount of one.
> Once the connection is finalized, all session objects are freed.  But until 
> then, freed sessions continue to accumulate indefinitely.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PROTON-905) Long-lived connections leak sessions and links

2015-07-20 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on PROTON-905:


Commit d9ce3cfd0916ae3719cb39a83a6174c5f88b10bb in qpid-proton's branch 
refs/heads/master from [~gsim]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=d9ce3cf ]

PROTON-905: fix to prevent crash with latest qpidd


> Long-lived connections leak sessions and links
> --
>
> Key: PROTON-905
> URL: https://issues.apache.org/jira/browse/PROTON-905
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c
>Affects Versions: 0.9.1
>Reporter: Ken Giusti
>Assignee: Ken Giusti
>Priority: Blocker
> Fix For: 0.10
>
> Attachments: test-send.py
>
>
> I found this issue while debugging a crash dump of qpidd.
> Long lived connections do not free its sessions/link.
> This only applies when NOT using the event model.  The version of qpidd I 
> tested against (0.30) still uses the iterative model.  Point to consider, I 
> don't know why this is the case.
> Details:  I have a test script that opens a single connection, then 
> continually creates sessions/links over that connection, sending one message 
> before closing and freeing the sessions/links.  See attached.
> Over time the qpidd run time consumes all memory on the system and is killed 
> by OOM.  To be clear, I'm using drain to remove all sent messages - there is 
> no message build up.
> On debugging this, I'm finding thousands of session objects on the 
> connections free sessions weakref list.  Every one of those sessions has a 
> refcount of one.
> Once the connection is finalized, all session objects are freed.  But until 
> then, freed sessions continue to accumulate indefinitely.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Re: proton 0.10 blocker

2015-07-20 Thread Ken Giusti
+1 for using Gordon's fix for now - we can cut a beta and see if it holds up.

Since there's some unanswered questions regarding the patch's behavior, I'll 
leave the bug open - drop the blocker status - and assign it over to Rafi.  
He's better cerebrally equipped to understand the reference counting 
implementation than I certainly am.



- Original Message -
> From: "Robbie Gemmell" 
> To: d...@qpid.apache.org, proton@qpid.apache.org
> Sent: Monday, July 20, 2015 12:03:06 PM
> Subject: Re: proton 0.10 blocker
> 
> On 17 July 2015 at 23:32, Gordon Sim  wrote:
> > On 07/17/2015 10:04 PM, Rafael Schloming wrote:
> >>
> >> On Fri, Jul 17, 2015 at 12:47 PM, Gordon Sim  wrote:
> >>
> >>> On 07/17/2015 08:15 PM, Rafael Schloming wrote:
> >>>
>  On Fri, Jul 17, 2015 at 11:56 AM, Gordon Sim  wrote:
> 
>    On 07/17/2015 07:17 PM, Rafael Schloming wrote:
> >
> >
> >   Given this I believe the incref/decref pair is indeed running into
> >>
> >> problems
> >> when being invoked from inside a finalizer. I'd be curious if an
> >> alternative fix would work. I suspect you could replace the additional
> >> conditions you added to the if predicate with this:
> >>
> >>  pn_refcount(endpoint) > 0
> >>
> >>
> > If the refcount is *not* 0, what does the incref/decref sequence
> > accomplish?
> >
> 
> 
>  I believe the answer to this is the same as the answer I just posted on
>  the
>  other thread, i.e. the incref may trigger the incref hook (see
>  pn_xxx_incref in engine.c), and this in turn may update the endpoint
>  state
>  and adjust the refcount accordingly. The decref may then end up
>  finalizing
>  the object.
> 
> >>>
> >>> Right, understood now.
> >>>
> >>> Unfortunately replacing the additional conditions with just that check on
> >>> the refcount doesn't prevent the crash though.
> >>>
> >>
> >> Doh, not the result I was hoping for. Does it yield the same stack trace
> >> as
> >> before?
> >
> >
> > Yes
> >
> 
> Given that and all who looked thinking the earlier proposal was safe,
> is it worth going with that change at least for now? Knocking things
> off the blocker list and getting an RC (or even just a beta) out would
> be really really good.
> 
> Robbie
> 

-- 
-K


[jira] [Resolved] (PROTON-707) Valgrind 'invalid read' errors in proton_tests.message.LoadSaveTest tests

2015-07-20 Thread Ken Giusti (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTON-707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ken Giusti resolved PROTON-707.
---
   Resolution: Fixed
Fix Version/s: (was: 0.9)
   0.10

> Valgrind 'invalid read' errors in proton_tests.message.LoadSaveTest tests
> -
>
> Key: PROTON-707
> URL: https://issues.apache.org/jira/browse/PROTON-707
> Project: Qpid Proton
>  Issue Type: Bug
>  Components: proton-c, python-binding
>Affects Versions: 0.8
>Reporter: Ken Giusti
> Fix For: 0.10
>
>
> Valgrind detects an invalid memory reference during these tests.
> To reproduce:
> $ valgrind -q --trace-children=yes 
> --suppressions=./proton_tests/valgrind.supp ./proton-test 
> "proton_tests.message.LoadSaveTest.*"
> proton_tests.message.LoadSaveTest.testData ..
> ==18459== Invalid read of size 1
> ==18459==at 0x4A0A534: memcpy@@GLIBC_2.14 (in 
> /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==18459==by 0x30F0A8F1B7: PyString_FromStringAndSize (string3.h:51)
> ==18459==by 0xF24F5C7: _wrap_pn_message_save (cprotonPYTHON_wrap.c:3303)
> ==18459==by 0x30F0ADDC2D: PyEval_EvalFrameEx (ceval.c:4098)
> ==18459==by 0x30F0ADD74B: PyEval_EvalFrameEx (ceval.c:4184)
> ==18459==by 0x30F0ADEBBC: PyEval_EvalCodeEx (ceval.c:3330)
> ==18459==by 0x30F0ADD6A8: PyEval_EvalFrameEx (ceval.c:4194)
> ==18459==by 0x30F0ADD74B: PyEval_EvalFrameEx (ceval.c:4184)
> ==18459==by 0x30F0ADD74B: PyEval_EvalFrameEx (ceval.c:4184)
> ==18459==by 0x30F0ADEBBC: PyEval_EvalCodeEx (ceval.c:3330)
> ==18459==by 0x30F0ADD6A8: PyEval_EvalFrameEx (ceval.c:4194)
> ==18459==by 0x30F0ADD74B: PyEval_EvalFrameEx (ceval.c:4184)
> ==18459==  Address 0x1055bb08 is 7 bytes after a block of size 17 alloc'd
> ==18459==at 0x4A06409: malloc (in 
> /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==18459==by 0xF24F500: _wrap_pn_message_save (cprotonPYTHON_wrap.c:4029)
> ==18459==by 0x30F0ADDC2D: PyEval_EvalFrameEx (ceval.c:4098)
> ==18459==by 0x30F0ADD74B: PyEval_EvalFrameEx (ceval.c:4184)
> ==18459==by 0x30F0ADEBBC: PyEval_EvalCodeEx (ceval.c:3330)
> ==18459==by 0x30F0ADD6A8: PyEval_EvalFrameEx (ceval.c:4194)
> ==18459==by 0x30F0ADD74B: PyEval_EvalFrameEx (ceval.c:4184)
> ==18459==by 0x30F0ADD74B: PyEval_EvalFrameEx (ceval.c:4184)
> ==18459==by 0x30F0ADEBBC: PyEval_EvalCodeEx (ceval.c:3330)
> ==18459==by 0x30F0ADD6A8: PyEval_EvalFrameEx (ceval.c:4194)
> ==18459==by 0x30F0ADD74B: PyEval_EvalFrameEx (ceval.c:4184)
> ==18459==by 0x30F0ADD74B: PyEval_EvalFrameEx (ceval.c:4184)
> ==18459==
>  pass



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (PROTON-476) Support a user-context for SASL and SSL objects.

2015-07-20 Thread Ken Giusti (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTON-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ken Giusti closed PROTON-476.
-
   Resolution: Won't Fix
Fix Version/s: (was: 0.9)

Probably no longer necessary - the new attachments interface allows multiple 
contexts to be associated with the transport (which is the parent of both the 
SASL and SSL objects).

> Support a user-context for SASL and SSL objects.
> 
>
> Key: PROTON-476
> URL: https://issues.apache.org/jira/browse/PROTON-476
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Affects Versions: 0.5
>Reporter: Ken Giusti
>Assignee: Ken Giusti
>
> For consistency and convenience, I'd like to add an API that would allow an 
> application-defined context be associated with the pn_sasl_t, 
> pn_ssl_domain_t, and pn_ssl_t objects.  This api would follow the convention 
> used by other proton classes (eg, pn_connection_get_context(), 
> pn_connection_set_context()).  ex:
> void *pn_sasl_get_context(pn_sasl_t);
> void pn_sasl_set_context(pn_sasl_t *, void *context); 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (PROTON-851) Implement pn_i_genuuid for platforms that not support uuid_generate

2015-07-20 Thread Ken Giusti (JIRA)

 [ 
https://issues.apache.org/jira/browse/PROTON-851?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ken Giusti closed PROTON-851.
-
Resolution: Not A Problem
  Assignee: Ken Giusti

0.10 removes the need for a uuid generator.

> Implement pn_i_genuuid for platforms that not support uuid_generate
> ---
>
> Key: PROTON-851
> URL: https://issues.apache.org/jira/browse/PROTON-851
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Affects Versions: 0.9
> Environment: uclinux m68k
>Reporter: Tomasz Nowicki
>Assignee: Ken Giusti
>  Labels: patch
> Fix For: 0.10
>
> Attachments: proton-c-UUID.patch
>
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> Added pn_i_genuuid implementation for uclinux m68k (or any posix with no 
> uuid_generate). Method is using rand() to generate UUID. Define 
> USE_INTERNAL_UUID is introducedin CMAKE for proton-c



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Re: proton 0.10 blocker

2015-07-20 Thread Robbie Gemmell
On 17 July 2015 at 23:32, Gordon Sim  wrote:
> On 07/17/2015 10:04 PM, Rafael Schloming wrote:
>>
>> On Fri, Jul 17, 2015 at 12:47 PM, Gordon Sim  wrote:
>>
>>> On 07/17/2015 08:15 PM, Rafael Schloming wrote:
>>>
 On Fri, Jul 17, 2015 at 11:56 AM, Gordon Sim  wrote:

   On 07/17/2015 07:17 PM, Rafael Schloming wrote:
>
>
>   Given this I believe the incref/decref pair is indeed running into
>>
>> problems
>> when being invoked from inside a finalizer. I'd be curious if an
>> alternative fix would work. I suspect you could replace the additional
>> conditions you added to the if predicate with this:
>>
>>  pn_refcount(endpoint) > 0
>>
>>
> If the refcount is *not* 0, what does the incref/decref sequence
> accomplish?
>


 I believe the answer to this is the same as the answer I just posted on
 the
 other thread, i.e. the incref may trigger the incref hook (see
 pn_xxx_incref in engine.c), and this in turn may update the endpoint
 state
 and adjust the refcount accordingly. The decref may then end up
 finalizing
 the object.

>>>
>>> Right, understood now.
>>>
>>> Unfortunately replacing the additional conditions with just that check on
>>> the refcount doesn't prevent the crash though.
>>>
>>
>> Doh, not the result I was hoping for. Does it yield the same stack trace
>> as
>> before?
>
>
> Yes
>

Given that and all who looked thinking the earlier proposal was safe,
is it worth going with that change at least for now? Knocking things
off the blocker list and getting an RC (or even just a beta) out would
be really really good.

Robbie


[GitHub] qpid-proton pull request: NO-JIRA: Change travis configuration to ...

2015-07-20 Thread gemmellr
Github user gemmellr commented on the pull request:

https://github.com/apache/qpid-proton/pull/47#issuecomment-122924850
  
@astitcher ok great


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] qpid-proton pull request: NO-JIRA: Change travis configuration to ...

2015-07-20 Thread astitcher
Github user astitcher commented on the pull request:

https://github.com/apache/qpid-proton/pull/47#issuecomment-122922144
  
@gemmellr  I'm going to try to characterise the python 3 build issue a bit 
better then raise a JIRA.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] qpid-proton pull request: NO-JIRA: Change travis configuration to ...

2015-07-20 Thread gemmellr
Github user gemmellr commented on the pull request:

https://github.com/apache/qpid-proton/pull/47#issuecomment-122902052
  
@dnwe Yeah, I'm a bit lost with these bits I'm afraid hence the sugestion 
of mentioning any issues more directly on the list so those with a clue are 
aware something needs attention, as they likely won't have noticed these 
comments.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] qpid-proton pull request: NO-JIRA: Change travis configuration to ...

2015-07-20 Thread dnwe
Github user dnwe commented on the pull request:

https://github.com/apache/qpid-proton/pull/47#issuecomment-122900045
  
@gemmellr the error message for py26 is quite odd. It seems like its 
failing on the new "compile proton from python if libqpid-proton isn't 
available to link against" that was added to the setup.py. I'm not sure why the 
libqpid-proton build via cmake isn't considered usable though.

Here's the output log

```
Processing ./.tox/dist/python-qpid-proton-0.10.0.zip
Building wheels for collected packages: python-qpid-proton
  Running setup.py bdist_wheel for python-qpid-proton
  Complete output from command 
/home/travis/build/apache/qpid-proton/proton-c/bindings/python/.tox/py26/bin/python2.6
 -c "import 
setuptools;__file__='/tmp/pip-zTErui-build/setup.py';exec(compile(open(__file__).read().replace('\r\n',
 '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpTPU6sFpip-wheel-:
  running bdist_wheel
  running build
  running build_ext
  running configure
  building '_cproton' extension
  swigging cproton.i to cproton_wrap.c
  swig -python -threads -o cproton_wrap.c cproton.i
  cproton.i:394: Error: Unable to find 'proton/cproton.i'
  error: command 'swig' failed with exit status 1
  
  
  Failed building wheel for python-qpid-proton
Failed to build python-qpid-proton
```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] qpid-proton pull request: NO-JIRA: Change travis configuration to ...

2015-07-20 Thread gemmellr
Github user gemmellr commented on the pull request:

https://github.com/apache/qpid-proton/pull/47#issuecomment-122896223
  
Do the earlier comments mean that it no longer tests on 2.6 but did 
previously? Is that perhaps because the newer infrastructure doesn't include 
2.6? or perhaps since the config is now specifying 2.7 explicitly? Possibly 
something worth mentioning more directly on the list.

Similarly, is Ken aware of the issue you saw with Python 3.4? Might also be 
worth pointing out.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---