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 <z...@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 丛搏 <bog...@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 <matteo.me...@gmail.com> 于2023年3月11日周六 00:15写道: > > > > > > +1 (binding) > > > -- > > > Matteo Merli > > > <matteo.me...@gmail.com> > > > > > > > > > On Fri, Mar 10, 2023 at 7:44 AM Yunze Xu <y...@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 <z...@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 > > > > > <y...@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 <y...@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 <z...@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 > > > > <y...@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. > > > >