You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pulsar.apache.org by Yunze Xu <yz...@streamnative.io.INVALID> on 2023/03/08 09:51:26 UTC

[VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

This is the 4th release candidate for Apache Pulsar Client Python,
version 3.1.0.

It fixes the following issues:
https://github.com/apache/pulsar-client-python/milestone/2?closed=1

*** Please download, test and vote on this release. This vote will
stay open for at least 72 hours ***

Python wheels:
https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/

The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11. The
supported platforms and architectures are:
- Windows x86_64 (windows/)
- glibc-based Linux x86_64 (linux-glibc-x86_64/)
- glibc-based Linux arm64 (linux-glibc-arm64/)
- musl-based Linux x86_64 (linux-musl-x86_64/)
- musl-based Linux arm64 (linux-musl-arm64/)
- macOS universal 2 (macos/)

You can download the wheel (the `.whl` file) according to your own OS
and Python version
and install the wheel:
- Windows: `py -m pip install *.whl --force-reinstall`
- Linux or macOS: `python3 -m pip install *.whl --force-reinstall`

The tag to be voted upon: v3.1.0-candidate-4
(b883f42aa4287d46423b85f7af77f604cacf2a7e)
https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4

Pulsar's KEYS file containing PGP keys you use to sign the release:
https://downloads.apache.org/pulsar/KEYS

Please download the Python wheels and follow the README to test.

Re: [VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

Posted by Yunze Xu <yz...@streamnative.io.INVALID>.
Close this vote by 3 binding +1s:
* Penghui
* Matteo
* Bo

and 1 non-binding +1:
* Zike

Thanks,
Yunze

On Mon, Mar 13, 2023 at 11:14 AM Zike Yang <zi...@apache.org> wrote:
>
> > It's not a regression. This error applies for Python client 3.0.0 as
> > well. Before 3.0.0, the Python client cannot be interrupted by a
> > signal.I'd rather treat it as the case that the implementation of
> > handling the UNIX signals is not so perfect.I'd rather treat it as the case that the implementation of
> > handling the UNIX signals is not so perfect.
>
> Make sense to me.
>
> Thanks,
> Zike Yang
>
> On Sat, Mar 11, 2023 at 2:38 PM 丛搏 <bo...@apache.org> wrote:
> >
> > +1 (binding)
> >
> > python version: 3.7.6
> > - Checked the signature
> > - Install the python .whl file
> > (pulsar_client-3.1.0-cp37-cp37m-macosx_10_15_universal2.whl) on macOS
> > 12.3.1
> > - Start the standalone (2.11.0)
> > - Start consumer (python3 ./examples/consumer.py)
> > - Start producer (python3 ./examples/producer.py)
> > - ./tests/run-unit-tests.sh without interrupted_test.py
> > (apachepulsar/pulsar:2.11.0)
> >
> > Thanks,
> > Bo
> >
> > Matteo Merli <ma...@gmail.com> 于2023年3月11日周六 00:15写道:
> > >
> > > +1 (binding)
> > > --
> > > Matteo Merli
> > > <ma...@gmail.com>
> > >
> > >
> > > On Fri, Mar 10, 2023 at 7:44 AM Yunze Xu <yz...@streamnative.io.invalid>
> > > wrote:
> > >
> > > > Hi Zike,
> > > >
> > > > It's not a regression. This error applies for Python client 3.0.0 as
> > > > well. Before 3.0.0, the Python client cannot be interrupted by a
> > > > signal. I'd rather treat it as the case that the implementation of
> > > > handling the UNIX signals is not so perfect. Here is the issue:
> > > > https://github.com/apache/pulsar-client-python/issues/103
> > > >
> > > > Thanks,
> > > > Yunze
> > > >
> > > > On Fri, Mar 10, 2023 at 4:25 PM Zike Yang <zi...@apache.org> wrote:
> > > > >
> > > > > Hi, Yunze
> > > > >
> > > > > > However, with the latest example, the output should be the following
> > > > > > logs if you pressed the Ctrl+C:
> > > > >
> > > > > Thanks for your explanation. It works fine for me now.
> > > > >
> > > > > > I think it should not be a blocker, we can open an issue for that. The
> > > > > > official example uses a try-except block to avoid this issue.
> > > > >
> > > > > Will you highlight this in the release note? It seems it has changed
> > > > > the default behavior. It's better to provide the user with good
> > > > > practice for this.
> > > > >
> > > > > Thanks,
> > > > > Zike Yang
> > > > >
> > > > > On Thu, Mar 9, 2023 at 10:10 PM Yunze Xu <yz...@streamnative.io.invalid>
> > > > wrote:
> > > > > >
> > > > > > The reason is caused by the `client.close()` not being called. You
> > > > > > should make sure `client.close()` is called when receiving a SIGINT
> > > > > > signal.
> > > > > >
> > > > > > ```
> > > > > > #8  0x00007f194f6aca99 in pulsar::ConsumerImpl::shutdown() [clone
> > > > .cold] ()
> > > > > >    from
> > > > /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > > > > > #9  0x00007f194f79dd74 in pulsar::ConsumerImpl::~ConsumerImpl() ()
> > > > > >    from
> > > > /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > > > > > #10 0x00007f195006a71b in
> > > > > >
> > > > pybind11::class_<pulsar::Consumer>::dealloc(pybind11::detail::value_and_holder&)
> > > > > > ()
> > > > > >    from /usr/local/lib/python3.7/site-packages/_
> > > > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > > > > #11 0x00007f1950039f8e in pybind11::detail::clear_instance(_object*) ()
> > > > > >    from /usr/local/lib/python3.7/site-packages/_
> > > > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > > > > #12 0x00007f195003ac5f in pybind11_object_dealloc ()
> > > > > >    from /usr/local/lib/python3.7/site-packages/_
> > > > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > > > > #13 0x00007f1950a47927 in dict_dealloc (mp=0x7f194f302320) at
> > > > > > Objects/dictobject.c:1905
> > > > > > #14 0x00007f1950acc284 in subtype_clear (self=<Consumer at remote
> > > > > > 0x7f1950273cd0>) at Objects/typeobject.c:1123
> > > > > > #15 0x00007f1950aa793d in delete_garbage (old=0x7f1950c4a000
> > > > > > <_PyRuntime+448>, collectable=0x7fff65e5b2a0)
> > > > > >     at Modules/gcmodule.c:761
> > > > > > #16 collect (generation=2, n_collected=0x0, n_uncollectable=0x0,
> > > > > > nofail=1) at Modules/gcmodule.c:913
> > > > > > #17 0x00007f1950af92a2 in _PyGC_CollectNoFail () at
> > > > Modules/gcmodule.c:1602
> > > > > > #18 0x00007f1950aec340 in PyImport_Cleanup () at Python/import.c:526
> > > > > > #19 0x00007f1950aee5a8 in Py_FinalizeEx () at Python/pylifecycle.c:1199
> > > > > > #20 0x00007f1950af6b48 in pymain_main (pymain=0x7fff65e5b510) at
> > > > > > Modules/main.c:3127
> > > > > > #21 0x00007f1950af6a1e in _Py_UnixMain (argc=<optimized out>,
> > > > > > argv=<optimized out>) at Modules/main.c:3160
> > > > > > #22 0x00007f1950768d0a in __libc_start_main (main=0x55e11cf1b050
> > > > > > <main>, argc=2, argv=0x7fff65e5b668,
> > > > > > --Type <RET> for more, q to quit, c to continue without paging--
> > > > > >     t>, fini=<optimized out>, rtld_fini=<optimized out>,
> > > > > > stack_end=0x7fff65e5b658) at ../csu/libc-start.c:308
> > > > > > #23 0x000055e11cf1b08a in _start ()
> > > > > > ```
> > > > > >
> > > > > > I think it should not be a blocker, we can open an issue for that. The
> > > > > > official example uses a try-except block to avoid this issue.
> > > > > >
> > > > > > Thanks,
> > > > > > Yunze
> > > > > >
> > > > > > On Thu, Mar 9, 2023 at 9:48 PM Yunze Xu <yz...@streamnative.io> wrote:
> > > > > > >
> > > > > > > Hi Zike,
> > > > > > >
> > > > > > > Did you run the latest example? I still see the exceptional info:
> > > > > > >
> > > > > > > ```
> > > > > > > line 1243, in receive
> > > > > > >     msg = self._consumer.receive()
> > > > > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > > > > ```
> > > > > > >
> > > > > > > However, with the latest example, the output should be the following
> > > > > > > logs if you pressed the Ctrl+C:
> > > > > > >
> > > > > > > ```
> > > > > > > ^CStop receiving messages
> > > > > > > ```
> > > > > > >
> > > > > > > Because the exception from `consumer.receive()`  is caught.
> > > > > > >
> > > > > > > ```python3
> > > > > > >     try:
> > > > > > >         msg = consumer.receive()
> > > > > > >         # ...
> > > > > > >     except pulsar.Interrupted:
> > > > > > >         print("Stop receiving messages")
> > > > > > >         break
> > > > > > > ```
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Yunze
> > > > > > >
> > > > > > > On Thu, Mar 9, 2023 at 3:02 PM Zike Yang <zi...@apache.org> wrote:
> > > > > > > >
> > > > > > > > Hi Yunze
> > > > > > > >
> > > > > > > > The crash issue still exists in python 3.7. Here is the log
> > > > > > > > ```
> > > > > > > > ^CTraceback (most recent call last):
> > > > > > > >   File
> > > > "/Users/aaronrobert/codebase/pulsar-client-python/examples/consumer.py",
> > > > > > > > line 32, in <module>
> > > > > > > >     msg = consumer.receive()
> > > > > > > >   File
> > > > "/Users/aaronrobert/.pyenv/versions/3.7.16/lib/python3.7/site-packages/pulsar/__init__.py",
> > > > > > > > line 1243, in receive
> > > > > > > >     msg = self._consumer.receive()
> > > > > > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > > > > > 2023-03-09 12:18:14.326 WARN  [0x110900600] ConsumerImpl:126 |
> > > > > > > > [persistent://public/default/my-topic, my-subscription, 0]
> > > > Destroyed
> > > > > > > > consumer which was not properly closed
> > > > > > > > 2023-03-09 12:18:14.326 INFO  [0x110900600] ConsumerImpl:134 |
> > > > > > > > [persistent://public/default/my-topic, my-subscription, 0] Closed
> > > > > > > > consumer for race condition: 0
> > > > > > > > libc++abi: terminating with uncaught exception of type
> > > > > > > > std::__1::bad_weak_ptr: bad_weak_ptr
> > > > > > > > [1]    52874 abort      python37
> > > > > > > > ~/codebase/pulsar-client-python/examples/consumer.py
> > > > > > > > ```
> > > > > > > >
> > > > > > > > This issue also exists in python 3.10.8. But it worked fine when I
> > > > > > > > upgraded it to the latest version of python 3.10: 3.10.10.
> > > > > > > > However, python 3.7.16, which is the latest version of python 3.7
> > > > > > > > still not working.
> > > > > > > >
> > > > > > > > Not sure if it's a python issue, but only some python versions have
> > > > > > > > fixed it. Could you take a look again?
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Zike Yang
> > > > > > > >
> > > > > > > > On Wed, Mar 8, 2023 at 5:51 PM Yunze Xu
> > > > <yz...@streamnative.io.invalid> wrote:
> > > > > > > > >
> > > > > > > > > This is the 4th release candidate for Apache Pulsar Client
> > > > Python,
> > > > > > > > > version 3.1.0.
> > > > > > > > >
> > > > > > > > > It fixes the following issues:
> > > > > > > > >
> > > > https://github.com/apache/pulsar-client-python/milestone/2?closed=1
> > > > > > > > >
> > > > > > > > > *** Please download, test and vote on this release. This vote
> > > > will
> > > > > > > > > stay open for at least 72 hours ***
> > > > > > > > >
> > > > > > > > > Python wheels:
> > > > > > > > >
> > > > https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/
> > > > > > > > >
> > > > > > > > > The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11.
> > > > The
> > > > > > > > > supported platforms and architectures are:
> > > > > > > > > - Windows x86_64 (windows/)
> > > > > > > > > - glibc-based Linux x86_64 (linux-glibc-x86_64/)
> > > > > > > > > - glibc-based Linux arm64 (linux-glibc-arm64/)
> > > > > > > > > - musl-based Linux x86_64 (linux-musl-x86_64/)
> > > > > > > > > - musl-based Linux arm64 (linux-musl-arm64/)
> > > > > > > > > - macOS universal 2 (macos/)
> > > > > > > > >
> > > > > > > > > You can download the wheel (the `.whl` file) according to your
> > > > own OS
> > > > > > > > > and Python version
> > > > > > > > > and install the wheel:
> > > > > > > > > - Windows: `py -m pip install *.whl --force-reinstall`
> > > > > > > > > - Linux or macOS: `python3 -m pip install *.whl
> > > > --force-reinstall`
> > > > > > > > >
> > > > > > > > > The tag to be voted upon: v3.1.0-candidate-4
> > > > > > > > > (b883f42aa4287d46423b85f7af77f604cacf2a7e)
> > > > > > > > >
> > > > https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4
> > > > > > > > >
> > > > > > > > > Pulsar's KEYS file containing PGP keys you use to sign the
> > > > release:
> > > > > > > > > https://downloads.apache.org/pulsar/KEYS
> > > > > > > > >
> > > > > > > > > Please download the Python wheels and follow the README to test.
> > > >

Re: [VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

Posted by Zike Yang <zi...@apache.org>.
> It's not a regression. This error applies for Python client 3.0.0 as
> well. Before 3.0.0, the Python client cannot be interrupted by a
> signal.I'd rather treat it as the case that the implementation of
> handling the UNIX signals is not so perfect.I'd rather treat it as the case that the implementation of
> handling the UNIX signals is not so perfect.

Make sense to me.

Thanks,
Zike Yang

On Sat, Mar 11, 2023 at 2:38 PM 丛搏 <bo...@apache.org> wrote:
>
> +1 (binding)
>
> python version: 3.7.6
> - Checked the signature
> - Install the python .whl file
> (pulsar_client-3.1.0-cp37-cp37m-macosx_10_15_universal2.whl) on macOS
> 12.3.1
> - Start the standalone (2.11.0)
> - Start consumer (python3 ./examples/consumer.py)
> - Start producer (python3 ./examples/producer.py)
> - ./tests/run-unit-tests.sh without interrupted_test.py
> (apachepulsar/pulsar:2.11.0)
>
> Thanks,
> Bo
>
> Matteo Merli <ma...@gmail.com> 于2023年3月11日周六 00:15写道:
> >
> > +1 (binding)
> > --
> > Matteo Merli
> > <ma...@gmail.com>
> >
> >
> > On Fri, Mar 10, 2023 at 7:44 AM Yunze Xu <yz...@streamnative.io.invalid>
> > wrote:
> >
> > > Hi Zike,
> > >
> > > It's not a regression. This error applies for Python client 3.0.0 as
> > > well. Before 3.0.0, the Python client cannot be interrupted by a
> > > signal. I'd rather treat it as the case that the implementation of
> > > handling the UNIX signals is not so perfect. Here is the issue:
> > > https://github.com/apache/pulsar-client-python/issues/103
> > >
> > > Thanks,
> > > Yunze
> > >
> > > On Fri, Mar 10, 2023 at 4:25 PM Zike Yang <zi...@apache.org> wrote:
> > > >
> > > > Hi, Yunze
> > > >
> > > > > However, with the latest example, the output should be the following
> > > > > logs if you pressed the Ctrl+C:
> > > >
> > > > Thanks for your explanation. It works fine for me now.
> > > >
> > > > > I think it should not be a blocker, we can open an issue for that. The
> > > > > official example uses a try-except block to avoid this issue.
> > > >
> > > > Will you highlight this in the release note? It seems it has changed
> > > > the default behavior. It's better to provide the user with good
> > > > practice for this.
> > > >
> > > > Thanks,
> > > > Zike Yang
> > > >
> > > > On Thu, Mar 9, 2023 at 10:10 PM Yunze Xu <yz...@streamnative.io.invalid>
> > > wrote:
> > > > >
> > > > > The reason is caused by the `client.close()` not being called. You
> > > > > should make sure `client.close()` is called when receiving a SIGINT
> > > > > signal.
> > > > >
> > > > > ```
> > > > > #8  0x00007f194f6aca99 in pulsar::ConsumerImpl::shutdown() [clone
> > > .cold] ()
> > > > >    from
> > > /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > > > > #9  0x00007f194f79dd74 in pulsar::ConsumerImpl::~ConsumerImpl() ()
> > > > >    from
> > > /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > > > > #10 0x00007f195006a71b in
> > > > >
> > > pybind11::class_<pulsar::Consumer>::dealloc(pybind11::detail::value_and_holder&)
> > > > > ()
> > > > >    from /usr/local/lib/python3.7/site-packages/_
> > > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > > > #11 0x00007f1950039f8e in pybind11::detail::clear_instance(_object*) ()
> > > > >    from /usr/local/lib/python3.7/site-packages/_
> > > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > > > #12 0x00007f195003ac5f in pybind11_object_dealloc ()
> > > > >    from /usr/local/lib/python3.7/site-packages/_
> > > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > > > #13 0x00007f1950a47927 in dict_dealloc (mp=0x7f194f302320) at
> > > > > Objects/dictobject.c:1905
> > > > > #14 0x00007f1950acc284 in subtype_clear (self=<Consumer at remote
> > > > > 0x7f1950273cd0>) at Objects/typeobject.c:1123
> > > > > #15 0x00007f1950aa793d in delete_garbage (old=0x7f1950c4a000
> > > > > <_PyRuntime+448>, collectable=0x7fff65e5b2a0)
> > > > >     at Modules/gcmodule.c:761
> > > > > #16 collect (generation=2, n_collected=0x0, n_uncollectable=0x0,
> > > > > nofail=1) at Modules/gcmodule.c:913
> > > > > #17 0x00007f1950af92a2 in _PyGC_CollectNoFail () at
> > > Modules/gcmodule.c:1602
> > > > > #18 0x00007f1950aec340 in PyImport_Cleanup () at Python/import.c:526
> > > > > #19 0x00007f1950aee5a8 in Py_FinalizeEx () at Python/pylifecycle.c:1199
> > > > > #20 0x00007f1950af6b48 in pymain_main (pymain=0x7fff65e5b510) at
> > > > > Modules/main.c:3127
> > > > > #21 0x00007f1950af6a1e in _Py_UnixMain (argc=<optimized out>,
> > > > > argv=<optimized out>) at Modules/main.c:3160
> > > > > #22 0x00007f1950768d0a in __libc_start_main (main=0x55e11cf1b050
> > > > > <main>, argc=2, argv=0x7fff65e5b668,
> > > > > --Type <RET> for more, q to quit, c to continue without paging--
> > > > >     t>, fini=<optimized out>, rtld_fini=<optimized out>,
> > > > > stack_end=0x7fff65e5b658) at ../csu/libc-start.c:308
> > > > > #23 0x000055e11cf1b08a in _start ()
> > > > > ```
> > > > >
> > > > > I think it should not be a blocker, we can open an issue for that. The
> > > > > official example uses a try-except block to avoid this issue.
> > > > >
> > > > > Thanks,
> > > > > Yunze
> > > > >
> > > > > On Thu, Mar 9, 2023 at 9:48 PM Yunze Xu <yz...@streamnative.io> wrote:
> > > > > >
> > > > > > Hi Zike,
> > > > > >
> > > > > > Did you run the latest example? I still see the exceptional info:
> > > > > >
> > > > > > ```
> > > > > > line 1243, in receive
> > > > > >     msg = self._consumer.receive()
> > > > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > > > ```
> > > > > >
> > > > > > However, with the latest example, the output should be the following
> > > > > > logs if you pressed the Ctrl+C:
> > > > > >
> > > > > > ```
> > > > > > ^CStop receiving messages
> > > > > > ```
> > > > > >
> > > > > > Because the exception from `consumer.receive()`  is caught.
> > > > > >
> > > > > > ```python3
> > > > > >     try:
> > > > > >         msg = consumer.receive()
> > > > > >         # ...
> > > > > >     except pulsar.Interrupted:
> > > > > >         print("Stop receiving messages")
> > > > > >         break
> > > > > > ```
> > > > > >
> > > > > > Thanks,
> > > > > > Yunze
> > > > > >
> > > > > > On Thu, Mar 9, 2023 at 3:02 PM Zike Yang <zi...@apache.org> wrote:
> > > > > > >
> > > > > > > Hi Yunze
> > > > > > >
> > > > > > > The crash issue still exists in python 3.7. Here is the log
> > > > > > > ```
> > > > > > > ^CTraceback (most recent call last):
> > > > > > >   File
> > > "/Users/aaronrobert/codebase/pulsar-client-python/examples/consumer.py",
> > > > > > > line 32, in <module>
> > > > > > >     msg = consumer.receive()
> > > > > > >   File
> > > "/Users/aaronrobert/.pyenv/versions/3.7.16/lib/python3.7/site-packages/pulsar/__init__.py",
> > > > > > > line 1243, in receive
> > > > > > >     msg = self._consumer.receive()
> > > > > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > > > > 2023-03-09 12:18:14.326 WARN  [0x110900600] ConsumerImpl:126 |
> > > > > > > [persistent://public/default/my-topic, my-subscription, 0]
> > > Destroyed
> > > > > > > consumer which was not properly closed
> > > > > > > 2023-03-09 12:18:14.326 INFO  [0x110900600] ConsumerImpl:134 |
> > > > > > > [persistent://public/default/my-topic, my-subscription, 0] Closed
> > > > > > > consumer for race condition: 0
> > > > > > > libc++abi: terminating with uncaught exception of type
> > > > > > > std::__1::bad_weak_ptr: bad_weak_ptr
> > > > > > > [1]    52874 abort      python37
> > > > > > > ~/codebase/pulsar-client-python/examples/consumer.py
> > > > > > > ```
> > > > > > >
> > > > > > > This issue also exists in python 3.10.8. But it worked fine when I
> > > > > > > upgraded it to the latest version of python 3.10: 3.10.10.
> > > > > > > However, python 3.7.16, which is the latest version of python 3.7
> > > > > > > still not working.
> > > > > > >
> > > > > > > Not sure if it's a python issue, but only some python versions have
> > > > > > > fixed it. Could you take a look again?
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Zike Yang
> > > > > > >
> > > > > > > On Wed, Mar 8, 2023 at 5:51 PM Yunze Xu
> > > <yz...@streamnative.io.invalid> wrote:
> > > > > > > >
> > > > > > > > This is the 4th release candidate for Apache Pulsar Client
> > > Python,
> > > > > > > > version 3.1.0.
> > > > > > > >
> > > > > > > > It fixes the following issues:
> > > > > > > >
> > > https://github.com/apache/pulsar-client-python/milestone/2?closed=1
> > > > > > > >
> > > > > > > > *** Please download, test and vote on this release. This vote
> > > will
> > > > > > > > stay open for at least 72 hours ***
> > > > > > > >
> > > > > > > > Python wheels:
> > > > > > > >
> > > https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/
> > > > > > > >
> > > > > > > > The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11.
> > > The
> > > > > > > > supported platforms and architectures are:
> > > > > > > > - Windows x86_64 (windows/)
> > > > > > > > - glibc-based Linux x86_64 (linux-glibc-x86_64/)
> > > > > > > > - glibc-based Linux arm64 (linux-glibc-arm64/)
> > > > > > > > - musl-based Linux x86_64 (linux-musl-x86_64/)
> > > > > > > > - musl-based Linux arm64 (linux-musl-arm64/)
> > > > > > > > - macOS universal 2 (macos/)
> > > > > > > >
> > > > > > > > You can download the wheel (the `.whl` file) according to your
> > > own OS
> > > > > > > > and Python version
> > > > > > > > and install the wheel:
> > > > > > > > - Windows: `py -m pip install *.whl --force-reinstall`
> > > > > > > > - Linux or macOS: `python3 -m pip install *.whl
> > > --force-reinstall`
> > > > > > > >
> > > > > > > > The tag to be voted upon: v3.1.0-candidate-4
> > > > > > > > (b883f42aa4287d46423b85f7af77f604cacf2a7e)
> > > > > > > >
> > > https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4
> > > > > > > >
> > > > > > > > Pulsar's KEYS file containing PGP keys you use to sign the
> > > release:
> > > > > > > > https://downloads.apache.org/pulsar/KEYS
> > > > > > > >
> > > > > > > > Please download the Python wheels and follow the README to test.
> > >

Re: [VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

Posted by 丛搏 <bo...@apache.org>.
+1 (binding)

python version: 3.7.6
- Checked the signature
- Install the python .whl file
(pulsar_client-3.1.0-cp37-cp37m-macosx_10_15_universal2.whl) on macOS
12.3.1
- Start the standalone (2.11.0)
- Start consumer (python3 ./examples/consumer.py)
- Start producer (python3 ./examples/producer.py)
- ./tests/run-unit-tests.sh without interrupted_test.py
(apachepulsar/pulsar:2.11.0)

Thanks,
Bo

Matteo Merli <ma...@gmail.com> 于2023年3月11日周六 00:15写道:
>
> +1 (binding)
> --
> Matteo Merli
> <ma...@gmail.com>
>
>
> On Fri, Mar 10, 2023 at 7:44 AM Yunze Xu <yz...@streamnative.io.invalid>
> wrote:
>
> > Hi Zike,
> >
> > It's not a regression. This error applies for Python client 3.0.0 as
> > well. Before 3.0.0, the Python client cannot be interrupted by a
> > signal. I'd rather treat it as the case that the implementation of
> > handling the UNIX signals is not so perfect. Here is the issue:
> > https://github.com/apache/pulsar-client-python/issues/103
> >
> > Thanks,
> > Yunze
> >
> > On Fri, Mar 10, 2023 at 4:25 PM Zike Yang <zi...@apache.org> wrote:
> > >
> > > Hi, Yunze
> > >
> > > > However, with the latest example, the output should be the following
> > > > logs if you pressed the Ctrl+C:
> > >
> > > Thanks for your explanation. It works fine for me now.
> > >
> > > > I think it should not be a blocker, we can open an issue for that. The
> > > > official example uses a try-except block to avoid this issue.
> > >
> > > Will you highlight this in the release note? It seems it has changed
> > > the default behavior. It's better to provide the user with good
> > > practice for this.
> > >
> > > Thanks,
> > > Zike Yang
> > >
> > > On Thu, Mar 9, 2023 at 10:10 PM Yunze Xu <yz...@streamnative.io.invalid>
> > wrote:
> > > >
> > > > The reason is caused by the `client.close()` not being called. You
> > > > should make sure `client.close()` is called when receiving a SIGINT
> > > > signal.
> > > >
> > > > ```
> > > > #8  0x00007f194f6aca99 in pulsar::ConsumerImpl::shutdown() [clone
> > .cold] ()
> > > >    from
> > /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > > > #9  0x00007f194f79dd74 in pulsar::ConsumerImpl::~ConsumerImpl() ()
> > > >    from
> > /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > > > #10 0x00007f195006a71b in
> > > >
> > pybind11::class_<pulsar::Consumer>::dealloc(pybind11::detail::value_and_holder&)
> > > > ()
> > > >    from /usr/local/lib/python3.7/site-packages/_
> > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > > #11 0x00007f1950039f8e in pybind11::detail::clear_instance(_object*) ()
> > > >    from /usr/local/lib/python3.7/site-packages/_
> > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > > #12 0x00007f195003ac5f in pybind11_object_dealloc ()
> > > >    from /usr/local/lib/python3.7/site-packages/_
> > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > > #13 0x00007f1950a47927 in dict_dealloc (mp=0x7f194f302320) at
> > > > Objects/dictobject.c:1905
> > > > #14 0x00007f1950acc284 in subtype_clear (self=<Consumer at remote
> > > > 0x7f1950273cd0>) at Objects/typeobject.c:1123
> > > > #15 0x00007f1950aa793d in delete_garbage (old=0x7f1950c4a000
> > > > <_PyRuntime+448>, collectable=0x7fff65e5b2a0)
> > > >     at Modules/gcmodule.c:761
> > > > #16 collect (generation=2, n_collected=0x0, n_uncollectable=0x0,
> > > > nofail=1) at Modules/gcmodule.c:913
> > > > #17 0x00007f1950af92a2 in _PyGC_CollectNoFail () at
> > Modules/gcmodule.c:1602
> > > > #18 0x00007f1950aec340 in PyImport_Cleanup () at Python/import.c:526
> > > > #19 0x00007f1950aee5a8 in Py_FinalizeEx () at Python/pylifecycle.c:1199
> > > > #20 0x00007f1950af6b48 in pymain_main (pymain=0x7fff65e5b510) at
> > > > Modules/main.c:3127
> > > > #21 0x00007f1950af6a1e in _Py_UnixMain (argc=<optimized out>,
> > > > argv=<optimized out>) at Modules/main.c:3160
> > > > #22 0x00007f1950768d0a in __libc_start_main (main=0x55e11cf1b050
> > > > <main>, argc=2, argv=0x7fff65e5b668,
> > > > --Type <RET> for more, q to quit, c to continue without paging--
> > > >     t>, fini=<optimized out>, rtld_fini=<optimized out>,
> > > > stack_end=0x7fff65e5b658) at ../csu/libc-start.c:308
> > > > #23 0x000055e11cf1b08a in _start ()
> > > > ```
> > > >
> > > > I think it should not be a blocker, we can open an issue for that. The
> > > > official example uses a try-except block to avoid this issue.
> > > >
> > > > Thanks,
> > > > Yunze
> > > >
> > > > On Thu, Mar 9, 2023 at 9:48 PM Yunze Xu <yz...@streamnative.io> wrote:
> > > > >
> > > > > Hi Zike,
> > > > >
> > > > > Did you run the latest example? I still see the exceptional info:
> > > > >
> > > > > ```
> > > > > line 1243, in receive
> > > > >     msg = self._consumer.receive()
> > > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > > ```
> > > > >
> > > > > However, with the latest example, the output should be the following
> > > > > logs if you pressed the Ctrl+C:
> > > > >
> > > > > ```
> > > > > ^CStop receiving messages
> > > > > ```
> > > > >
> > > > > Because the exception from `consumer.receive()`  is caught.
> > > > >
> > > > > ```python3
> > > > >     try:
> > > > >         msg = consumer.receive()
> > > > >         # ...
> > > > >     except pulsar.Interrupted:
> > > > >         print("Stop receiving messages")
> > > > >         break
> > > > > ```
> > > > >
> > > > > Thanks,
> > > > > Yunze
> > > > >
> > > > > On Thu, Mar 9, 2023 at 3:02 PM Zike Yang <zi...@apache.org> wrote:
> > > > > >
> > > > > > Hi Yunze
> > > > > >
> > > > > > The crash issue still exists in python 3.7. Here is the log
> > > > > > ```
> > > > > > ^CTraceback (most recent call last):
> > > > > >   File
> > "/Users/aaronrobert/codebase/pulsar-client-python/examples/consumer.py",
> > > > > > line 32, in <module>
> > > > > >     msg = consumer.receive()
> > > > > >   File
> > "/Users/aaronrobert/.pyenv/versions/3.7.16/lib/python3.7/site-packages/pulsar/__init__.py",
> > > > > > line 1243, in receive
> > > > > >     msg = self._consumer.receive()
> > > > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > > > 2023-03-09 12:18:14.326 WARN  [0x110900600] ConsumerImpl:126 |
> > > > > > [persistent://public/default/my-topic, my-subscription, 0]
> > Destroyed
> > > > > > consumer which was not properly closed
> > > > > > 2023-03-09 12:18:14.326 INFO  [0x110900600] ConsumerImpl:134 |
> > > > > > [persistent://public/default/my-topic, my-subscription, 0] Closed
> > > > > > consumer for race condition: 0
> > > > > > libc++abi: terminating with uncaught exception of type
> > > > > > std::__1::bad_weak_ptr: bad_weak_ptr
> > > > > > [1]    52874 abort      python37
> > > > > > ~/codebase/pulsar-client-python/examples/consumer.py
> > > > > > ```
> > > > > >
> > > > > > This issue also exists in python 3.10.8. But it worked fine when I
> > > > > > upgraded it to the latest version of python 3.10: 3.10.10.
> > > > > > However, python 3.7.16, which is the latest version of python 3.7
> > > > > > still not working.
> > > > > >
> > > > > > Not sure if it's a python issue, but only some python versions have
> > > > > > fixed it. Could you take a look again?
> > > > > >
> > > > > > Thanks,
> > > > > > Zike Yang
> > > > > >
> > > > > > On Wed, Mar 8, 2023 at 5:51 PM Yunze Xu
> > <yz...@streamnative.io.invalid> wrote:
> > > > > > >
> > > > > > > This is the 4th release candidate for Apache Pulsar Client
> > Python,
> > > > > > > version 3.1.0.
> > > > > > >
> > > > > > > It fixes the following issues:
> > > > > > >
> > https://github.com/apache/pulsar-client-python/milestone/2?closed=1
> > > > > > >
> > > > > > > *** Please download, test and vote on this release. This vote
> > will
> > > > > > > stay open for at least 72 hours ***
> > > > > > >
> > > > > > > Python wheels:
> > > > > > >
> > https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/
> > > > > > >
> > > > > > > The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11.
> > The
> > > > > > > supported platforms and architectures are:
> > > > > > > - Windows x86_64 (windows/)
> > > > > > > - glibc-based Linux x86_64 (linux-glibc-x86_64/)
> > > > > > > - glibc-based Linux arm64 (linux-glibc-arm64/)
> > > > > > > - musl-based Linux x86_64 (linux-musl-x86_64/)
> > > > > > > - musl-based Linux arm64 (linux-musl-arm64/)
> > > > > > > - macOS universal 2 (macos/)
> > > > > > >
> > > > > > > You can download the wheel (the `.whl` file) according to your
> > own OS
> > > > > > > and Python version
> > > > > > > and install the wheel:
> > > > > > > - Windows: `py -m pip install *.whl --force-reinstall`
> > > > > > > - Linux or macOS: `python3 -m pip install *.whl
> > --force-reinstall`
> > > > > > >
> > > > > > > The tag to be voted upon: v3.1.0-candidate-4
> > > > > > > (b883f42aa4287d46423b85f7af77f604cacf2a7e)
> > > > > > >
> > https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4
> > > > > > >
> > > > > > > Pulsar's KEYS file containing PGP keys you use to sign the
> > release:
> > > > > > > https://downloads.apache.org/pulsar/KEYS
> > > > > > >
> > > > > > > Please download the Python wheels and follow the README to test.
> >

Re: [VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

Posted by Matteo Merli <ma...@gmail.com>.
+1 (binding)
--
Matteo Merli
<ma...@gmail.com>


On Fri, Mar 10, 2023 at 7:44 AM Yunze Xu <yz...@streamnative.io.invalid>
wrote:

> Hi Zike,
>
> It's not a regression. This error applies for Python client 3.0.0 as
> well. Before 3.0.0, the Python client cannot be interrupted by a
> signal. I'd rather treat it as the case that the implementation of
> handling the UNIX signals is not so perfect. Here is the issue:
> https://github.com/apache/pulsar-client-python/issues/103
>
> Thanks,
> Yunze
>
> On Fri, Mar 10, 2023 at 4:25 PM Zike Yang <zi...@apache.org> wrote:
> >
> > Hi, Yunze
> >
> > > However, with the latest example, the output should be the following
> > > logs if you pressed the Ctrl+C:
> >
> > Thanks for your explanation. It works fine for me now.
> >
> > > I think it should not be a blocker, we can open an issue for that. The
> > > official example uses a try-except block to avoid this issue.
> >
> > Will you highlight this in the release note? It seems it has changed
> > the default behavior. It's better to provide the user with good
> > practice for this.
> >
> > Thanks,
> > Zike Yang
> >
> > On Thu, Mar 9, 2023 at 10:10 PM Yunze Xu <yz...@streamnative.io.invalid>
> wrote:
> > >
> > > The reason is caused by the `client.close()` not being called. You
> > > should make sure `client.close()` is called when receiving a SIGINT
> > > signal.
> > >
> > > ```
> > > #8  0x00007f194f6aca99 in pulsar::ConsumerImpl::shutdown() [clone
> .cold] ()
> > >    from
> /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > > #9  0x00007f194f79dd74 in pulsar::ConsumerImpl::~ConsumerImpl() ()
> > >    from
> /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > > #10 0x00007f195006a71b in
> > >
> pybind11::class_<pulsar::Consumer>::dealloc(pybind11::detail::value_and_holder&)
> > > ()
> > >    from /usr/local/lib/python3.7/site-packages/_
> pulsar.cpython-37m-x86_64-linux-gnu.so
> > > #11 0x00007f1950039f8e in pybind11::detail::clear_instance(_object*) ()
> > >    from /usr/local/lib/python3.7/site-packages/_
> pulsar.cpython-37m-x86_64-linux-gnu.so
> > > #12 0x00007f195003ac5f in pybind11_object_dealloc ()
> > >    from /usr/local/lib/python3.7/site-packages/_
> pulsar.cpython-37m-x86_64-linux-gnu.so
> > > #13 0x00007f1950a47927 in dict_dealloc (mp=0x7f194f302320) at
> > > Objects/dictobject.c:1905
> > > #14 0x00007f1950acc284 in subtype_clear (self=<Consumer at remote
> > > 0x7f1950273cd0>) at Objects/typeobject.c:1123
> > > #15 0x00007f1950aa793d in delete_garbage (old=0x7f1950c4a000
> > > <_PyRuntime+448>, collectable=0x7fff65e5b2a0)
> > >     at Modules/gcmodule.c:761
> > > #16 collect (generation=2, n_collected=0x0, n_uncollectable=0x0,
> > > nofail=1) at Modules/gcmodule.c:913
> > > #17 0x00007f1950af92a2 in _PyGC_CollectNoFail () at
> Modules/gcmodule.c:1602
> > > #18 0x00007f1950aec340 in PyImport_Cleanup () at Python/import.c:526
> > > #19 0x00007f1950aee5a8 in Py_FinalizeEx () at Python/pylifecycle.c:1199
> > > #20 0x00007f1950af6b48 in pymain_main (pymain=0x7fff65e5b510) at
> > > Modules/main.c:3127
> > > #21 0x00007f1950af6a1e in _Py_UnixMain (argc=<optimized out>,
> > > argv=<optimized out>) at Modules/main.c:3160
> > > #22 0x00007f1950768d0a in __libc_start_main (main=0x55e11cf1b050
> > > <main>, argc=2, argv=0x7fff65e5b668,
> > > --Type <RET> for more, q to quit, c to continue without paging--
> > >     t>, fini=<optimized out>, rtld_fini=<optimized out>,
> > > stack_end=0x7fff65e5b658) at ../csu/libc-start.c:308
> > > #23 0x000055e11cf1b08a in _start ()
> > > ```
> > >
> > > I think it should not be a blocker, we can open an issue for that. The
> > > official example uses a try-except block to avoid this issue.
> > >
> > > Thanks,
> > > Yunze
> > >
> > > On Thu, Mar 9, 2023 at 9:48 PM Yunze Xu <yz...@streamnative.io> wrote:
> > > >
> > > > Hi Zike,
> > > >
> > > > Did you run the latest example? I still see the exceptional info:
> > > >
> > > > ```
> > > > line 1243, in receive
> > > >     msg = self._consumer.receive()
> > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > ```
> > > >
> > > > However, with the latest example, the output should be the following
> > > > logs if you pressed the Ctrl+C:
> > > >
> > > > ```
> > > > ^CStop receiving messages
> > > > ```
> > > >
> > > > Because the exception from `consumer.receive()`  is caught.
> > > >
> > > > ```python3
> > > >     try:
> > > >         msg = consumer.receive()
> > > >         # ...
> > > >     except pulsar.Interrupted:
> > > >         print("Stop receiving messages")
> > > >         break
> > > > ```
> > > >
> > > > Thanks,
> > > > Yunze
> > > >
> > > > On Thu, Mar 9, 2023 at 3:02 PM Zike Yang <zi...@apache.org> wrote:
> > > > >
> > > > > Hi Yunze
> > > > >
> > > > > The crash issue still exists in python 3.7. Here is the log
> > > > > ```
> > > > > ^CTraceback (most recent call last):
> > > > >   File
> "/Users/aaronrobert/codebase/pulsar-client-python/examples/consumer.py",
> > > > > line 32, in <module>
> > > > >     msg = consumer.receive()
> > > > >   File
> "/Users/aaronrobert/.pyenv/versions/3.7.16/lib/python3.7/site-packages/pulsar/__init__.py",
> > > > > line 1243, in receive
> > > > >     msg = self._consumer.receive()
> > > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > > 2023-03-09 12:18:14.326 WARN  [0x110900600] ConsumerImpl:126 |
> > > > > [persistent://public/default/my-topic, my-subscription, 0]
> Destroyed
> > > > > consumer which was not properly closed
> > > > > 2023-03-09 12:18:14.326 INFO  [0x110900600] ConsumerImpl:134 |
> > > > > [persistent://public/default/my-topic, my-subscription, 0] Closed
> > > > > consumer for race condition: 0
> > > > > libc++abi: terminating with uncaught exception of type
> > > > > std::__1::bad_weak_ptr: bad_weak_ptr
> > > > > [1]    52874 abort      python37
> > > > > ~/codebase/pulsar-client-python/examples/consumer.py
> > > > > ```
> > > > >
> > > > > This issue also exists in python 3.10.8. But it worked fine when I
> > > > > upgraded it to the latest version of python 3.10: 3.10.10.
> > > > > However, python 3.7.16, which is the latest version of python 3.7
> > > > > still not working.
> > > > >
> > > > > Not sure if it's a python issue, but only some python versions have
> > > > > fixed it. Could you take a look again?
> > > > >
> > > > > Thanks,
> > > > > Zike Yang
> > > > >
> > > > > On Wed, Mar 8, 2023 at 5:51 PM Yunze Xu
> <yz...@streamnative.io.invalid> wrote:
> > > > > >
> > > > > > This is the 4th release candidate for Apache Pulsar Client
> Python,
> > > > > > version 3.1.0.
> > > > > >
> > > > > > It fixes the following issues:
> > > > > >
> https://github.com/apache/pulsar-client-python/milestone/2?closed=1
> > > > > >
> > > > > > *** Please download, test and vote on this release. This vote
> will
> > > > > > stay open for at least 72 hours ***
> > > > > >
> > > > > > Python wheels:
> > > > > >
> https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/
> > > > > >
> > > > > > The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11.
> The
> > > > > > supported platforms and architectures are:
> > > > > > - Windows x86_64 (windows/)
> > > > > > - glibc-based Linux x86_64 (linux-glibc-x86_64/)
> > > > > > - glibc-based Linux arm64 (linux-glibc-arm64/)
> > > > > > - musl-based Linux x86_64 (linux-musl-x86_64/)
> > > > > > - musl-based Linux arm64 (linux-musl-arm64/)
> > > > > > - macOS universal 2 (macos/)
> > > > > >
> > > > > > You can download the wheel (the `.whl` file) according to your
> own OS
> > > > > > and Python version
> > > > > > and install the wheel:
> > > > > > - Windows: `py -m pip install *.whl --force-reinstall`
> > > > > > - Linux or macOS: `python3 -m pip install *.whl
> --force-reinstall`
> > > > > >
> > > > > > The tag to be voted upon: v3.1.0-candidate-4
> > > > > > (b883f42aa4287d46423b85f7af77f604cacf2a7e)
> > > > > >
> https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4
> > > > > >
> > > > > > Pulsar's KEYS file containing PGP keys you use to sign the
> release:
> > > > > > https://downloads.apache.org/pulsar/KEYS
> > > > > >
> > > > > > Please download the Python wheels and follow the README to test.
>

Re: [VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

Posted by Yunze Xu <yz...@streamnative.io.INVALID>.
Hi Zike,

It's not a regression. This error applies for Python client 3.0.0 as
well. Before 3.0.0, the Python client cannot be interrupted by a
signal. I'd rather treat it as the case that the implementation of
handling the UNIX signals is not so perfect. Here is the issue:
https://github.com/apache/pulsar-client-python/issues/103

Thanks,
Yunze

On Fri, Mar 10, 2023 at 4:25 PM Zike Yang <zi...@apache.org> wrote:
>
> Hi, Yunze
>
> > However, with the latest example, the output should be the following
> > logs if you pressed the Ctrl+C:
>
> Thanks for your explanation. It works fine for me now.
>
> > I think it should not be a blocker, we can open an issue for that. The
> > official example uses a try-except block to avoid this issue.
>
> Will you highlight this in the release note? It seems it has changed
> the default behavior. It's better to provide the user with good
> practice for this.
>
> Thanks,
> Zike Yang
>
> On Thu, Mar 9, 2023 at 10:10 PM Yunze Xu <yz...@streamnative.io.invalid> wrote:
> >
> > The reason is caused by the `client.close()` not being called. You
> > should make sure `client.close()` is called when receiving a SIGINT
> > signal.
> >
> > ```
> > #8  0x00007f194f6aca99 in pulsar::ConsumerImpl::shutdown() [clone .cold] ()
> >    from /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > #9  0x00007f194f79dd74 in pulsar::ConsumerImpl::~ConsumerImpl() ()
> >    from /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > #10 0x00007f195006a71b in
> > pybind11::class_<pulsar::Consumer>::dealloc(pybind11::detail::value_and_holder&)
> > ()
> >    from /usr/local/lib/python3.7/site-packages/_pulsar.cpython-37m-x86_64-linux-gnu.so
> > #11 0x00007f1950039f8e in pybind11::detail::clear_instance(_object*) ()
> >    from /usr/local/lib/python3.7/site-packages/_pulsar.cpython-37m-x86_64-linux-gnu.so
> > #12 0x00007f195003ac5f in pybind11_object_dealloc ()
> >    from /usr/local/lib/python3.7/site-packages/_pulsar.cpython-37m-x86_64-linux-gnu.so
> > #13 0x00007f1950a47927 in dict_dealloc (mp=0x7f194f302320) at
> > Objects/dictobject.c:1905
> > #14 0x00007f1950acc284 in subtype_clear (self=<Consumer at remote
> > 0x7f1950273cd0>) at Objects/typeobject.c:1123
> > #15 0x00007f1950aa793d in delete_garbage (old=0x7f1950c4a000
> > <_PyRuntime+448>, collectable=0x7fff65e5b2a0)
> >     at Modules/gcmodule.c:761
> > #16 collect (generation=2, n_collected=0x0, n_uncollectable=0x0,
> > nofail=1) at Modules/gcmodule.c:913
> > #17 0x00007f1950af92a2 in _PyGC_CollectNoFail () at Modules/gcmodule.c:1602
> > #18 0x00007f1950aec340 in PyImport_Cleanup () at Python/import.c:526
> > #19 0x00007f1950aee5a8 in Py_FinalizeEx () at Python/pylifecycle.c:1199
> > #20 0x00007f1950af6b48 in pymain_main (pymain=0x7fff65e5b510) at
> > Modules/main.c:3127
> > #21 0x00007f1950af6a1e in _Py_UnixMain (argc=<optimized out>,
> > argv=<optimized out>) at Modules/main.c:3160
> > #22 0x00007f1950768d0a in __libc_start_main (main=0x55e11cf1b050
> > <main>, argc=2, argv=0x7fff65e5b668,
> > --Type <RET> for more, q to quit, c to continue without paging--
> >     t>, fini=<optimized out>, rtld_fini=<optimized out>,
> > stack_end=0x7fff65e5b658) at ../csu/libc-start.c:308
> > #23 0x000055e11cf1b08a in _start ()
> > ```
> >
> > I think it should not be a blocker, we can open an issue for that. The
> > official example uses a try-except block to avoid this issue.
> >
> > Thanks,
> > Yunze
> >
> > On Thu, Mar 9, 2023 at 9:48 PM Yunze Xu <yz...@streamnative.io> wrote:
> > >
> > > Hi Zike,
> > >
> > > Did you run the latest example? I still see the exceptional info:
> > >
> > > ```
> > > line 1243, in receive
> > >     msg = self._consumer.receive()
> > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > ```
> > >
> > > However, with the latest example, the output should be the following
> > > logs if you pressed the Ctrl+C:
> > >
> > > ```
> > > ^CStop receiving messages
> > > ```
> > >
> > > Because the exception from `consumer.receive()`  is caught.
> > >
> > > ```python3
> > >     try:
> > >         msg = consumer.receive()
> > >         # ...
> > >     except pulsar.Interrupted:
> > >         print("Stop receiving messages")
> > >         break
> > > ```
> > >
> > > Thanks,
> > > Yunze
> > >
> > > On Thu, Mar 9, 2023 at 3:02 PM Zike Yang <zi...@apache.org> wrote:
> > > >
> > > > Hi Yunze
> > > >
> > > > The crash issue still exists in python 3.7. Here is the log
> > > > ```
> > > > ^CTraceback (most recent call last):
> > > >   File "/Users/aaronrobert/codebase/pulsar-client-python/examples/consumer.py",
> > > > line 32, in <module>
> > > >     msg = consumer.receive()
> > > >   File "/Users/aaronrobert/.pyenv/versions/3.7.16/lib/python3.7/site-packages/pulsar/__init__.py",
> > > > line 1243, in receive
> > > >     msg = self._consumer.receive()
> > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > 2023-03-09 12:18:14.326 WARN  [0x110900600] ConsumerImpl:126 |
> > > > [persistent://public/default/my-topic, my-subscription, 0] Destroyed
> > > > consumer which was not properly closed
> > > > 2023-03-09 12:18:14.326 INFO  [0x110900600] ConsumerImpl:134 |
> > > > [persistent://public/default/my-topic, my-subscription, 0] Closed
> > > > consumer for race condition: 0
> > > > libc++abi: terminating with uncaught exception of type
> > > > std::__1::bad_weak_ptr: bad_weak_ptr
> > > > [1]    52874 abort      python37
> > > > ~/codebase/pulsar-client-python/examples/consumer.py
> > > > ```
> > > >
> > > > This issue also exists in python 3.10.8. But it worked fine when I
> > > > upgraded it to the latest version of python 3.10: 3.10.10.
> > > > However, python 3.7.16, which is the latest version of python 3.7
> > > > still not working.
> > > >
> > > > Not sure if it's a python issue, but only some python versions have
> > > > fixed it. Could you take a look again?
> > > >
> > > > Thanks,
> > > > Zike Yang
> > > >
> > > > On Wed, Mar 8, 2023 at 5:51 PM Yunze Xu <yz...@streamnative.io.invalid> wrote:
> > > > >
> > > > > This is the 4th release candidate for Apache Pulsar Client Python,
> > > > > version 3.1.0.
> > > > >
> > > > > It fixes the following issues:
> > > > > https://github.com/apache/pulsar-client-python/milestone/2?closed=1
> > > > >
> > > > > *** Please download, test and vote on this release. This vote will
> > > > > stay open for at least 72 hours ***
> > > > >
> > > > > Python wheels:
> > > > > https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/
> > > > >
> > > > > The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11. The
> > > > > supported platforms and architectures are:
> > > > > - Windows x86_64 (windows/)
> > > > > - glibc-based Linux x86_64 (linux-glibc-x86_64/)
> > > > > - glibc-based Linux arm64 (linux-glibc-arm64/)
> > > > > - musl-based Linux x86_64 (linux-musl-x86_64/)
> > > > > - musl-based Linux arm64 (linux-musl-arm64/)
> > > > > - macOS universal 2 (macos/)
> > > > >
> > > > > You can download the wheel (the `.whl` file) according to your own OS
> > > > > and Python version
> > > > > and install the wheel:
> > > > > - Windows: `py -m pip install *.whl --force-reinstall`
> > > > > - Linux or macOS: `python3 -m pip install *.whl --force-reinstall`
> > > > >
> > > > > The tag to be voted upon: v3.1.0-candidate-4
> > > > > (b883f42aa4287d46423b85f7af77f604cacf2a7e)
> > > > > https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4
> > > > >
> > > > > Pulsar's KEYS file containing PGP keys you use to sign the release:
> > > > > https://downloads.apache.org/pulsar/KEYS
> > > > >
> > > > > Please download the Python wheels and follow the README to test.

Re: [VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

Posted by Zike Yang <zi...@apache.org>.
+1 (non-binding)

My environment:
* macOS x86_64
* python 3.7, 3.9, and 3.10

- Check sha512 checksum
- Check gpg signature
- Install the wheel
- Run the producer and consumer example

Thanks,
Zike Yang

On Fri, Mar 10, 2023 at 4:27 PM PengHui Li <pe...@apache.org> wrote:
>
> +1(binding)
>
> - Install the wheel on macOS (python 3.9)
> - Start a standalone
> - Run the consumer and producer example
>
> Thanks,
> Penghui
>
> On Fri, Mar 10, 2023 at 4:25 PM Zike Yang <zi...@apache.org> wrote:
>
> > Hi, Yunze
> >
> > > However, with the latest example, the output should be the following
> > > logs if you pressed the Ctrl+C:
> >
> > Thanks for your explanation. It works fine for me now.
> >
> > > I think it should not be a blocker, we can open an issue for that. The
> > > official example uses a try-except block to avoid this issue.
> >
> > Will you highlight this in the release note? It seems it has changed
> > the default behavior. It's better to provide the user with good
> > practice for this.
> >
> > Thanks,
> > Zike Yang
> >
> > On Thu, Mar 9, 2023 at 10:10 PM Yunze Xu <yz...@streamnative.io.invalid>
> > wrote:
> > >
> > > The reason is caused by the `client.close()` not being called. You
> > > should make sure `client.close()` is called when receiving a SIGINT
> > > signal.
> > >
> > > ```
> > > #8  0x00007f194f6aca99 in pulsar::ConsumerImpl::shutdown() [clone .cold]
> > ()
> > >    from
> > /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > > #9  0x00007f194f79dd74 in pulsar::ConsumerImpl::~ConsumerImpl() ()
> > >    from
> > /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > > #10 0x00007f195006a71b in
> > >
> > pybind11::class_<pulsar::Consumer>::dealloc(pybind11::detail::value_and_holder&)
> > > ()
> > >    from /usr/local/lib/python3.7/site-packages/_
> > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > #11 0x00007f1950039f8e in pybind11::detail::clear_instance(_object*) ()
> > >    from /usr/local/lib/python3.7/site-packages/_
> > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > #12 0x00007f195003ac5f in pybind11_object_dealloc ()
> > >    from /usr/local/lib/python3.7/site-packages/_
> > pulsar.cpython-37m-x86_64-linux-gnu.so
> > > #13 0x00007f1950a47927 in dict_dealloc (mp=0x7f194f302320) at
> > > Objects/dictobject.c:1905
> > > #14 0x00007f1950acc284 in subtype_clear (self=<Consumer at remote
> > > 0x7f1950273cd0>) at Objects/typeobject.c:1123
> > > #15 0x00007f1950aa793d in delete_garbage (old=0x7f1950c4a000
> > > <_PyRuntime+448>, collectable=0x7fff65e5b2a0)
> > >     at Modules/gcmodule.c:761
> > > #16 collect (generation=2, n_collected=0x0, n_uncollectable=0x0,
> > > nofail=1) at Modules/gcmodule.c:913
> > > #17 0x00007f1950af92a2 in _PyGC_CollectNoFail () at
> > Modules/gcmodule.c:1602
> > > #18 0x00007f1950aec340 in PyImport_Cleanup () at Python/import.c:526
> > > #19 0x00007f1950aee5a8 in Py_FinalizeEx () at Python/pylifecycle.c:1199
> > > #20 0x00007f1950af6b48 in pymain_main (pymain=0x7fff65e5b510) at
> > > Modules/main.c:3127
> > > #21 0x00007f1950af6a1e in _Py_UnixMain (argc=<optimized out>,
> > > argv=<optimized out>) at Modules/main.c:3160
> > > #22 0x00007f1950768d0a in __libc_start_main (main=0x55e11cf1b050
> > > <main>, argc=2, argv=0x7fff65e5b668,
> > > --Type <RET> for more, q to quit, c to continue without paging--
> > >     t>, fini=<optimized out>, rtld_fini=<optimized out>,
> > > stack_end=0x7fff65e5b658) at ../csu/libc-start.c:308
> > > #23 0x000055e11cf1b08a in _start ()
> > > ```
> > >
> > > I think it should not be a blocker, we can open an issue for that. The
> > > official example uses a try-except block to avoid this issue.
> > >
> > > Thanks,
> > > Yunze
> > >
> > > On Thu, Mar 9, 2023 at 9:48 PM Yunze Xu <yz...@streamnative.io> wrote:
> > > >
> > > > Hi Zike,
> > > >
> > > > Did you run the latest example? I still see the exceptional info:
> > > >
> > > > ```
> > > > line 1243, in receive
> > > >     msg = self._consumer.receive()
> > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > ```
> > > >
> > > > However, with the latest example, the output should be the following
> > > > logs if you pressed the Ctrl+C:
> > > >
> > > > ```
> > > > ^CStop receiving messages
> > > > ```
> > > >
> > > > Because the exception from `consumer.receive()`  is caught.
> > > >
> > > > ```python3
> > > >     try:
> > > >         msg = consumer.receive()
> > > >         # ...
> > > >     except pulsar.Interrupted:
> > > >         print("Stop receiving messages")
> > > >         break
> > > > ```
> > > >
> > > > Thanks,
> > > > Yunze
> > > >
> > > > On Thu, Mar 9, 2023 at 3:02 PM Zike Yang <zi...@apache.org> wrote:
> > > > >
> > > > > Hi Yunze
> > > > >
> > > > > The crash issue still exists in python 3.7. Here is the log
> > > > > ```
> > > > > ^CTraceback (most recent call last):
> > > > >   File
> > "/Users/aaronrobert/codebase/pulsar-client-python/examples/consumer.py",
> > > > > line 32, in <module>
> > > > >     msg = consumer.receive()
> > > > >   File
> > "/Users/aaronrobert/.pyenv/versions/3.7.16/lib/python3.7/site-packages/pulsar/__init__.py",
> > > > > line 1243, in receive
> > > > >     msg = self._consumer.receive()
> > > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > > 2023-03-09 12:18:14.326 WARN  [0x110900600] ConsumerImpl:126 |
> > > > > [persistent://public/default/my-topic, my-subscription, 0] Destroyed
> > > > > consumer which was not properly closed
> > > > > 2023-03-09 12:18:14.326 INFO  [0x110900600] ConsumerImpl:134 |
> > > > > [persistent://public/default/my-topic, my-subscription, 0] Closed
> > > > > consumer for race condition: 0
> > > > > libc++abi: terminating with uncaught exception of type
> > > > > std::__1::bad_weak_ptr: bad_weak_ptr
> > > > > [1]    52874 abort      python37
> > > > > ~/codebase/pulsar-client-python/examples/consumer.py
> > > > > ```
> > > > >
> > > > > This issue also exists in python 3.10.8. But it worked fine when I
> > > > > upgraded it to the latest version of python 3.10: 3.10.10.
> > > > > However, python 3.7.16, which is the latest version of python 3.7
> > > > > still not working.
> > > > >
> > > > > Not sure if it's a python issue, but only some python versions have
> > > > > fixed it. Could you take a look again?
> > > > >
> > > > > Thanks,
> > > > > Zike Yang
> > > > >
> > > > > On Wed, Mar 8, 2023 at 5:51 PM Yunze Xu <yz...@streamnative.io.invalid>
> > wrote:
> > > > > >
> > > > > > This is the 4th release candidate for Apache Pulsar Client Python,
> > > > > > version 3.1.0.
> > > > > >
> > > > > > It fixes the following issues:
> > > > > >
> > https://github.com/apache/pulsar-client-python/milestone/2?closed=1
> > > > > >
> > > > > > *** Please download, test and vote on this release. This vote will
> > > > > > stay open for at least 72 hours ***
> > > > > >
> > > > > > Python wheels:
> > > > > >
> > https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/
> > > > > >
> > > > > > The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11. The
> > > > > > supported platforms and architectures are:
> > > > > > - Windows x86_64 (windows/)
> > > > > > - glibc-based Linux x86_64 (linux-glibc-x86_64/)
> > > > > > - glibc-based Linux arm64 (linux-glibc-arm64/)
> > > > > > - musl-based Linux x86_64 (linux-musl-x86_64/)
> > > > > > - musl-based Linux arm64 (linux-musl-arm64/)
> > > > > > - macOS universal 2 (macos/)
> > > > > >
> > > > > > You can download the wheel (the `.whl` file) according to your own
> > OS
> > > > > > and Python version
> > > > > > and install the wheel:
> > > > > > - Windows: `py -m pip install *.whl --force-reinstall`
> > > > > > - Linux or macOS: `python3 -m pip install *.whl --force-reinstall`
> > > > > >
> > > > > > The tag to be voted upon: v3.1.0-candidate-4
> > > > > > (b883f42aa4287d46423b85f7af77f604cacf2a7e)
> > > > > >
> > https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4
> > > > > >
> > > > > > Pulsar's KEYS file containing PGP keys you use to sign the release:
> > > > > > https://downloads.apache.org/pulsar/KEYS
> > > > > >
> > > > > > Please download the Python wheels and follow the README to test.
> >

Re: [VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

Posted by PengHui Li <pe...@apache.org>.
+1(binding)

- Install the wheel on macOS (python 3.9)
- Start a standalone
- Run the consumer and producer example

Thanks,
Penghui

On Fri, Mar 10, 2023 at 4:25 PM Zike Yang <zi...@apache.org> wrote:

> Hi, Yunze
>
> > However, with the latest example, the output should be the following
> > logs if you pressed the Ctrl+C:
>
> Thanks for your explanation. It works fine for me now.
>
> > I think it should not be a blocker, we can open an issue for that. The
> > official example uses a try-except block to avoid this issue.
>
> Will you highlight this in the release note? It seems it has changed
> the default behavior. It's better to provide the user with good
> practice for this.
>
> Thanks,
> Zike Yang
>
> On Thu, Mar 9, 2023 at 10:10 PM Yunze Xu <yz...@streamnative.io.invalid>
> wrote:
> >
> > The reason is caused by the `client.close()` not being called. You
> > should make sure `client.close()` is called when receiving a SIGINT
> > signal.
> >
> > ```
> > #8  0x00007f194f6aca99 in pulsar::ConsumerImpl::shutdown() [clone .cold]
> ()
> >    from
> /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > #9  0x00007f194f79dd74 in pulsar::ConsumerImpl::~ConsumerImpl() ()
> >    from
> /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> > #10 0x00007f195006a71b in
> >
> pybind11::class_<pulsar::Consumer>::dealloc(pybind11::detail::value_and_holder&)
> > ()
> >    from /usr/local/lib/python3.7/site-packages/_
> pulsar.cpython-37m-x86_64-linux-gnu.so
> > #11 0x00007f1950039f8e in pybind11::detail::clear_instance(_object*) ()
> >    from /usr/local/lib/python3.7/site-packages/_
> pulsar.cpython-37m-x86_64-linux-gnu.so
> > #12 0x00007f195003ac5f in pybind11_object_dealloc ()
> >    from /usr/local/lib/python3.7/site-packages/_
> pulsar.cpython-37m-x86_64-linux-gnu.so
> > #13 0x00007f1950a47927 in dict_dealloc (mp=0x7f194f302320) at
> > Objects/dictobject.c:1905
> > #14 0x00007f1950acc284 in subtype_clear (self=<Consumer at remote
> > 0x7f1950273cd0>) at Objects/typeobject.c:1123
> > #15 0x00007f1950aa793d in delete_garbage (old=0x7f1950c4a000
> > <_PyRuntime+448>, collectable=0x7fff65e5b2a0)
> >     at Modules/gcmodule.c:761
> > #16 collect (generation=2, n_collected=0x0, n_uncollectable=0x0,
> > nofail=1) at Modules/gcmodule.c:913
> > #17 0x00007f1950af92a2 in _PyGC_CollectNoFail () at
> Modules/gcmodule.c:1602
> > #18 0x00007f1950aec340 in PyImport_Cleanup () at Python/import.c:526
> > #19 0x00007f1950aee5a8 in Py_FinalizeEx () at Python/pylifecycle.c:1199
> > #20 0x00007f1950af6b48 in pymain_main (pymain=0x7fff65e5b510) at
> > Modules/main.c:3127
> > #21 0x00007f1950af6a1e in _Py_UnixMain (argc=<optimized out>,
> > argv=<optimized out>) at Modules/main.c:3160
> > #22 0x00007f1950768d0a in __libc_start_main (main=0x55e11cf1b050
> > <main>, argc=2, argv=0x7fff65e5b668,
> > --Type <RET> for more, q to quit, c to continue without paging--
> >     t>, fini=<optimized out>, rtld_fini=<optimized out>,
> > stack_end=0x7fff65e5b658) at ../csu/libc-start.c:308
> > #23 0x000055e11cf1b08a in _start ()
> > ```
> >
> > I think it should not be a blocker, we can open an issue for that. The
> > official example uses a try-except block to avoid this issue.
> >
> > Thanks,
> > Yunze
> >
> > On Thu, Mar 9, 2023 at 9:48 PM Yunze Xu <yz...@streamnative.io> wrote:
> > >
> > > Hi Zike,
> > >
> > > Did you run the latest example? I still see the exceptional info:
> > >
> > > ```
> > > line 1243, in receive
> > >     msg = self._consumer.receive()
> > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > ```
> > >
> > > However, with the latest example, the output should be the following
> > > logs if you pressed the Ctrl+C:
> > >
> > > ```
> > > ^CStop receiving messages
> > > ```
> > >
> > > Because the exception from `consumer.receive()`  is caught.
> > >
> > > ```python3
> > >     try:
> > >         msg = consumer.receive()
> > >         # ...
> > >     except pulsar.Interrupted:
> > >         print("Stop receiving messages")
> > >         break
> > > ```
> > >
> > > Thanks,
> > > Yunze
> > >
> > > On Thu, Mar 9, 2023 at 3:02 PM Zike Yang <zi...@apache.org> wrote:
> > > >
> > > > Hi Yunze
> > > >
> > > > The crash issue still exists in python 3.7. Here is the log
> > > > ```
> > > > ^CTraceback (most recent call last):
> > > >   File
> "/Users/aaronrobert/codebase/pulsar-client-python/examples/consumer.py",
> > > > line 32, in <module>
> > > >     msg = consumer.receive()
> > > >   File
> "/Users/aaronrobert/.pyenv/versions/3.7.16/lib/python3.7/site-packages/pulsar/__init__.py",
> > > > line 1243, in receive
> > > >     msg = self._consumer.receive()
> > > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > > 2023-03-09 12:18:14.326 WARN  [0x110900600] ConsumerImpl:126 |
> > > > [persistent://public/default/my-topic, my-subscription, 0] Destroyed
> > > > consumer which was not properly closed
> > > > 2023-03-09 12:18:14.326 INFO  [0x110900600] ConsumerImpl:134 |
> > > > [persistent://public/default/my-topic, my-subscription, 0] Closed
> > > > consumer for race condition: 0
> > > > libc++abi: terminating with uncaught exception of type
> > > > std::__1::bad_weak_ptr: bad_weak_ptr
> > > > [1]    52874 abort      python37
> > > > ~/codebase/pulsar-client-python/examples/consumer.py
> > > > ```
> > > >
> > > > This issue also exists in python 3.10.8. But it worked fine when I
> > > > upgraded it to the latest version of python 3.10: 3.10.10.
> > > > However, python 3.7.16, which is the latest version of python 3.7
> > > > still not working.
> > > >
> > > > Not sure if it's a python issue, but only some python versions have
> > > > fixed it. Could you take a look again?
> > > >
> > > > Thanks,
> > > > Zike Yang
> > > >
> > > > On Wed, Mar 8, 2023 at 5:51 PM Yunze Xu <yz...@streamnative.io.invalid>
> wrote:
> > > > >
> > > > > This is the 4th release candidate for Apache Pulsar Client Python,
> > > > > version 3.1.0.
> > > > >
> > > > > It fixes the following issues:
> > > > >
> https://github.com/apache/pulsar-client-python/milestone/2?closed=1
> > > > >
> > > > > *** Please download, test and vote on this release. This vote will
> > > > > stay open for at least 72 hours ***
> > > > >
> > > > > Python wheels:
> > > > >
> https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/
> > > > >
> > > > > The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11. The
> > > > > supported platforms and architectures are:
> > > > > - Windows x86_64 (windows/)
> > > > > - glibc-based Linux x86_64 (linux-glibc-x86_64/)
> > > > > - glibc-based Linux arm64 (linux-glibc-arm64/)
> > > > > - musl-based Linux x86_64 (linux-musl-x86_64/)
> > > > > - musl-based Linux arm64 (linux-musl-arm64/)
> > > > > - macOS universal 2 (macos/)
> > > > >
> > > > > You can download the wheel (the `.whl` file) according to your own
> OS
> > > > > and Python version
> > > > > and install the wheel:
> > > > > - Windows: `py -m pip install *.whl --force-reinstall`
> > > > > - Linux or macOS: `python3 -m pip install *.whl --force-reinstall`
> > > > >
> > > > > The tag to be voted upon: v3.1.0-candidate-4
> > > > > (b883f42aa4287d46423b85f7af77f604cacf2a7e)
> > > > >
> https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4
> > > > >
> > > > > Pulsar's KEYS file containing PGP keys you use to sign the release:
> > > > > https://downloads.apache.org/pulsar/KEYS
> > > > >
> > > > > Please download the Python wheels and follow the README to test.
>

Re: [VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

Posted by Zike Yang <zi...@apache.org>.
Hi, Yunze

> However, with the latest example, the output should be the following
> logs if you pressed the Ctrl+C:

Thanks for your explanation. It works fine for me now.

> I think it should not be a blocker, we can open an issue for that. The
> official example uses a try-except block to avoid this issue.

Will you highlight this in the release note? It seems it has changed
the default behavior. It's better to provide the user with good
practice for this.

Thanks,
Zike Yang

On Thu, Mar 9, 2023 at 10:10 PM Yunze Xu <yz...@streamnative.io.invalid> wrote:
>
> The reason is caused by the `client.close()` not being called. You
> should make sure `client.close()` is called when receiving a SIGINT
> signal.
>
> ```
> #8  0x00007f194f6aca99 in pulsar::ConsumerImpl::shutdown() [clone .cold] ()
>    from /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> #9  0x00007f194f79dd74 in pulsar::ConsumerImpl::~ConsumerImpl() ()
>    from /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
> #10 0x00007f195006a71b in
> pybind11::class_<pulsar::Consumer>::dealloc(pybind11::detail::value_and_holder&)
> ()
>    from /usr/local/lib/python3.7/site-packages/_pulsar.cpython-37m-x86_64-linux-gnu.so
> #11 0x00007f1950039f8e in pybind11::detail::clear_instance(_object*) ()
>    from /usr/local/lib/python3.7/site-packages/_pulsar.cpython-37m-x86_64-linux-gnu.so
> #12 0x00007f195003ac5f in pybind11_object_dealloc ()
>    from /usr/local/lib/python3.7/site-packages/_pulsar.cpython-37m-x86_64-linux-gnu.so
> #13 0x00007f1950a47927 in dict_dealloc (mp=0x7f194f302320) at
> Objects/dictobject.c:1905
> #14 0x00007f1950acc284 in subtype_clear (self=<Consumer at remote
> 0x7f1950273cd0>) at Objects/typeobject.c:1123
> #15 0x00007f1950aa793d in delete_garbage (old=0x7f1950c4a000
> <_PyRuntime+448>, collectable=0x7fff65e5b2a0)
>     at Modules/gcmodule.c:761
> #16 collect (generation=2, n_collected=0x0, n_uncollectable=0x0,
> nofail=1) at Modules/gcmodule.c:913
> #17 0x00007f1950af92a2 in _PyGC_CollectNoFail () at Modules/gcmodule.c:1602
> #18 0x00007f1950aec340 in PyImport_Cleanup () at Python/import.c:526
> #19 0x00007f1950aee5a8 in Py_FinalizeEx () at Python/pylifecycle.c:1199
> #20 0x00007f1950af6b48 in pymain_main (pymain=0x7fff65e5b510) at
> Modules/main.c:3127
> #21 0x00007f1950af6a1e in _Py_UnixMain (argc=<optimized out>,
> argv=<optimized out>) at Modules/main.c:3160
> #22 0x00007f1950768d0a in __libc_start_main (main=0x55e11cf1b050
> <main>, argc=2, argv=0x7fff65e5b668,
> --Type <RET> for more, q to quit, c to continue without paging--
>     t>, fini=<optimized out>, rtld_fini=<optimized out>,
> stack_end=0x7fff65e5b658) at ../csu/libc-start.c:308
> #23 0x000055e11cf1b08a in _start ()
> ```
>
> I think it should not be a blocker, we can open an issue for that. The
> official example uses a try-except block to avoid this issue.
>
> Thanks,
> Yunze
>
> On Thu, Mar 9, 2023 at 9:48 PM Yunze Xu <yz...@streamnative.io> wrote:
> >
> > Hi Zike,
> >
> > Did you run the latest example? I still see the exceptional info:
> >
> > ```
> > line 1243, in receive
> >     msg = self._consumer.receive()
> > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > ```
> >
> > However, with the latest example, the output should be the following
> > logs if you pressed the Ctrl+C:
> >
> > ```
> > ^CStop receiving messages
> > ```
> >
> > Because the exception from `consumer.receive()`  is caught.
> >
> > ```python3
> >     try:
> >         msg = consumer.receive()
> >         # ...
> >     except pulsar.Interrupted:
> >         print("Stop receiving messages")
> >         break
> > ```
> >
> > Thanks,
> > Yunze
> >
> > On Thu, Mar 9, 2023 at 3:02 PM Zike Yang <zi...@apache.org> wrote:
> > >
> > > Hi Yunze
> > >
> > > The crash issue still exists in python 3.7. Here is the log
> > > ```
> > > ^CTraceback (most recent call last):
> > >   File "/Users/aaronrobert/codebase/pulsar-client-python/examples/consumer.py",
> > > line 32, in <module>
> > >     msg = consumer.receive()
> > >   File "/Users/aaronrobert/.pyenv/versions/3.7.16/lib/python3.7/site-packages/pulsar/__init__.py",
> > > line 1243, in receive
> > >     msg = self._consumer.receive()
> > > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > > 2023-03-09 12:18:14.326 WARN  [0x110900600] ConsumerImpl:126 |
> > > [persistent://public/default/my-topic, my-subscription, 0] Destroyed
> > > consumer which was not properly closed
> > > 2023-03-09 12:18:14.326 INFO  [0x110900600] ConsumerImpl:134 |
> > > [persistent://public/default/my-topic, my-subscription, 0] Closed
> > > consumer for race condition: 0
> > > libc++abi: terminating with uncaught exception of type
> > > std::__1::bad_weak_ptr: bad_weak_ptr
> > > [1]    52874 abort      python37
> > > ~/codebase/pulsar-client-python/examples/consumer.py
> > > ```
> > >
> > > This issue also exists in python 3.10.8. But it worked fine when I
> > > upgraded it to the latest version of python 3.10: 3.10.10.
> > > However, python 3.7.16, which is the latest version of python 3.7
> > > still not working.
> > >
> > > Not sure if it's a python issue, but only some python versions have
> > > fixed it. Could you take a look again?
> > >
> > > Thanks,
> > > Zike Yang
> > >
> > > On Wed, Mar 8, 2023 at 5:51 PM Yunze Xu <yz...@streamnative.io.invalid> wrote:
> > > >
> > > > This is the 4th release candidate for Apache Pulsar Client Python,
> > > > version 3.1.0.
> > > >
> > > > It fixes the following issues:
> > > > https://github.com/apache/pulsar-client-python/milestone/2?closed=1
> > > >
> > > > *** Please download, test and vote on this release. This vote will
> > > > stay open for at least 72 hours ***
> > > >
> > > > Python wheels:
> > > > https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/
> > > >
> > > > The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11. The
> > > > supported platforms and architectures are:
> > > > - Windows x86_64 (windows/)
> > > > - glibc-based Linux x86_64 (linux-glibc-x86_64/)
> > > > - glibc-based Linux arm64 (linux-glibc-arm64/)
> > > > - musl-based Linux x86_64 (linux-musl-x86_64/)
> > > > - musl-based Linux arm64 (linux-musl-arm64/)
> > > > - macOS universal 2 (macos/)
> > > >
> > > > You can download the wheel (the `.whl` file) according to your own OS
> > > > and Python version
> > > > and install the wheel:
> > > > - Windows: `py -m pip install *.whl --force-reinstall`
> > > > - Linux or macOS: `python3 -m pip install *.whl --force-reinstall`
> > > >
> > > > The tag to be voted upon: v3.1.0-candidate-4
> > > > (b883f42aa4287d46423b85f7af77f604cacf2a7e)
> > > > https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4
> > > >
> > > > Pulsar's KEYS file containing PGP keys you use to sign the release:
> > > > https://downloads.apache.org/pulsar/KEYS
> > > >
> > > > Please download the Python wheels and follow the README to test.

Re: [VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

Posted by Yunze Xu <yz...@streamnative.io.INVALID>.
The reason is caused by the `client.close()` not being called. You
should make sure `client.close()` is called when receiving a SIGINT
signal.

```
#8  0x00007f194f6aca99 in pulsar::ConsumerImpl::shutdown() [clone .cold] ()
   from /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
#9  0x00007f194f79dd74 in pulsar::ConsumerImpl::~ConsumerImpl() ()
   from /usr/local/lib/python3.7/site-packages/pulsar_client.libs/libpulsar-c7b16888.so
#10 0x00007f195006a71b in
pybind11::class_<pulsar::Consumer>::dealloc(pybind11::detail::value_and_holder&)
()
   from /usr/local/lib/python3.7/site-packages/_pulsar.cpython-37m-x86_64-linux-gnu.so
#11 0x00007f1950039f8e in pybind11::detail::clear_instance(_object*) ()
   from /usr/local/lib/python3.7/site-packages/_pulsar.cpython-37m-x86_64-linux-gnu.so
#12 0x00007f195003ac5f in pybind11_object_dealloc ()
   from /usr/local/lib/python3.7/site-packages/_pulsar.cpython-37m-x86_64-linux-gnu.so
#13 0x00007f1950a47927 in dict_dealloc (mp=0x7f194f302320) at
Objects/dictobject.c:1905
#14 0x00007f1950acc284 in subtype_clear (self=<Consumer at remote
0x7f1950273cd0>) at Objects/typeobject.c:1123
#15 0x00007f1950aa793d in delete_garbage (old=0x7f1950c4a000
<_PyRuntime+448>, collectable=0x7fff65e5b2a0)
    at Modules/gcmodule.c:761
#16 collect (generation=2, n_collected=0x0, n_uncollectable=0x0,
nofail=1) at Modules/gcmodule.c:913
#17 0x00007f1950af92a2 in _PyGC_CollectNoFail () at Modules/gcmodule.c:1602
#18 0x00007f1950aec340 in PyImport_Cleanup () at Python/import.c:526
#19 0x00007f1950aee5a8 in Py_FinalizeEx () at Python/pylifecycle.c:1199
#20 0x00007f1950af6b48 in pymain_main (pymain=0x7fff65e5b510) at
Modules/main.c:3127
#21 0x00007f1950af6a1e in _Py_UnixMain (argc=<optimized out>,
argv=<optimized out>) at Modules/main.c:3160
#22 0x00007f1950768d0a in __libc_start_main (main=0x55e11cf1b050
<main>, argc=2, argv=0x7fff65e5b668,
--Type <RET> for more, q to quit, c to continue without paging--
    t>, fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7fff65e5b658) at ../csu/libc-start.c:308
#23 0x000055e11cf1b08a in _start ()
```

I think it should not be a blocker, we can open an issue for that. The
official example uses a try-except block to avoid this issue.

Thanks,
Yunze

On Thu, Mar 9, 2023 at 9:48 PM Yunze Xu <yz...@streamnative.io> wrote:
>
> Hi Zike,
>
> Did you run the latest example? I still see the exceptional info:
>
> ```
> line 1243, in receive
>     msg = self._consumer.receive()
> _pulsar.Interrupted: Pulsar error: ResultInterrupted
> ```
>
> However, with the latest example, the output should be the following
> logs if you pressed the Ctrl+C:
>
> ```
> ^CStop receiving messages
> ```
>
> Because the exception from `consumer.receive()`  is caught.
>
> ```python3
>     try:
>         msg = consumer.receive()
>         # ...
>     except pulsar.Interrupted:
>         print("Stop receiving messages")
>         break
> ```
>
> Thanks,
> Yunze
>
> On Thu, Mar 9, 2023 at 3:02 PM Zike Yang <zi...@apache.org> wrote:
> >
> > Hi Yunze
> >
> > The crash issue still exists in python 3.7. Here is the log
> > ```
> > ^CTraceback (most recent call last):
> >   File "/Users/aaronrobert/codebase/pulsar-client-python/examples/consumer.py",
> > line 32, in <module>
> >     msg = consumer.receive()
> >   File "/Users/aaronrobert/.pyenv/versions/3.7.16/lib/python3.7/site-packages/pulsar/__init__.py",
> > line 1243, in receive
> >     msg = self._consumer.receive()
> > _pulsar.Interrupted: Pulsar error: ResultInterrupted
> > 2023-03-09 12:18:14.326 WARN  [0x110900600] ConsumerImpl:126 |
> > [persistent://public/default/my-topic, my-subscription, 0] Destroyed
> > consumer which was not properly closed
> > 2023-03-09 12:18:14.326 INFO  [0x110900600] ConsumerImpl:134 |
> > [persistent://public/default/my-topic, my-subscription, 0] Closed
> > consumer for race condition: 0
> > libc++abi: terminating with uncaught exception of type
> > std::__1::bad_weak_ptr: bad_weak_ptr
> > [1]    52874 abort      python37
> > ~/codebase/pulsar-client-python/examples/consumer.py
> > ```
> >
> > This issue also exists in python 3.10.8. But it worked fine when I
> > upgraded it to the latest version of python 3.10: 3.10.10.
> > However, python 3.7.16, which is the latest version of python 3.7
> > still not working.
> >
> > Not sure if it's a python issue, but only some python versions have
> > fixed it. Could you take a look again?
> >
> > Thanks,
> > Zike Yang
> >
> > On Wed, Mar 8, 2023 at 5:51 PM Yunze Xu <yz...@streamnative.io.invalid> wrote:
> > >
> > > This is the 4th release candidate for Apache Pulsar Client Python,
> > > version 3.1.0.
> > >
> > > It fixes the following issues:
> > > https://github.com/apache/pulsar-client-python/milestone/2?closed=1
> > >
> > > *** Please download, test and vote on this release. This vote will
> > > stay open for at least 72 hours ***
> > >
> > > Python wheels:
> > > https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/
> > >
> > > The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11. The
> > > supported platforms and architectures are:
> > > - Windows x86_64 (windows/)
> > > - glibc-based Linux x86_64 (linux-glibc-x86_64/)
> > > - glibc-based Linux arm64 (linux-glibc-arm64/)
> > > - musl-based Linux x86_64 (linux-musl-x86_64/)
> > > - musl-based Linux arm64 (linux-musl-arm64/)
> > > - macOS universal 2 (macos/)
> > >
> > > You can download the wheel (the `.whl` file) according to your own OS
> > > and Python version
> > > and install the wheel:
> > > - Windows: `py -m pip install *.whl --force-reinstall`
> > > - Linux or macOS: `python3 -m pip install *.whl --force-reinstall`
> > >
> > > The tag to be voted upon: v3.1.0-candidate-4
> > > (b883f42aa4287d46423b85f7af77f604cacf2a7e)
> > > https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4
> > >
> > > Pulsar's KEYS file containing PGP keys you use to sign the release:
> > > https://downloads.apache.org/pulsar/KEYS
> > >
> > > Please download the Python wheels and follow the README to test.

Re: [VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

Posted by Yunze Xu <yz...@streamnative.io.INVALID>.
Hi Zike,

Did you run the latest example? I still see the exceptional info:

```
line 1243, in receive
    msg = self._consumer.receive()
_pulsar.Interrupted: Pulsar error: ResultInterrupted
```

However, with the latest example, the output should be the following
logs if you pressed the Ctrl+C:

```
^CStop receiving messages
```

Because the exception from `consumer.receive()`  is caught.

```python3
    try:
        msg = consumer.receive()
        # ...
    except pulsar.Interrupted:
        print("Stop receiving messages")
        break
```

Thanks,
Yunze

On Thu, Mar 9, 2023 at 3:02 PM Zike Yang <zi...@apache.org> wrote:
>
> Hi Yunze
>
> The crash issue still exists in python 3.7. Here is the log
> ```
> ^CTraceback (most recent call last):
>   File "/Users/aaronrobert/codebase/pulsar-client-python/examples/consumer.py",
> line 32, in <module>
>     msg = consumer.receive()
>   File "/Users/aaronrobert/.pyenv/versions/3.7.16/lib/python3.7/site-packages/pulsar/__init__.py",
> line 1243, in receive
>     msg = self._consumer.receive()
> _pulsar.Interrupted: Pulsar error: ResultInterrupted
> 2023-03-09 12:18:14.326 WARN  [0x110900600] ConsumerImpl:126 |
> [persistent://public/default/my-topic, my-subscription, 0] Destroyed
> consumer which was not properly closed
> 2023-03-09 12:18:14.326 INFO  [0x110900600] ConsumerImpl:134 |
> [persistent://public/default/my-topic, my-subscription, 0] Closed
> consumer for race condition: 0
> libc++abi: terminating with uncaught exception of type
> std::__1::bad_weak_ptr: bad_weak_ptr
> [1]    52874 abort      python37
> ~/codebase/pulsar-client-python/examples/consumer.py
> ```
>
> This issue also exists in python 3.10.8. But it worked fine when I
> upgraded it to the latest version of python 3.10: 3.10.10.
> However, python 3.7.16, which is the latest version of python 3.7
> still not working.
>
> Not sure if it's a python issue, but only some python versions have
> fixed it. Could you take a look again?
>
> Thanks,
> Zike Yang
>
> On Wed, Mar 8, 2023 at 5:51 PM Yunze Xu <yz...@streamnative.io.invalid> wrote:
> >
> > This is the 4th release candidate for Apache Pulsar Client Python,
> > version 3.1.0.
> >
> > It fixes the following issues:
> > https://github.com/apache/pulsar-client-python/milestone/2?closed=1
> >
> > *** Please download, test and vote on this release. This vote will
> > stay open for at least 72 hours ***
> >
> > Python wheels:
> > https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/
> >
> > The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11. The
> > supported platforms and architectures are:
> > - Windows x86_64 (windows/)
> > - glibc-based Linux x86_64 (linux-glibc-x86_64/)
> > - glibc-based Linux arm64 (linux-glibc-arm64/)
> > - musl-based Linux x86_64 (linux-musl-x86_64/)
> > - musl-based Linux arm64 (linux-musl-arm64/)
> > - macOS universal 2 (macos/)
> >
> > You can download the wheel (the `.whl` file) according to your own OS
> > and Python version
> > and install the wheel:
> > - Windows: `py -m pip install *.whl --force-reinstall`
> > - Linux or macOS: `python3 -m pip install *.whl --force-reinstall`
> >
> > The tag to be voted upon: v3.1.0-candidate-4
> > (b883f42aa4287d46423b85f7af77f604cacf2a7e)
> > https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4
> >
> > Pulsar's KEYS file containing PGP keys you use to sign the release:
> > https://downloads.apache.org/pulsar/KEYS
> >
> > Please download the Python wheels and follow the README to test.

Re: [VOTE] Pulsar Client Python Release 3.1.0 Candidate 4

Posted by Zike Yang <zi...@apache.org>.
Hi Yunze

The crash issue still exists in python 3.7. Here is the log
```
^CTraceback (most recent call last):
  File "/Users/aaronrobert/codebase/pulsar-client-python/examples/consumer.py",
line 32, in <module>
    msg = consumer.receive()
  File "/Users/aaronrobert/.pyenv/versions/3.7.16/lib/python3.7/site-packages/pulsar/__init__.py",
line 1243, in receive
    msg = self._consumer.receive()
_pulsar.Interrupted: Pulsar error: ResultInterrupted
2023-03-09 12:18:14.326 WARN  [0x110900600] ConsumerImpl:126 |
[persistent://public/default/my-topic, my-subscription, 0] Destroyed
consumer which was not properly closed
2023-03-09 12:18:14.326 INFO  [0x110900600] ConsumerImpl:134 |
[persistent://public/default/my-topic, my-subscription, 0] Closed
consumer for race condition: 0
libc++abi: terminating with uncaught exception of type
std::__1::bad_weak_ptr: bad_weak_ptr
[1]    52874 abort      python37
~/codebase/pulsar-client-python/examples/consumer.py
```

This issue also exists in python 3.10.8. But it worked fine when I
upgraded it to the latest version of python 3.10: 3.10.10.
However, python 3.7.16, which is the latest version of python 3.7
still not working.

Not sure if it's a python issue, but only some python versions have
fixed it. Could you take a look again?

Thanks,
Zike Yang

On Wed, Mar 8, 2023 at 5:51 PM Yunze Xu <yz...@streamnative.io.invalid> wrote:
>
> This is the 4th release candidate for Apache Pulsar Client Python,
> version 3.1.0.
>
> It fixes the following issues:
> https://github.com/apache/pulsar-client-python/milestone/2?closed=1
>
> *** Please download, test and vote on this release. This vote will
> stay open for at least 72 hours ***
>
> Python wheels:
> https://dist.apache.org/repos/dist/dev/pulsar/pulsar-client-python-3.1.0-candidate-4/
>
> The supported python versions are 3.7, 3.8, 3.9, 3.10 and 3.11. The
> supported platforms and architectures are:
> - Windows x86_64 (windows/)
> - glibc-based Linux x86_64 (linux-glibc-x86_64/)
> - glibc-based Linux arm64 (linux-glibc-arm64/)
> - musl-based Linux x86_64 (linux-musl-x86_64/)
> - musl-based Linux arm64 (linux-musl-arm64/)
> - macOS universal 2 (macos/)
>
> You can download the wheel (the `.whl` file) according to your own OS
> and Python version
> and install the wheel:
> - Windows: `py -m pip install *.whl --force-reinstall`
> - Linux or macOS: `python3 -m pip install *.whl --force-reinstall`
>
> The tag to be voted upon: v3.1.0-candidate-4
> (b883f42aa4287d46423b85f7af77f604cacf2a7e)
> https://github.com/apache/pulsar-client-python/releases/tag/v3.1.0-candidate-4
>
> Pulsar's KEYS file containing PGP keys you use to sign the release:
> https://downloads.apache.org/pulsar/KEYS
>
> Please download the Python wheels and follow the README to test.