[Bug] Pulsar client can't have static storage duration
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 42/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- cpp
- Bereich
- distributed-systems
Rechercherichtung
Beginne mit der minimalen statischen pulsar::Client-Reproduktion unter Ubuntu und untersuche pulsar::Client::~Client in /usr/include/pulsar/Client.h. Verwende anschließend den bereitgestellten gdb-Backtrace, um dem Herunterfahren und der Zerstörung des shared-pointer zu folgen. Bestätige, dass der Fehler auftritt, wenn die statische Zerstörung ohne client.close(); ausgeführt wird. Erledigt ist die Aufgabe, wenn das Programm ordnungsgemäß beendet wird, ohne dass ein expliziter close erforderlich ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Search before asking
- I searched in the issues and found nothing similar.
Version
- pulsar client 2.9.0
- ubuntu linux
Minimal reproduce step
int main(int argc, char** argv)
{
static ::pulsar::Client client{"pulsar://0.0.0.0:6650"};
// don't call client.close();
return 0;
}
What did you expect to see?
The program should terminate gracefully, instead it seg faults. If I call client.close(), there is no issue.
What did you see instead?
The program seg faults with the following trace:
In gdb:
Program received signal SIGSEGV, Segmentation fault.
0x000000000000001e in ?? ()
(gdb) bt
#0 0x000000000000001e in ?? ()
#1 0x00007fb5adff4bef in ?? () from /lib/libpulsar.so.2.9.2.13
#2 0x00007fb5adff76e4 in ?? () from /lib/libpulsar.so.2.9.2.13
#3 0x00000000002e0873 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0xb1e400) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:155
#4 0x00000000002e082a in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x51b370 <main::_client+8>) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:730
#5 0x00000000002e0f29 in std::__shared_ptr<pulsar::ClientImpl, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x51b368 <main::_client>) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr_base.h:1169
#6 0x00000000002e0f05 in std::shared_ptr<pulsar::ClientImpl>::~shared_ptr (this=0x51b368 <main::_client>) at /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/shared_ptr.h:103
#7 0x00000000002dfde5 in pulsar::Client::~Client (this=0x51b368 <main::_client>) at /usr/include/pulsar/Client.h:46
#8 0x00007fb5ad93f8a7 in __run_exit_handlers (status=0, listp=0x7fb5adae5718 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:108
#9 0x00007fb5ad93fa60 in __GI_exit (status=<optimized out>) at exit.c:139
#10 0x00007fb5ad91d08a in __libc_start_main (main=0x2df330 <main(int, char**)>, argc=3, argv=0x7ffd9fae0c18, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd9fae0c08) at ../csu/libc-start.c:342
#11 0x00000000002df26e in _start ()
Anything else?
No response
Are you willing to submit a PR?
- I'm willing to submit a PR!
- Vorherrschende Sprache
- C++
- Sterne
- 72
- Forks
- 93
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus apache/pulsar-client-cpp
-
Schwierigkeit 3/5 Ein halber Tag Anfängerfreundlichkeit 62/100
apache/pulsar-client-cpp#623 ·
-
[Bug] MessageTest fails to build with GCC 15.3.0 and 16.2.1 (-Werror=stringop-truncation)Evtl. vergeben @davlgd hat das vor 3 Tagen übernommen. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 25/100
apache/pulsar-client-cpp#621 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
apache/pulsar-client-cpp#620 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
apache/pulsar-client-cpp#619 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 20/100
apache/pulsar-client-cpp#618 ·
Alle Issues in apache/pulsar-client-cpp
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
meshcore-dev/MeshCore#3760 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
deepseek-ai/DeepGEMM-Ascend#29 ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
EchoTools/nevr-runtime#2042 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Download size and speed show scientific notation between 1000 and 1023 unitsEvtl. vergeben @RaphaelFakhri hat das heute übernommen. Offen
Schwierigkeit 2/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
kiwix/kiwix-desktop#1570 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Device Request
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 62/100
dresden-elektronik/deconz-rest-plugin#8686 ·
Maintainer antworten meist innerhalb von 1 Tag