@ohos-ports/confluentinc-kafka-javascript 1.10.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +457 -0
- package/LICENSE.kafkajs +31 -0
- package/LICENSE.node-rdkafka +25 -0
- package/LICENSE.txt +20 -0
- package/README.md +133 -0
- package/binding.gyp +184 -0
- package/build/Release/confluent-kafka-javascript.node +0 -0
- package/build/deps/librdkafka++.so.1 +0 -0
- package/build/deps/librdkafka.Makefile +6 -0
- package/build/deps/librdkafka.so.1 +0 -0
- package/build/deps/librdkafka.target.mk +55 -0
- package/deps/librdkafka/.clang-format +136 -0
- package/deps/librdkafka/.clang-format-cpp +103 -0
- package/deps/librdkafka/.dir-locals.el +10 -0
- package/deps/librdkafka/.formatignore +35 -0
- package/deps/librdkafka/.gdbmacros +19 -0
- package/deps/librdkafka/CHANGELOG.md +2477 -0
- package/deps/librdkafka/CMakeLists.txt +291 -0
- package/deps/librdkafka/CODE_OF_CONDUCT.md +46 -0
- package/deps/librdkafka/CONFIGURATION.md +212 -0
- package/deps/librdkafka/CONTRIBUTING.md +431 -0
- package/deps/librdkafka/Doxyfile +2375 -0
- package/deps/librdkafka/INTRODUCTION.md +2752 -0
- package/deps/librdkafka/LICENSE +26 -0
- package/deps/librdkafka/LICENSE.cjson +22 -0
- package/deps/librdkafka/LICENSE.crc32c +28 -0
- package/deps/librdkafka/LICENSE.fnv1a +18 -0
- package/deps/librdkafka/LICENSE.hdrhistogram +27 -0
- package/deps/librdkafka/LICENSE.lz4 +26 -0
- package/deps/librdkafka/LICENSE.murmur2 +25 -0
- package/deps/librdkafka/LICENSE.nanopb +22 -0
- package/deps/librdkafka/LICENSE.opentelemetry +203 -0
- package/deps/librdkafka/LICENSE.pycrc +23 -0
- package/deps/librdkafka/LICENSE.queue +31 -0
- package/deps/librdkafka/LICENSE.regexp +5 -0
- package/deps/librdkafka/LICENSE.snappy +36 -0
- package/deps/librdkafka/LICENSE.tinycthread +26 -0
- package/deps/librdkafka/LICENSE.wingetopt +49 -0
- package/deps/librdkafka/LICENSES.txt +625 -0
- package/deps/librdkafka/Makefile +125 -0
- package/deps/librdkafka/README.md +201 -0
- package/deps/librdkafka/README.win32 +26 -0
- package/deps/librdkafka/STATISTICS.md +624 -0
- package/deps/librdkafka/configure +214 -0
- package/deps/librdkafka/configure.self +341 -0
- package/deps/librdkafka/dev-conf.sh +123 -0
- package/deps/librdkafka/lds-gen.py +73 -0
- package/deps/librdkafka/mainpage.doxy +40 -0
- package/deps/librdkafka/mklove/Makefile.base +329 -0
- package/deps/librdkafka/mklove/modules/configure.atomics +144 -0
- package/deps/librdkafka/mklove/modules/configure.base +2484 -0
- package/deps/librdkafka/mklove/modules/configure.builtin +70 -0
- package/deps/librdkafka/mklove/modules/configure.cc +186 -0
- package/deps/librdkafka/mklove/modules/configure.cxx +8 -0
- package/deps/librdkafka/mklove/modules/configure.fileversion +65 -0
- package/deps/librdkafka/mklove/modules/configure.gitversion +29 -0
- package/deps/librdkafka/mklove/modules/configure.good_cflags +18 -0
- package/deps/librdkafka/mklove/modules/configure.host +132 -0
- package/deps/librdkafka/mklove/modules/configure.lib +49 -0
- package/deps/librdkafka/mklove/modules/configure.libcurl +99 -0
- package/deps/librdkafka/mklove/modules/configure.libsasl2 +36 -0
- package/deps/librdkafka/mklove/modules/configure.libssl +147 -0
- package/deps/librdkafka/mklove/modules/configure.libzstd +58 -0
- package/deps/librdkafka/mklove/modules/configure.parseversion +95 -0
- package/deps/librdkafka/mklove/modules/configure.pic +16 -0
- package/deps/librdkafka/mklove/modules/configure.socket +20 -0
- package/deps/librdkafka/mklove/modules/configure.zlib +61 -0
- package/deps/librdkafka/mklove/modules/patches/README.md +8 -0
- package/deps/librdkafka/mklove/modules/patches/libcurl.0000-no-runtime-linking-check.patch +11 -0
- package/deps/librdkafka/mklove/modules/patches/libssl.0000-osx-rand-include-fix-OpenSSL-PR16409.patch +56 -0
- package/deps/librdkafka/service.yml +182 -0
- package/deps/librdkafka/src/CMakeLists.txt +379 -0
- package/deps/librdkafka/src/Makefile +105 -0
- package/deps/librdkafka/src/README.lz4.md +30 -0
- package/deps/librdkafka/src/cJSON.c +3191 -0
- package/deps/librdkafka/src/cJSON.h +306 -0
- package/deps/librdkafka/src/crc32c.c +430 -0
- package/deps/librdkafka/src/crc32c.h +38 -0
- package/deps/librdkafka/src/generate_proto.sh +66 -0
- package/deps/librdkafka/src/librdkafka_cgrp_synch.png +0 -0
- package/deps/librdkafka/src/lz4.c +2727 -0
- package/deps/librdkafka/src/lz4.h +842 -0
- package/deps/librdkafka/src/lz4frame.c +2078 -0
- package/deps/librdkafka/src/lz4frame.h +692 -0
- package/deps/librdkafka/src/lz4frame_static.h +47 -0
- package/deps/librdkafka/src/lz4hc.c +1631 -0
- package/deps/librdkafka/src/lz4hc.h +413 -0
- package/deps/librdkafka/src/nanopb/pb.h +917 -0
- package/deps/librdkafka/src/nanopb/pb_common.c +388 -0
- package/deps/librdkafka/src/nanopb/pb_common.h +49 -0
- package/deps/librdkafka/src/nanopb/pb_decode.c +1727 -0
- package/deps/librdkafka/src/nanopb/pb_decode.h +193 -0
- package/deps/librdkafka/src/nanopb/pb_encode.c +1000 -0
- package/deps/librdkafka/src/nanopb/pb_encode.h +185 -0
- package/deps/librdkafka/src/opentelemetry/common.pb.c +32 -0
- package/deps/librdkafka/src/opentelemetry/common.pb.h +170 -0
- package/deps/librdkafka/src/opentelemetry/metrics.options +2 -0
- package/deps/librdkafka/src/opentelemetry/metrics.pb.c +67 -0
- package/deps/librdkafka/src/opentelemetry/metrics.pb.h +966 -0
- package/deps/librdkafka/src/opentelemetry/resource.pb.c +12 -0
- package/deps/librdkafka/src/opentelemetry/resource.pb.h +58 -0
- package/deps/librdkafka/src/queue.h +850 -0
- package/deps/librdkafka/src/rd.h +592 -0
- package/deps/librdkafka/src/rdaddr.c +255 -0
- package/deps/librdkafka/src/rdaddr.h +202 -0
- package/deps/librdkafka/src/rdatomic.h +262 -0
- package/deps/librdkafka/src/rdavg.h +260 -0
- package/deps/librdkafka/src/rdavl.c +210 -0
- package/deps/librdkafka/src/rdavl.h +250 -0
- package/deps/librdkafka/src/rdbase64.c +200 -0
- package/deps/librdkafka/src/rdbase64.h +43 -0
- package/deps/librdkafka/src/rdbuf.c +1884 -0
- package/deps/librdkafka/src/rdbuf.h +375 -0
- package/deps/librdkafka/src/rdcrc32.c +114 -0
- package/deps/librdkafka/src/rdcrc32.h +170 -0
- package/deps/librdkafka/src/rddl.c +179 -0
- package/deps/librdkafka/src/rddl.h +43 -0
- package/deps/librdkafka/src/rdendian.h +175 -0
- package/deps/librdkafka/src/rdfloat.h +67 -0
- package/deps/librdkafka/src/rdfnv1a.c +113 -0
- package/deps/librdkafka/src/rdfnv1a.h +35 -0
- package/deps/librdkafka/src/rdgz.c +120 -0
- package/deps/librdkafka/src/rdgz.h +46 -0
- package/deps/librdkafka/src/rdhdrhistogram.c +721 -0
- package/deps/librdkafka/src/rdhdrhistogram.h +87 -0
- package/deps/librdkafka/src/rdhttp.c +831 -0
- package/deps/librdkafka/src/rdhttp.h +101 -0
- package/deps/librdkafka/src/rdinterval.h +177 -0
- package/deps/librdkafka/src/rdkafka.c +7287 -0
- package/deps/librdkafka/src/rdkafka.h +11795 -0
- package/deps/librdkafka/src/rdkafka_admin.c +10165 -0
- package/deps/librdkafka/src/rdkafka_admin.h +658 -0
- package/deps/librdkafka/src/rdkafka_assignment.c +1282 -0
- package/deps/librdkafka/src/rdkafka_assignment.h +73 -0
- package/deps/librdkafka/src/rdkafka_assignor.c +1800 -0
- package/deps/librdkafka/src/rdkafka_assignor.h +402 -0
- package/deps/librdkafka/src/rdkafka_aux.c +409 -0
- package/deps/librdkafka/src/rdkafka_aux.h +174 -0
- package/deps/librdkafka/src/rdkafka_background.c +222 -0
- package/deps/librdkafka/src/rdkafka_broker.c +6736 -0
- package/deps/librdkafka/src/rdkafka_broker.h +851 -0
- package/deps/librdkafka/src/rdkafka_buf.c +543 -0
- package/deps/librdkafka/src/rdkafka_buf.h +1525 -0
- package/deps/librdkafka/src/rdkafka_cert.c +576 -0
- package/deps/librdkafka/src/rdkafka_cert.h +62 -0
- package/deps/librdkafka/src/rdkafka_cgrp.c +8310 -0
- package/deps/librdkafka/src/rdkafka_cgrp.h +589 -0
- package/deps/librdkafka/src/rdkafka_conf.c +5177 -0
- package/deps/librdkafka/src/rdkafka_conf.h +746 -0
- package/deps/librdkafka/src/rdkafka_confval.h +97 -0
- package/deps/librdkafka/src/rdkafka_coord.c +623 -0
- package/deps/librdkafka/src/rdkafka_coord.h +132 -0
- package/deps/librdkafka/src/rdkafka_error.c +228 -0
- package/deps/librdkafka/src/rdkafka_error.h +80 -0
- package/deps/librdkafka/src/rdkafka_event.c +502 -0
- package/deps/librdkafka/src/rdkafka_event.h +126 -0
- package/deps/librdkafka/src/rdkafka_feature.c +898 -0
- package/deps/librdkafka/src/rdkafka_feature.h +104 -0
- package/deps/librdkafka/src/rdkafka_fetcher.c +3820 -0
- package/deps/librdkafka/src/rdkafka_fetcher.h +62 -0
- package/deps/librdkafka/src/rdkafka_header.c +220 -0
- package/deps/librdkafka/src/rdkafka_header.h +76 -0
- package/deps/librdkafka/src/rdkafka_idempotence.c +807 -0
- package/deps/librdkafka/src/rdkafka_idempotence.h +144 -0
- package/deps/librdkafka/src/rdkafka_int.h +1505 -0
- package/deps/librdkafka/src/rdkafka_interceptor.c +842 -0
- package/deps/librdkafka/src/rdkafka_interceptor.h +104 -0
- package/deps/librdkafka/src/rdkafka_lz4.c +450 -0
- package/deps/librdkafka/src/rdkafka_lz4.h +49 -0
- package/deps/librdkafka/src/rdkafka_metadata.c +2347 -0
- package/deps/librdkafka/src/rdkafka_metadata.h +350 -0
- package/deps/librdkafka/src/rdkafka_metadata_cache.c +1183 -0
- package/deps/librdkafka/src/rdkafka_mock.c +4514 -0
- package/deps/librdkafka/src/rdkafka_mock.h +867 -0
- package/deps/librdkafka/src/rdkafka_mock_cgrp.c +1877 -0
- package/deps/librdkafka/src/rdkafka_mock_handlers.c +5255 -0
- package/deps/librdkafka/src/rdkafka_mock_int.h +1005 -0
- package/deps/librdkafka/src/rdkafka_mock_sharegrp.c +1207 -0
- package/deps/librdkafka/src/rdkafka_msg.c +2619 -0
- package/deps/librdkafka/src/rdkafka_msg.h +629 -0
- package/deps/librdkafka/src/rdkafka_msgbatch.h +62 -0
- package/deps/librdkafka/src/rdkafka_msgset.h +105 -0
- package/deps/librdkafka/src/rdkafka_msgset_reader.c +2099 -0
- package/deps/librdkafka/src/rdkafka_msgset_writer.c +1474 -0
- package/deps/librdkafka/src/rdkafka_offset.c +1565 -0
- package/deps/librdkafka/src/rdkafka_offset.h +150 -0
- package/deps/librdkafka/src/rdkafka_op.c +1219 -0
- package/deps/librdkafka/src/rdkafka_op.h +1065 -0
- package/deps/librdkafka/src/rdkafka_partition.c +5109 -0
- package/deps/librdkafka/src/rdkafka_partition.h +1215 -0
- package/deps/librdkafka/src/rdkafka_pattern.c +228 -0
- package/deps/librdkafka/src/rdkafka_pattern.h +70 -0
- package/deps/librdkafka/src/rdkafka_plugin.c +213 -0
- package/deps/librdkafka/src/rdkafka_plugin.h +41 -0
- package/deps/librdkafka/src/rdkafka_proto.h +739 -0
- package/deps/librdkafka/src/rdkafka_protocol.h +131 -0
- package/deps/librdkafka/src/rdkafka_queue.c +1351 -0
- package/deps/librdkafka/src/rdkafka_queue.h +1235 -0
- package/deps/librdkafka/src/rdkafka_range_assignor.c +1748 -0
- package/deps/librdkafka/src/rdkafka_request.c +7298 -0
- package/deps/librdkafka/src/rdkafka_request.h +761 -0
- package/deps/librdkafka/src/rdkafka_roundrobin_assignor.c +123 -0
- package/deps/librdkafka/src/rdkafka_sasl.c +589 -0
- package/deps/librdkafka/src/rdkafka_sasl.h +63 -0
- package/deps/librdkafka/src/rdkafka_sasl_cyrus.c +722 -0
- package/deps/librdkafka/src/rdkafka_sasl_int.h +89 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.c +1833 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.h +52 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.c +1827 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.h +52 -0
- package/deps/librdkafka/src/rdkafka_sasl_plain.c +142 -0
- package/deps/librdkafka/src/rdkafka_sasl_scram.c +858 -0
- package/deps/librdkafka/src/rdkafka_sasl_win32.c +550 -0
- package/deps/librdkafka/src/rdkafka_share_acknowledgement.c +1445 -0
- package/deps/librdkafka/src/rdkafka_share_acknowledgement.h +373 -0
- package/deps/librdkafka/src/rdkafka_ssl.c +2235 -0
- package/deps/librdkafka/src/rdkafka_ssl.h +86 -0
- package/deps/librdkafka/src/rdkafka_sticky_assignor.c +4785 -0
- package/deps/librdkafka/src/rdkafka_subscription.c +411 -0
- package/deps/librdkafka/src/rdkafka_telemetry.c +761 -0
- package/deps/librdkafka/src/rdkafka_telemetry.h +52 -0
- package/deps/librdkafka/src/rdkafka_telemetry_decode.c +1307 -0
- package/deps/librdkafka/src/rdkafka_telemetry_decode.h +59 -0
- package/deps/librdkafka/src/rdkafka_telemetry_encode.c +1309 -0
- package/deps/librdkafka/src/rdkafka_telemetry_encode.h +459 -0
- package/deps/librdkafka/src/rdkafka_timer.c +407 -0
- package/deps/librdkafka/src/rdkafka_timer.h +117 -0
- package/deps/librdkafka/src/rdkafka_topic.c +2382 -0
- package/deps/librdkafka/src/rdkafka_topic.h +369 -0
- package/deps/librdkafka/src/rdkafka_transport.c +1309 -0
- package/deps/librdkafka/src/rdkafka_transport.h +99 -0
- package/deps/librdkafka/src/rdkafka_transport_int.h +100 -0
- package/deps/librdkafka/src/rdkafka_txnmgr.c +3256 -0
- package/deps/librdkafka/src/rdkafka_txnmgr.h +171 -0
- package/deps/librdkafka/src/rdkafka_zstd.c +226 -0
- package/deps/librdkafka/src/rdkafka_zstd.h +57 -0
- package/deps/librdkafka/src/rdlist.c +593 -0
- package/deps/librdkafka/src/rdlist.h +444 -0
- package/deps/librdkafka/src/rdlog.c +89 -0
- package/deps/librdkafka/src/rdlog.h +41 -0
- package/deps/librdkafka/src/rdmap.c +508 -0
- package/deps/librdkafka/src/rdmap.h +492 -0
- package/deps/librdkafka/src/rdmurmur2.c +167 -0
- package/deps/librdkafka/src/rdmurmur2.h +35 -0
- package/deps/librdkafka/src/rdports.c +61 -0
- package/deps/librdkafka/src/rdports.h +38 -0
- package/deps/librdkafka/src/rdposix.h +250 -0
- package/deps/librdkafka/src/rdrand.c +151 -0
- package/deps/librdkafka/src/rdrand.h +72 -0
- package/deps/librdkafka/src/rdregex.c +156 -0
- package/deps/librdkafka/src/rdregex.h +43 -0
- package/deps/librdkafka/src/rdsignal.h +57 -0
- package/deps/librdkafka/src/rdstring.c +645 -0
- package/deps/librdkafka/src/rdstring.h +98 -0
- package/deps/librdkafka/src/rdsysqueue.h +404 -0
- package/deps/librdkafka/src/rdtime.h +356 -0
- package/deps/librdkafka/src/rdtypes.h +86 -0
- package/deps/librdkafka/src/rdunittest.c +564 -0
- package/deps/librdkafka/src/rdunittest.h +232 -0
- package/deps/librdkafka/src/rdunittest_acknowledge.c +1177 -0
- package/deps/librdkafka/src/rdunittest_fetcher.c +1211 -0
- package/deps/librdkafka/src/rdunittest_msgset_errors.c +1521 -0
- package/deps/librdkafka/src/rdvarint.c +134 -0
- package/deps/librdkafka/src/rdvarint.h +165 -0
- package/deps/librdkafka/src/rdwin32.h +382 -0
- package/deps/librdkafka/src/rdxxhash.c +1030 -0
- package/deps/librdkafka/src/rdxxhash.h +328 -0
- package/deps/librdkafka/src/regexp.c +1352 -0
- package/deps/librdkafka/src/regexp.h +41 -0
- package/deps/librdkafka/src/snappy.c +1866 -0
- package/deps/librdkafka/src/snappy.h +62 -0
- package/deps/librdkafka/src/snappy_compat.h +138 -0
- package/deps/librdkafka/src/statistics_schema.json +444 -0
- package/deps/librdkafka/src/tinycthread.c +932 -0
- package/deps/librdkafka/src/tinycthread.h +503 -0
- package/deps/librdkafka/src/tinycthread_extra.c +210 -0
- package/deps/librdkafka/src/tinycthread_extra.h +218 -0
- package/deps/librdkafka/src/win32_config.h +58 -0
- package/deps/librdkafka/src-cpp/CMakeLists.txt +90 -0
- package/deps/librdkafka/src-cpp/ConfImpl.cpp +84 -0
- package/deps/librdkafka/src-cpp/ConsumerImpl.cpp +244 -0
- package/deps/librdkafka/src-cpp/HandleImpl.cpp +436 -0
- package/deps/librdkafka/src-cpp/HeadersImpl.cpp +48 -0
- package/deps/librdkafka/src-cpp/KafkaConsumerImpl.cpp +296 -0
- package/deps/librdkafka/src-cpp/Makefile +55 -0
- package/deps/librdkafka/src-cpp/MessageImpl.cpp +38 -0
- package/deps/librdkafka/src-cpp/MetadataImpl.cpp +170 -0
- package/deps/librdkafka/src-cpp/ProducerImpl.cpp +197 -0
- package/deps/librdkafka/src-cpp/QueueImpl.cpp +70 -0
- package/deps/librdkafka/src-cpp/README.md +16 -0
- package/deps/librdkafka/src-cpp/RdKafka.cpp +59 -0
- package/deps/librdkafka/src-cpp/TopicImpl.cpp +124 -0
- package/deps/librdkafka/src-cpp/TopicPartitionImpl.cpp +57 -0
- package/deps/librdkafka/src-cpp/rdkafkacpp.h +3797 -0
- package/deps/librdkafka/src-cpp/rdkafkacpp_int.h +1641 -0
- package/deps/librdkafka/tests/0000-unittests.c +72 -0
- package/deps/librdkafka/tests/0001-multiobj.c +102 -0
- package/deps/librdkafka/tests/0002-unkpart.c +244 -0
- package/deps/librdkafka/tests/0003-msgmaxsize.c +173 -0
- package/deps/librdkafka/tests/0004-conf.c +934 -0
- package/deps/librdkafka/tests/0005-order.c +133 -0
- package/deps/librdkafka/tests/0006-symbols.c +163 -0
- package/deps/librdkafka/tests/0007-autotopic.c +136 -0
- package/deps/librdkafka/tests/0008-reqacks.c +179 -0
- package/deps/librdkafka/tests/0009-mock_cluster.c +272 -0
- package/deps/librdkafka/tests/0011-produce_batch.c +753 -0
- package/deps/librdkafka/tests/0012-produce_consume.c +537 -0
- package/deps/librdkafka/tests/0013-null-msgs.c +473 -0
- package/deps/librdkafka/tests/0014-reconsume-191.c +512 -0
- package/deps/librdkafka/tests/0015-offset_seeks.c +172 -0
- package/deps/librdkafka/tests/0016-client_swname.c +181 -0
- package/deps/librdkafka/tests/0017-compression.c +140 -0
- package/deps/librdkafka/tests/0018-cgrp_term.c +444 -0
- package/deps/librdkafka/tests/0019-list_groups.c +289 -0
- package/deps/librdkafka/tests/0020-destroy_hang.c +162 -0
- package/deps/librdkafka/tests/0021-rkt_destroy.c +72 -0
- package/deps/librdkafka/tests/0022-consume_batch.c +331 -0
- package/deps/librdkafka/tests/0025-timers.c +147 -0
- package/deps/librdkafka/tests/0026-consume_pause.c +547 -0
- package/deps/librdkafka/tests/0028-long_topicnames.c +79 -0
- package/deps/librdkafka/tests/0029-assign_offset.c +202 -0
- package/deps/librdkafka/tests/0030-offset_commit.c +589 -0
- package/deps/librdkafka/tests/0031-get_offsets.c +235 -0
- package/deps/librdkafka/tests/0033-regex_subscribe.c +536 -0
- package/deps/librdkafka/tests/0034-offset_reset.c +398 -0
- package/deps/librdkafka/tests/0035-api_version.c +73 -0
- package/deps/librdkafka/tests/0036-partial_fetch.c +87 -0
- package/deps/librdkafka/tests/0037-destroy_hang_local.c +85 -0
- package/deps/librdkafka/tests/0038-performance.c +121 -0
- package/deps/librdkafka/tests/0039-event.c +284 -0
- package/deps/librdkafka/tests/0040-io_event.c +257 -0
- package/deps/librdkafka/tests/0041-fetch_max_bytes.c +97 -0
- package/deps/librdkafka/tests/0042-many_topics.c +252 -0
- package/deps/librdkafka/tests/0043-no_connection.c +77 -0
- package/deps/librdkafka/tests/0044-partition_cnt.c +94 -0
- package/deps/librdkafka/tests/0045-subscribe_update.c +1010 -0
- package/deps/librdkafka/tests/0046-rkt_cache.c +65 -0
- package/deps/librdkafka/tests/0047-partial_buf_tmout.c +98 -0
- package/deps/librdkafka/tests/0048-partitioner.c +283 -0
- package/deps/librdkafka/tests/0049-consume_conn_close.c +162 -0
- package/deps/librdkafka/tests/0050-subscribe_adds.c +145 -0
- package/deps/librdkafka/tests/0051-assign_adds.c +126 -0
- package/deps/librdkafka/tests/0052-msg_timestamps.c +238 -0
- package/deps/librdkafka/tests/0053-stats_cb.cpp +527 -0
- package/deps/librdkafka/tests/0054-offset_time.cpp +236 -0
- package/deps/librdkafka/tests/0055-producer_latency.c +539 -0
- package/deps/librdkafka/tests/0056-balanced_group_mt.c +315 -0
- package/deps/librdkafka/tests/0057-invalid_topic.cpp +112 -0
- package/deps/librdkafka/tests/0058-log.cpp +123 -0
- package/deps/librdkafka/tests/0059-bsearch.cpp +241 -0
- package/deps/librdkafka/tests/0060-op_prio.cpp +163 -0
- package/deps/librdkafka/tests/0061-consumer_lag.cpp +295 -0
- package/deps/librdkafka/tests/0062-stats_event.c +126 -0
- package/deps/librdkafka/tests/0063-clusterid.cpp +180 -0
- package/deps/librdkafka/tests/0064-interceptors.c +529 -0
- package/deps/librdkafka/tests/0065-yield.cpp +140 -0
- package/deps/librdkafka/tests/0066-plugins.cpp +143 -0
- package/deps/librdkafka/tests/0067-empty_topic.cpp +151 -0
- package/deps/librdkafka/tests/0068-produce_timeout.c +136 -0
- package/deps/librdkafka/tests/0069-consumer_add_parts.c +119 -0
- package/deps/librdkafka/tests/0070-null_empty.cpp +197 -0
- package/deps/librdkafka/tests/0072-headers_ut.c +448 -0
- package/deps/librdkafka/tests/0073-headers.c +381 -0
- package/deps/librdkafka/tests/0074-producev.c +87 -0
- package/deps/librdkafka/tests/0075-retry.c +290 -0
- package/deps/librdkafka/tests/0076-produce_retry.c +452 -0
- package/deps/librdkafka/tests/0077-compaction.c +366 -0
- package/deps/librdkafka/tests/0078-c_from_cpp.cpp +96 -0
- package/deps/librdkafka/tests/0079-fork.c +93 -0
- package/deps/librdkafka/tests/0080-admin_ut.c +3095 -0
- package/deps/librdkafka/tests/0081-admin.c +5633 -0
- package/deps/librdkafka/tests/0082-fetch_max_bytes.cpp +137 -0
- package/deps/librdkafka/tests/0083-cb_event.c +233 -0
- package/deps/librdkafka/tests/0084-destroy_flags.c +208 -0
- package/deps/librdkafka/tests/0085-headers.cpp +392 -0
- package/deps/librdkafka/tests/0086-purge.c +368 -0
- package/deps/librdkafka/tests/0088-produce_metadata_timeout.c +162 -0
- package/deps/librdkafka/tests/0089-max_poll_interval.c +511 -0
- package/deps/librdkafka/tests/0090-idempotence.c +171 -0
- package/deps/librdkafka/tests/0091-max_poll_interval_timeout.c +295 -0
- package/deps/librdkafka/tests/0092-mixed_msgver.c +103 -0
- package/deps/librdkafka/tests/0093-holb.c +200 -0
- package/deps/librdkafka/tests/0094-idempotence_msg_timeout.c +231 -0
- package/deps/librdkafka/tests/0095-all_brokers_down.cpp +122 -0
- package/deps/librdkafka/tests/0097-ssl_verify.cpp +674 -0
- package/deps/librdkafka/tests/0098-consumer-txn.cpp +1218 -0
- package/deps/librdkafka/tests/0099-commit_metadata.c +194 -0
- package/deps/librdkafka/tests/0100-thread_interceptors.cpp +195 -0
- package/deps/librdkafka/tests/0101-fetch-from-follower.cpp +446 -0
- package/deps/librdkafka/tests/0102-static_group_rebalance.c +836 -0
- package/deps/librdkafka/tests/0103-transactions.c +1383 -0
- package/deps/librdkafka/tests/0104-fetch_from_follower_mock.c +625 -0
- package/deps/librdkafka/tests/0105-transactions_mock.c +3930 -0
- package/deps/librdkafka/tests/0106-cgrp_sess_timeout.c +318 -0
- package/deps/librdkafka/tests/0107-topic_recreate.c +259 -0
- package/deps/librdkafka/tests/0109-auto_create_topics.cpp +278 -0
- package/deps/librdkafka/tests/0110-batch_size.cpp +182 -0
- package/deps/librdkafka/tests/0111-delay_create_topics.cpp +127 -0
- package/deps/librdkafka/tests/0112-assign_unknown_part.c +87 -0
- package/deps/librdkafka/tests/0113-cooperative_rebalance.cpp +3473 -0
- package/deps/librdkafka/tests/0114-sticky_partitioning.cpp +176 -0
- package/deps/librdkafka/tests/0115-producer_auth.cpp +182 -0
- package/deps/librdkafka/tests/0116-kafkaconsumer_close.cpp +216 -0
- package/deps/librdkafka/tests/0117-mock_errors.c +331 -0
- package/deps/librdkafka/tests/0118-commit_rebalance.c +154 -0
- package/deps/librdkafka/tests/0119-consumer_auth.cpp +167 -0
- package/deps/librdkafka/tests/0120-asymmetric_subscription.c +185 -0
- package/deps/librdkafka/tests/0121-clusterid.c +115 -0
- package/deps/librdkafka/tests/0122-buffer_cleaning_after_rebalance.c +227 -0
- package/deps/librdkafka/tests/0123-connections_max_idle.c +98 -0
- package/deps/librdkafka/tests/0124-openssl_invalid_engine.c +69 -0
- package/deps/librdkafka/tests/0125-immediate_flush.c +144 -0
- package/deps/librdkafka/tests/0126-oauthbearer_oidc.c +1164 -0
- package/deps/librdkafka/tests/0127-fetch_queue_backoff.cpp +165 -0
- package/deps/librdkafka/tests/0128-sasl_callback_queue.cpp +217 -0
- package/deps/librdkafka/tests/0129-fetch_aborted_msgs.c +79 -0
- package/deps/librdkafka/tests/0130-store_offsets.c +178 -0
- package/deps/librdkafka/tests/0131-connect_timeout.c +81 -0
- package/deps/librdkafka/tests/0132-strategy_ordering.c +179 -0
- package/deps/librdkafka/tests/0133-ssl_keys.c +150 -0
- package/deps/librdkafka/tests/0134-ssl_provider.c +92 -0
- package/deps/librdkafka/tests/0135-sasl_credentials.cpp +279 -0
- package/deps/librdkafka/tests/0136-resolve_cb.c +181 -0
- package/deps/librdkafka/tests/0137-barrier_batch_consume.c +752 -0
- package/deps/librdkafka/tests/0138-admin_mock.c +281 -0
- package/deps/librdkafka/tests/0139-offset_validation_mock.c +950 -0
- package/deps/librdkafka/tests/0140-commit_metadata.cpp +108 -0
- package/deps/librdkafka/tests/0142-reauthentication.c +931 -0
- package/deps/librdkafka/tests/0143-exponential_backoff_mock.c +552 -0
- package/deps/librdkafka/tests/0144-idempotence_mock.c +373 -0
- package/deps/librdkafka/tests/0145-pause_resume_mock.c +119 -0
- package/deps/librdkafka/tests/0146-metadata_mock.c +505 -0
- package/deps/librdkafka/tests/0147-consumer_group_consumer_mock.c +1210 -0
- package/deps/librdkafka/tests/0148-offset_fetch_commit_error_mock.c +569 -0
- package/deps/librdkafka/tests/0149-broker-same-host-port.c +140 -0
- package/deps/librdkafka/tests/0150-telemetry_mock.c +651 -0
- package/deps/librdkafka/tests/0151-purge-brokers.c +566 -0
- package/deps/librdkafka/tests/0152-rebootstrap.c +59 -0
- package/deps/librdkafka/tests/0153-memberid.c +128 -0
- package/deps/librdkafka/tests/0155-share_group_heartbeat_mock.c +2695 -0
- package/deps/librdkafka/tests/0156-share_consumer_fetch_mock.c +1551 -0
- package/deps/librdkafka/tests/0157-share_consumer_ack_mock.c +1788 -0
- package/deps/librdkafka/tests/0158-share_consumer_transactions_mock.c +467 -0
- package/deps/librdkafka/tests/0170-share_consumer_subscription.c +2192 -0
- package/deps/librdkafka/tests/0171-share_consumer_consume.c +2150 -0
- package/deps/librdkafka/tests/0172-share_consumer_acknowledge.c +1919 -0
- package/deps/librdkafka/tests/0173-share_consumer_commit_async.c +2735 -0
- package/deps/librdkafka/tests/0174-share_consumer_concurrency.c +1434 -0
- package/deps/librdkafka/tests/0175-share_consumer_groups.c +574 -0
- package/deps/librdkafka/tests/0176-share_consumer_commit_sync.c +2986 -0
- package/deps/librdkafka/tests/0177-share_consumer_transactions.c +1815 -0
- package/deps/librdkafka/tests/0178-share_consumer_close.c +2102 -0
- package/deps/librdkafka/tests/0179-share_consumer_destroy.c +2482 -0
- package/deps/librdkafka/tests/0180-share_consumer_config.c +1677 -0
- package/deps/librdkafka/tests/0181-share_consumer_topic_delete.c +354 -0
- package/deps/librdkafka/tests/0182-share_consumer_error_handling_mock.c +3358 -0
- package/deps/librdkafka/tests/0183-share_consumer_leader_change_mock.c +1234 -0
- package/deps/librdkafka/tests/0184-share_consumer_topic_recreate.c +1356 -0
- package/deps/librdkafka/tests/0185-share_consumer_max_poll_interval.c +557 -0
- package/deps/librdkafka/tests/0186-share_consumer_fatal_error.c +360 -0
- package/deps/librdkafka/tests/0190-share_consumer_telemetry.c +387 -0
- package/deps/librdkafka/tests/1000-unktopic.c +164 -0
- package/deps/librdkafka/tests/8000-idle.cpp +60 -0
- package/deps/librdkafka/tests/8001-fetch_from_follower_mock_manual.c +113 -0
- package/deps/librdkafka/tests/CMakeLists.txt +193 -0
- package/deps/librdkafka/tests/LibrdkafkaTestApp.py +291 -0
- package/deps/librdkafka/tests/Makefile +182 -0
- package/deps/librdkafka/tests/README.md +514 -0
- package/deps/librdkafka/tests/autotest.sh +33 -0
- package/deps/librdkafka/tests/backtrace.gdb +30 -0
- package/deps/librdkafka/tests/broker_version_tests.py +315 -0
- package/deps/librdkafka/tests/buildbox.sh +17 -0
- package/deps/librdkafka/tests/cleanup-checker-tests.sh +20 -0
- package/deps/librdkafka/tests/cluster_testing.py +203 -0
- package/deps/librdkafka/tests/delete-test-topics.sh +56 -0
- package/deps/librdkafka/tests/fixtures/oauthbearer/jwt_assertion_template.json +10 -0
- package/deps/librdkafka/tests/fixtures/ssl/Makefile +8 -0
- package/deps/librdkafka/tests/fixtures/ssl/README.md +13 -0
- package/deps/librdkafka/tests/fixtures/ssl/client.keystore.intermediate.p12 +0 -0
- package/deps/librdkafka/tests/fixtures/ssl/client.keystore.p12 +0 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.intermediate.pem +72 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.pem +50 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.intermediate.key +46 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.key +46 -0
- package/deps/librdkafka/tests/fixtures/ssl/create_keys.sh +168 -0
- package/deps/librdkafka/tests/fuzzers/Makefile +12 -0
- package/deps/librdkafka/tests/fuzzers/README.md +31 -0
- package/deps/librdkafka/tests/fuzzers/fuzz_regex.c +74 -0
- package/deps/librdkafka/tests/fuzzers/helpers.h +90 -0
- package/deps/librdkafka/tests/gen-ssl-certs.sh +165 -0
- package/deps/librdkafka/tests/interactive_broker_version.py +170 -0
- package/deps/librdkafka/tests/interceptor_test/CMakeLists.txt +16 -0
- package/deps/librdkafka/tests/interceptor_test/Makefile +22 -0
- package/deps/librdkafka/tests/interceptor_test/interceptor_test.c +314 -0
- package/deps/librdkafka/tests/interceptor_test/interceptor_test.h +54 -0
- package/deps/librdkafka/tests/java/IncrementalRebalanceCli.java +97 -0
- package/deps/librdkafka/tests/java/Makefile +13 -0
- package/deps/librdkafka/tests/java/Murmur2Cli.java +46 -0
- package/deps/librdkafka/tests/java/README.md +14 -0
- package/deps/librdkafka/tests/java/TransactionProducerCli.java +162 -0
- package/deps/librdkafka/tests/java/run-class.sh +11 -0
- package/deps/librdkafka/tests/librdkafka.suppressions +483 -0
- package/deps/librdkafka/tests/lz4_manual_test.sh +59 -0
- package/deps/librdkafka/tests/multi-broker-version-test.sh +50 -0
- package/deps/librdkafka/tests/parse-refcnt.sh +43 -0
- package/deps/librdkafka/tests/performance_plot.py +115 -0
- package/deps/librdkafka/tests/plugin_test/Makefile +19 -0
- package/deps/librdkafka/tests/plugin_test/plugin_test.c +58 -0
- package/deps/librdkafka/tests/requirements.txt +2 -0
- package/deps/librdkafka/tests/run-all-tests.sh +81 -0
- package/deps/librdkafka/tests/run-consumer-tests.sh +16 -0
- package/deps/librdkafka/tests/run-producer-tests.sh +16 -0
- package/deps/librdkafka/tests/run-test-batches.py +157 -0
- package/deps/librdkafka/tests/run-test.sh +141 -0
- package/deps/librdkafka/tests/rusage.c +249 -0
- package/deps/librdkafka/tests/sasl_test.py +289 -0
- package/deps/librdkafka/tests/scenarios/README.md +6 -0
- package/deps/librdkafka/tests/scenarios/ak23.json +6 -0
- package/deps/librdkafka/tests/scenarios/default.json +5 -0
- package/deps/librdkafka/tests/scenarios/noautocreate.json +5 -0
- package/deps/librdkafka/tests/share_telemetry_verify/share-otel-collector-config.yaml +28 -0
- package/deps/librdkafka/tests/sockem.c +801 -0
- package/deps/librdkafka/tests/sockem.h +85 -0
- package/deps/librdkafka/tests/sockem_ctrl.c +145 -0
- package/deps/librdkafka/tests/sockem_ctrl.h +61 -0
- package/deps/librdkafka/tests/test.c +8376 -0
- package/deps/librdkafka/tests/test.conf.example +27 -0
- package/deps/librdkafka/tests/test.h +1150 -0
- package/deps/librdkafka/tests/testcpp.cpp +131 -0
- package/deps/librdkafka/tests/testcpp.h +388 -0
- package/deps/librdkafka/tests/testshared.h +416 -0
- package/deps/librdkafka/tests/tools/README.md +4 -0
- package/deps/librdkafka/tests/tools/stats/README.md +21 -0
- package/deps/librdkafka/tests/tools/stats/filter.jq +42 -0
- package/deps/librdkafka/tests/tools/stats/graph.py +150 -0
- package/deps/librdkafka/tests/tools/stats/requirements.txt +3 -0
- package/deps/librdkafka/tests/tools/stats/to_csv.py +124 -0
- package/deps/librdkafka/tests/trivup/trivup-0.15.0.tar.gz +0 -0
- package/deps/librdkafka/tests/until-fail.sh +87 -0
- package/deps/librdkafka/tests/xxxx-assign_partition.c +122 -0
- package/deps/librdkafka/tests/xxxx-metadata.cpp +159 -0
- package/deps/librdkafka/vcpkg.json +23 -0
- package/deps/librdkafka/win32/README.md +5 -0
- package/deps/librdkafka/win32/build-package.bat +3 -0
- package/deps/librdkafka/win32/build.bat +19 -0
- package/deps/librdkafka/win32/common.vcxproj +84 -0
- package/deps/librdkafka/win32/interceptor_test/interceptor_test.vcxproj +87 -0
- package/deps/librdkafka/win32/librdkafka.autopkg.template +54 -0
- package/deps/librdkafka/win32/librdkafka.master.testing.targets +13 -0
- package/deps/librdkafka/win32/librdkafka.sln +226 -0
- package/deps/librdkafka/win32/librdkafka.vcxproj +282 -0
- package/deps/librdkafka/win32/librdkafkacpp/librdkafkacpp.vcxproj +104 -0
- package/deps/librdkafka/win32/msbuild.ps1 +58 -0
- package/deps/librdkafka/win32/openssl_engine_example/openssl_engine_example.vcxproj +132 -0
- package/deps/librdkafka/win32/package-zip.ps1 +46 -0
- package/deps/librdkafka/win32/packages/repositories.config +4 -0
- package/deps/librdkafka/win32/push-package.bat +4 -0
- package/deps/librdkafka/win32/rdkafka_complex_consumer_example_cpp/rdkafka_complex_consumer_example_cpp.vcxproj +67 -0
- package/deps/librdkafka/win32/rdkafka_example/rdkafka_example.vcxproj +97 -0
- package/deps/librdkafka/win32/rdkafka_performance/rdkafka_performance.vcxproj +97 -0
- package/deps/librdkafka/win32/setup-msys2.ps1 +47 -0
- package/deps/librdkafka/win32/setup-vcpkg.ps1 +34 -0
- package/deps/librdkafka/win32/tests/test.conf.example +25 -0
- package/deps/librdkafka/win32/tests/tests.vcxproj +278 -0
- package/deps/librdkafka/win32/win_ssl_cert_store/win_ssl_cert_store.vcxproj +132 -0
- package/deps/librdkafka/win32/wingetopt.c +564 -0
- package/deps/librdkafka/win32/wingetopt.h +101 -0
- package/deps/librdkafka/win32/wintime.h +33 -0
- package/deps/librdkafka.gyp +83 -0
- package/deps/windows-install.py +80 -0
- package/index.d.ts +3 -0
- package/lib/admin.js +732 -0
- package/lib/client.js +679 -0
- package/lib/error.js +501 -0
- package/lib/index.js +8 -0
- package/lib/kafka-consumer-stream.js +399 -0
- package/lib/kafka-consumer.js +798 -0
- package/lib/kafkajs/_admin.js +1052 -0
- package/lib/kafkajs/_common.js +887 -0
- package/lib/kafkajs/_consumer.js +2156 -0
- package/lib/kafkajs/_consumer_cache.js +310 -0
- package/lib/kafkajs/_error.js +298 -0
- package/lib/kafkajs/_kafka.js +125 -0
- package/lib/kafkajs/_linked-list.js +220 -0
- package/lib/kafkajs/_producer.js +863 -0
- package/lib/kafkajs/index.js +5 -0
- package/lib/producer/high-level-producer.js +400 -0
- package/lib/producer-stream.js +337 -0
- package/lib/producer.js +405 -0
- package/lib/rdkafka.js +44 -0
- package/lib/tools/ref-counter.js +53 -0
- package/lib/topic-partition.js +91 -0
- package/lib/topic.js +43 -0
- package/lib/util.js +55 -0
- package/librdkafka.js +12 -0
- package/package.json +85 -0
- package/shim/source_location +54 -0
- package/src/admin.cc +1597 -0
- package/src/admin.h +112 -0
- package/src/binding.cc +76 -0
- package/src/binding.h +25 -0
- package/src/callbacks.cc +676 -0
- package/src/callbacks.h +302 -0
- package/src/common.cc +1628 -0
- package/src/common.h +192 -0
- package/src/config.cc +219 -0
- package/src/config.h +61 -0
- package/src/connection.cc +703 -0
- package/src/connection.h +117 -0
- package/src/errors.cc +119 -0
- package/src/errors.h +60 -0
- package/src/kafka-consumer.cc +1539 -0
- package/src/kafka-consumer.h +147 -0
- package/src/producer.cc +917 -0
- package/src/producer.h +124 -0
- package/src/topic.cc +173 -0
- package/src/topic.h +54 -0
- package/src/workers.cc +1714 -0
- package/src/workers.h +690 -0
- package/types/config.d.ts +1269 -0
- package/types/errors.d.ts +373 -0
- package/types/kafkajs.d.ts +568 -0
- package/types/rdkafka.d.ts +571 -0
- package/util/configure.js +32 -0
- package/util/generate-docs.sh +18 -0
- package/util/get-env.js +6 -0
- package/util/test-compile.js +11 -0
- package/util/test-producer-delivery.js +100 -0
|
@@ -0,0 +1,547 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* librdkafka - Apache Kafka C library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2012-2022, Magnus Edenhill
|
|
5
|
+
* 2025, Confluent Inc.
|
|
6
|
+
* All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* Redistribution and use in source and binary forms, with or without
|
|
9
|
+
* modification, are permitted provided that the following conditions are met:
|
|
10
|
+
*
|
|
11
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
12
|
+
* this list of conditions and the following disclaimer.
|
|
13
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
14
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
15
|
+
* and/or other materials provided with the distribution.
|
|
16
|
+
*
|
|
17
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
18
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
19
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
20
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
21
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
22
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
23
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
24
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
25
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
26
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
27
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
#include "test.h"
|
|
31
|
+
|
|
32
|
+
/* Typical include path would be <librdkafka/rdkafka.h>, but this program
|
|
33
|
+
* is built from within the librdkafka source tree and thus differs. */
|
|
34
|
+
#include "rdkafka.h" /* for Kafka driver */
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Consumer: pause and resume.
|
|
39
|
+
* Make sure no messages are lost or duplicated.
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
static void consume_pause(void) {
|
|
45
|
+
const char *topic = test_mk_topic_name(__FUNCTION__, 1);
|
|
46
|
+
const int partition_cnt = 3;
|
|
47
|
+
rd_kafka_t *rk;
|
|
48
|
+
rd_kafka_conf_t *conf;
|
|
49
|
+
rd_kafka_topic_conf_t *tconf;
|
|
50
|
+
rd_kafka_topic_partition_list_t *topics;
|
|
51
|
+
rd_kafka_resp_err_t err;
|
|
52
|
+
const int msgcnt = 1000;
|
|
53
|
+
uint64_t testid;
|
|
54
|
+
int it, iterations = 3;
|
|
55
|
+
int msg_base = 0;
|
|
56
|
+
int fails = 0;
|
|
57
|
+
char group_id[32];
|
|
58
|
+
|
|
59
|
+
SUB_TEST();
|
|
60
|
+
|
|
61
|
+
test_conf_init(&conf, &tconf,
|
|
62
|
+
60 + (test_session_timeout_ms * 3 / 1000));
|
|
63
|
+
test_conf_set(conf, "enable.partition.eof", "true");
|
|
64
|
+
test_topic_conf_set(tconf, "auto.offset.reset", "smallest");
|
|
65
|
+
|
|
66
|
+
test_create_topic_wait_exists(NULL, topic, partition_cnt, 1, 10 * 1000);
|
|
67
|
+
|
|
68
|
+
/* Produce messages */
|
|
69
|
+
testid =
|
|
70
|
+
test_produce_msgs_easy(topic, 0, RD_KAFKA_PARTITION_UA, msgcnt);
|
|
71
|
+
|
|
72
|
+
topics = rd_kafka_topic_partition_list_new(1);
|
|
73
|
+
rd_kafka_topic_partition_list_add(topics, topic, -1);
|
|
74
|
+
|
|
75
|
+
for (it = 0; it < iterations; it++) {
|
|
76
|
+
const int pause_cnt = 5;
|
|
77
|
+
int per_pause_msg_cnt = msgcnt / pause_cnt;
|
|
78
|
+
const int pause_time = 1200 /* 1.2s */;
|
|
79
|
+
int eof_cnt = -1;
|
|
80
|
+
int pause;
|
|
81
|
+
rd_kafka_topic_partition_list_t *parts;
|
|
82
|
+
test_msgver_t mv_all;
|
|
83
|
+
int j;
|
|
84
|
+
|
|
85
|
+
test_msgver_init(&mv_all, testid); /* All messages */
|
|
86
|
+
|
|
87
|
+
/* On the last iteration reuse the previous group.id
|
|
88
|
+
* to make consumer start at committed offsets which should
|
|
89
|
+
* also be EOF. This to trigger #1307. */
|
|
90
|
+
if (it < iterations - 1)
|
|
91
|
+
test_str_id_generate(group_id, sizeof(group_id));
|
|
92
|
+
else {
|
|
93
|
+
TEST_SAY("Reusing previous group.id %s\n", group_id);
|
|
94
|
+
per_pause_msg_cnt = 0;
|
|
95
|
+
eof_cnt = partition_cnt;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
TEST_SAY(
|
|
99
|
+
"Iteration %d/%d, using group.id %s, "
|
|
100
|
+
"expecting %d messages/pause and %d EOFs\n",
|
|
101
|
+
it, iterations - 1, group_id, per_pause_msg_cnt, eof_cnt);
|
|
102
|
+
|
|
103
|
+
rk = test_create_consumer(group_id, NULL,
|
|
104
|
+
rd_kafka_conf_dup(conf),
|
|
105
|
+
rd_kafka_topic_conf_dup(tconf));
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
TEST_SAY("Subscribing to %d topic(s): %s\n", topics->cnt,
|
|
109
|
+
topics->elems[0].topic);
|
|
110
|
+
if ((err = rd_kafka_subscribe(rk, topics)))
|
|
111
|
+
TEST_FAIL("Failed to subscribe: %s\n",
|
|
112
|
+
rd_kafka_err2str(err));
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
for (pause = 0; pause < pause_cnt; pause++) {
|
|
116
|
+
int rcnt;
|
|
117
|
+
test_timing_t t_assignment;
|
|
118
|
+
test_msgver_t mv;
|
|
119
|
+
|
|
120
|
+
test_msgver_init(&mv, testid);
|
|
121
|
+
mv.fwd = &mv_all;
|
|
122
|
+
|
|
123
|
+
/* Consume sub-part of the messages. */
|
|
124
|
+
TEST_SAY(
|
|
125
|
+
"Pause-Iteration #%d: Consume %d messages at "
|
|
126
|
+
"msg_base %d\n",
|
|
127
|
+
pause, per_pause_msg_cnt, msg_base);
|
|
128
|
+
rcnt = test_consumer_poll(
|
|
129
|
+
"consume.part", rk, testid, eof_cnt, msg_base,
|
|
130
|
+
per_pause_msg_cnt == 0 ? -1 : per_pause_msg_cnt,
|
|
131
|
+
&mv);
|
|
132
|
+
|
|
133
|
+
TEST_ASSERT(rcnt == per_pause_msg_cnt,
|
|
134
|
+
"expected %d messages, got %d",
|
|
135
|
+
per_pause_msg_cnt, rcnt);
|
|
136
|
+
|
|
137
|
+
test_msgver_verify("pause.iteration", &mv,
|
|
138
|
+
TEST_MSGVER_PER_PART, msg_base,
|
|
139
|
+
per_pause_msg_cnt);
|
|
140
|
+
test_msgver_clear(&mv);
|
|
141
|
+
|
|
142
|
+
msg_base += per_pause_msg_cnt;
|
|
143
|
+
|
|
144
|
+
TIMING_START(&t_assignment, "rd_kafka_assignment()");
|
|
145
|
+
if ((err = rd_kafka_assignment(rk, &parts)))
|
|
146
|
+
TEST_FAIL("failed to get assignment: %s\n",
|
|
147
|
+
rd_kafka_err2str(err));
|
|
148
|
+
TIMING_STOP(&t_assignment);
|
|
149
|
+
|
|
150
|
+
TEST_ASSERT(parts->cnt > 0,
|
|
151
|
+
"parts->cnt %d, expected > 0", parts->cnt);
|
|
152
|
+
|
|
153
|
+
TEST_SAY("Now pausing %d partition(s) for %dms\n",
|
|
154
|
+
parts->cnt, pause_time);
|
|
155
|
+
if ((err = rd_kafka_pause_partitions(rk, parts)))
|
|
156
|
+
TEST_FAIL("Failed to pause: %s\n",
|
|
157
|
+
rd_kafka_err2str(err));
|
|
158
|
+
|
|
159
|
+
/* Check per-partition errors */
|
|
160
|
+
for (j = 0; j < parts->cnt; j++) {
|
|
161
|
+
if (parts->elems[j].err) {
|
|
162
|
+
TEST_WARN(
|
|
163
|
+
"pause failure for "
|
|
164
|
+
"%s %" PRId32 "]: %s\n",
|
|
165
|
+
parts->elems[j].topic,
|
|
166
|
+
parts->elems[j].partition,
|
|
167
|
+
rd_kafka_err2str(
|
|
168
|
+
parts->elems[j].err));
|
|
169
|
+
fails++;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
TEST_ASSERT(fails == 0, "See previous warnings\n");
|
|
173
|
+
|
|
174
|
+
TEST_SAY(
|
|
175
|
+
"Waiting for %dms, should not receive any "
|
|
176
|
+
"messages during this time\n",
|
|
177
|
+
pause_time);
|
|
178
|
+
|
|
179
|
+
test_consumer_poll_no_msgs("silence.while.paused", rk,
|
|
180
|
+
testid, pause_time);
|
|
181
|
+
|
|
182
|
+
TEST_SAY("Resuming %d partitions\n", parts->cnt);
|
|
183
|
+
if ((err = rd_kafka_resume_partitions(rk, parts)))
|
|
184
|
+
TEST_FAIL("Failed to resume: %s\n",
|
|
185
|
+
rd_kafka_err2str(err));
|
|
186
|
+
|
|
187
|
+
/* Check per-partition errors */
|
|
188
|
+
for (j = 0; j < parts->cnt; j++) {
|
|
189
|
+
if (parts->elems[j].err) {
|
|
190
|
+
TEST_WARN(
|
|
191
|
+
"resume failure for "
|
|
192
|
+
"%s %" PRId32 "]: %s\n",
|
|
193
|
+
parts->elems[j].topic,
|
|
194
|
+
parts->elems[j].partition,
|
|
195
|
+
rd_kafka_err2str(
|
|
196
|
+
parts->elems[j].err));
|
|
197
|
+
fails++;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
TEST_ASSERT(fails == 0, "See previous warnings\n");
|
|
201
|
+
|
|
202
|
+
rd_kafka_topic_partition_list_destroy(parts);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (per_pause_msg_cnt > 0)
|
|
206
|
+
test_msgver_verify("all.msgs", &mv_all,
|
|
207
|
+
TEST_MSGVER_ALL_PART, 0, msgcnt);
|
|
208
|
+
else
|
|
209
|
+
test_msgver_verify("all.msgs", &mv_all,
|
|
210
|
+
TEST_MSGVER_ALL_PART, 0, 0);
|
|
211
|
+
test_msgver_clear(&mv_all);
|
|
212
|
+
|
|
213
|
+
/* Should now not see any more messages. */
|
|
214
|
+
test_consumer_poll_no_msgs("end.exp.no.msgs", rk, testid, 3000);
|
|
215
|
+
|
|
216
|
+
test_consumer_close(rk);
|
|
217
|
+
|
|
218
|
+
/* Hangs if bug isn't fixed */
|
|
219
|
+
rd_kafka_destroy(rk);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
rd_kafka_topic_partition_list_destroy(topics);
|
|
223
|
+
rd_kafka_conf_destroy(conf);
|
|
224
|
+
rd_kafka_topic_conf_destroy(tconf);
|
|
225
|
+
|
|
226
|
+
SUB_TEST_PASS();
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* @brief Verify that the paused partition state is not used after
|
|
233
|
+
* the partition has been re-assigned.
|
|
234
|
+
*
|
|
235
|
+
* 1. Produce N messages
|
|
236
|
+
* 2. Consume N/4 messages
|
|
237
|
+
* 3. Pause partitions
|
|
238
|
+
* 4. Manually commit offset N/2
|
|
239
|
+
* 5. Unassign partitions
|
|
240
|
+
* 6. Assign partitions again
|
|
241
|
+
* 7. Verify that consumption starts at N/2 and not N/4
|
|
242
|
+
*/
|
|
243
|
+
static void consume_pause_resume_after_reassign(void) {
|
|
244
|
+
const char *topic = test_mk_topic_name(__FUNCTION__, 1);
|
|
245
|
+
const int32_t partition = 0;
|
|
246
|
+
const int msgcnt = 4000;
|
|
247
|
+
rd_kafka_t *rk;
|
|
248
|
+
rd_kafka_conf_t *conf;
|
|
249
|
+
rd_kafka_topic_partition_list_t *partitions, *pos;
|
|
250
|
+
rd_kafka_resp_err_t err;
|
|
251
|
+
int exp_msg_cnt;
|
|
252
|
+
uint64_t testid;
|
|
253
|
+
int r;
|
|
254
|
+
int msg_base = 0;
|
|
255
|
+
test_msgver_t mv;
|
|
256
|
+
rd_kafka_topic_partition_t *toppar;
|
|
257
|
+
|
|
258
|
+
SUB_TEST();
|
|
259
|
+
|
|
260
|
+
test_conf_init(&conf, NULL, 60);
|
|
261
|
+
|
|
262
|
+
test_create_topic_wait_exists(NULL, topic, (int)partition + 1, 1,
|
|
263
|
+
10 * 1000);
|
|
264
|
+
|
|
265
|
+
/* Produce messages */
|
|
266
|
+
testid = test_produce_msgs_easy(topic, 0, partition, msgcnt);
|
|
267
|
+
|
|
268
|
+
/* Set start offset to beginning */
|
|
269
|
+
partitions = rd_kafka_topic_partition_list_new(1);
|
|
270
|
+
toppar =
|
|
271
|
+
rd_kafka_topic_partition_list_add(partitions, topic, partition);
|
|
272
|
+
toppar->offset = RD_KAFKA_OFFSET_BEGINNING;
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Create consumer.
|
|
277
|
+
*/
|
|
278
|
+
test_conf_set(conf, "enable.auto.commit", "false");
|
|
279
|
+
test_conf_set(conf, "enable.partition.eof", "true");
|
|
280
|
+
rk = test_create_consumer(topic, NULL, conf, NULL);
|
|
281
|
+
|
|
282
|
+
test_consumer_assign("assign", rk, partitions);
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
exp_msg_cnt = msgcnt / 4;
|
|
286
|
+
TEST_SAY("Consuming first quarter (%d) of messages\n", exp_msg_cnt);
|
|
287
|
+
test_msgver_init(&mv, testid);
|
|
288
|
+
r = test_consumer_poll("consume.first.quarter", rk, testid, 0, msg_base,
|
|
289
|
+
exp_msg_cnt, &mv);
|
|
290
|
+
TEST_ASSERT(r == exp_msg_cnt, "expected %d messages, got %d",
|
|
291
|
+
exp_msg_cnt, r);
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
TEST_SAY("Pausing partitions\n");
|
|
295
|
+
if ((err = rd_kafka_pause_partitions(rk, partitions)))
|
|
296
|
+
TEST_FAIL("Failed to pause: %s", rd_kafka_err2str(err));
|
|
297
|
+
|
|
298
|
+
TEST_SAY("Verifying pause, should see no new messages...\n");
|
|
299
|
+
test_consumer_poll_no_msgs("silence.while.paused", rk, testid, 3000);
|
|
300
|
+
|
|
301
|
+
test_msgver_verify("first.quarter", &mv, TEST_MSGVER_ALL_PART, msg_base,
|
|
302
|
+
exp_msg_cnt);
|
|
303
|
+
test_msgver_clear(&mv);
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
/* Check position */
|
|
307
|
+
pos = rd_kafka_topic_partition_list_copy(partitions);
|
|
308
|
+
if ((err = rd_kafka_position(rk, pos)))
|
|
309
|
+
TEST_FAIL("position() failed: %s", rd_kafka_err2str(err));
|
|
310
|
+
|
|
311
|
+
TEST_ASSERT(!pos->elems[0].err,
|
|
312
|
+
"position() returned error for our partition: %s",
|
|
313
|
+
rd_kafka_err2str(pos->elems[0].err));
|
|
314
|
+
TEST_SAY("Current application consume position is %" PRId64 "\n",
|
|
315
|
+
pos->elems[0].offset);
|
|
316
|
+
TEST_ASSERT(pos->elems[0].offset == (int64_t)exp_msg_cnt,
|
|
317
|
+
"expected position %" PRId64 ", not %" PRId64,
|
|
318
|
+
(int64_t)exp_msg_cnt, pos->elems[0].offset);
|
|
319
|
+
rd_kafka_topic_partition_list_destroy(pos);
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
toppar->offset = (int64_t)(msgcnt / 2);
|
|
323
|
+
TEST_SAY("Committing (yet unread) offset %" PRId64 "\n",
|
|
324
|
+
toppar->offset);
|
|
325
|
+
if ((err = rd_kafka_commit(rk, partitions, 0 /*sync*/)))
|
|
326
|
+
TEST_FAIL("Commit failed: %s", rd_kafka_err2str(err));
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
TEST_SAY("Unassigning\n");
|
|
330
|
+
test_consumer_unassign("Unassign", rk);
|
|
331
|
+
|
|
332
|
+
/* Set start offset to INVALID so that the standard start offset
|
|
333
|
+
* logic kicks in. */
|
|
334
|
+
toppar->offset = RD_KAFKA_OFFSET_INVALID;
|
|
335
|
+
|
|
336
|
+
TEST_SAY("Reassigning\n");
|
|
337
|
+
test_consumer_assign("Reassign", rk, partitions);
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
TEST_SAY("Resuming partitions\n");
|
|
341
|
+
if ((err = rd_kafka_resume_partitions(rk, partitions)))
|
|
342
|
+
TEST_FAIL("Failed to resume: %s", rd_kafka_err2str(err));
|
|
343
|
+
|
|
344
|
+
msg_base = msgcnt / 2;
|
|
345
|
+
exp_msg_cnt = msgcnt / 2;
|
|
346
|
+
TEST_SAY("Consuming second half (%d) of messages at msg_base %d\n",
|
|
347
|
+
exp_msg_cnt, msg_base);
|
|
348
|
+
test_msgver_init(&mv, testid);
|
|
349
|
+
r = test_consumer_poll("consume.second.half", rk, testid, 1 /*exp eof*/,
|
|
350
|
+
msg_base, exp_msg_cnt, &mv);
|
|
351
|
+
TEST_ASSERT(r == exp_msg_cnt, "expected %d messages, got %d",
|
|
352
|
+
exp_msg_cnt, r);
|
|
353
|
+
|
|
354
|
+
test_msgver_verify("second.half", &mv, TEST_MSGVER_ALL_PART, msg_base,
|
|
355
|
+
exp_msg_cnt);
|
|
356
|
+
test_msgver_clear(&mv);
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
rd_kafka_topic_partition_list_destroy(partitions);
|
|
360
|
+
|
|
361
|
+
test_consumer_close(rk);
|
|
362
|
+
|
|
363
|
+
rd_kafka_destroy(rk);
|
|
364
|
+
|
|
365
|
+
SUB_TEST_PASS();
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
static void rebalance_cb(rd_kafka_t *rk,
|
|
370
|
+
rd_kafka_resp_err_t err,
|
|
371
|
+
rd_kafka_topic_partition_list_t *parts,
|
|
372
|
+
void *opaque) {
|
|
373
|
+
rd_kafka_resp_err_t err2;
|
|
374
|
+
|
|
375
|
+
switch (err) {
|
|
376
|
+
case RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS:
|
|
377
|
+
/* Set start offset to beginning,
|
|
378
|
+
* while auto.offset.reset is default at `latest`. */
|
|
379
|
+
|
|
380
|
+
parts->elems[0].offset = RD_KAFKA_OFFSET_BEGINNING;
|
|
381
|
+
test_consumer_assign_by_rebalance_protocol("rebalance", rk,
|
|
382
|
+
parts);
|
|
383
|
+
TEST_SAY("Pausing partitions\n");
|
|
384
|
+
if ((err2 = rd_kafka_pause_partitions(rk, parts)))
|
|
385
|
+
TEST_FAIL("Failed to pause: %s",
|
|
386
|
+
rd_kafka_err2str(err2));
|
|
387
|
+
TEST_SAY("Resuming partitions\n");
|
|
388
|
+
if ((err2 = rd_kafka_resume_partitions(rk, parts)))
|
|
389
|
+
TEST_FAIL("Failed to pause: %s",
|
|
390
|
+
rd_kafka_err2str(err2));
|
|
391
|
+
break;
|
|
392
|
+
default:
|
|
393
|
+
test_consumer_unassign_by_rebalance_protocol("rebalance", rk,
|
|
394
|
+
parts);
|
|
395
|
+
break;
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* @brief Verify that the assigned offset is used after pause+resume
|
|
402
|
+
* if no messages were consumed prior to pause. #2105
|
|
403
|
+
*
|
|
404
|
+
* We do this by setting the start offset to BEGINNING in the rebalance_cb
|
|
405
|
+
* and relying on auto.offset.reset=latest (default) to catch the failure case
|
|
406
|
+
* where the assigned offset was not honoured.
|
|
407
|
+
*/
|
|
408
|
+
static void consume_subscribe_assign_pause_resume(void) {
|
|
409
|
+
const char *topic = test_mk_topic_name(__FUNCTION__, 1);
|
|
410
|
+
const int32_t partition = 0;
|
|
411
|
+
const int msgcnt = 1;
|
|
412
|
+
rd_kafka_t *rk;
|
|
413
|
+
rd_kafka_conf_t *conf;
|
|
414
|
+
uint64_t testid;
|
|
415
|
+
int r;
|
|
416
|
+
test_msgver_t mv;
|
|
417
|
+
|
|
418
|
+
SUB_TEST();
|
|
419
|
+
|
|
420
|
+
test_conf_init(&conf, NULL, 20);
|
|
421
|
+
|
|
422
|
+
test_create_topic_wait_exists(NULL, topic, (int)partition + 1, 1,
|
|
423
|
+
10 * 1000);
|
|
424
|
+
|
|
425
|
+
/* Produce messages */
|
|
426
|
+
testid = test_produce_msgs_easy(topic, 0, partition, msgcnt);
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Create consumer.
|
|
430
|
+
*/
|
|
431
|
+
rd_kafka_conf_set_rebalance_cb(conf, rebalance_cb);
|
|
432
|
+
test_conf_set(conf, "session.timeout.ms", "6000");
|
|
433
|
+
test_conf_set(conf, "enable.partition.eof", "true");
|
|
434
|
+
rk = test_create_consumer(topic, NULL, conf, NULL);
|
|
435
|
+
|
|
436
|
+
test_consumer_subscribe(rk, topic);
|
|
437
|
+
|
|
438
|
+
test_msgver_init(&mv, testid);
|
|
439
|
+
r = test_consumer_poll("consume", rk, testid, 1 /*exp eof*/, 0, msgcnt,
|
|
440
|
+
&mv);
|
|
441
|
+
TEST_ASSERT(r == msgcnt, "expected %d messages, got %d", msgcnt, r);
|
|
442
|
+
|
|
443
|
+
test_msgver_verify("consumed", &mv, TEST_MSGVER_ALL_PART, 0, msgcnt);
|
|
444
|
+
test_msgver_clear(&mv);
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
test_consumer_close(rk);
|
|
448
|
+
|
|
449
|
+
rd_kafka_destroy(rk);
|
|
450
|
+
|
|
451
|
+
SUB_TEST_PASS();
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* @brief seek() prior to pause() may overwrite the seek()ed offset
|
|
457
|
+
* when later resume()ing. #3471
|
|
458
|
+
*/
|
|
459
|
+
static void consume_seek_pause_resume(void) {
|
|
460
|
+
const char *topic = test_mk_topic_name(__FUNCTION__, 1);
|
|
461
|
+
const int32_t partition = 0;
|
|
462
|
+
const int msgcnt = 1000;
|
|
463
|
+
rd_kafka_t *rk;
|
|
464
|
+
rd_kafka_conf_t *conf;
|
|
465
|
+
uint64_t testid;
|
|
466
|
+
int r;
|
|
467
|
+
test_msgver_t mv;
|
|
468
|
+
rd_kafka_topic_partition_list_t *parts;
|
|
469
|
+
|
|
470
|
+
SUB_TEST();
|
|
471
|
+
|
|
472
|
+
test_conf_init(&conf, NULL, 20);
|
|
473
|
+
|
|
474
|
+
test_create_topic_wait_exists(NULL, topic, (int)partition + 1, 1,
|
|
475
|
+
10 * 1000);
|
|
476
|
+
|
|
477
|
+
/* Produce messages */
|
|
478
|
+
testid = test_produce_msgs_easy(topic, 0, partition, msgcnt);
|
|
479
|
+
|
|
480
|
+
/**
|
|
481
|
+
* Create consumer.
|
|
482
|
+
*/
|
|
483
|
+
test_conf_set(conf, "enable.auto.commit", "false");
|
|
484
|
+
test_conf_set(conf, "enable.partition.eof", "true");
|
|
485
|
+
test_conf_set(conf, "auto.offset.reset", "earliest");
|
|
486
|
+
rk = test_create_consumer(topic, NULL, conf, NULL);
|
|
487
|
+
|
|
488
|
+
parts = rd_kafka_topic_partition_list_new(1);
|
|
489
|
+
rd_kafka_topic_partition_list_add(parts, topic, partition);
|
|
490
|
+
|
|
491
|
+
TEST_SAY("Assigning partition\n");
|
|
492
|
+
TEST_CALL_ERR__(rd_kafka_assign(rk, parts));
|
|
493
|
+
|
|
494
|
+
rd_kafka_topic_partition_list_destroy(parts);
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
TEST_SAY("Consuming messages 0..100\n");
|
|
498
|
+
test_msgver_init(&mv, testid);
|
|
499
|
+
r = test_consumer_poll("consume", rk, testid, 0, 0, 100, &mv);
|
|
500
|
+
TEST_ASSERT(r == 100, "expected %d messages, got %d", 100, r);
|
|
501
|
+
|
|
502
|
+
test_msgver_verify("consumed", &mv, TEST_MSGVER_ALL_PART, 0, 100);
|
|
503
|
+
test_msgver_clear(&mv);
|
|
504
|
+
|
|
505
|
+
parts = rd_kafka_topic_partition_list_new(1);
|
|
506
|
+
TEST_SAY("Seeking to offset 500\n");
|
|
507
|
+
rd_kafka_topic_partition_list_add(parts, topic, partition)->offset =
|
|
508
|
+
500;
|
|
509
|
+
TEST_CALL_ERROR__(rd_kafka_seek_partitions(rk, parts, -1));
|
|
510
|
+
|
|
511
|
+
TEST_SAY("Pausing\n");
|
|
512
|
+
TEST_CALL_ERR__(rd_kafka_pause_partitions(rk, parts));
|
|
513
|
+
|
|
514
|
+
TEST_SAY("Waiting a short while for things to settle\n");
|
|
515
|
+
rd_sleep(2);
|
|
516
|
+
|
|
517
|
+
TEST_SAY("Resuming\n");
|
|
518
|
+
TEST_CALL_ERR__(rd_kafka_resume_partitions(rk, parts));
|
|
519
|
+
|
|
520
|
+
TEST_SAY("Consuming remaining messages from offset 500.. hopefully\n");
|
|
521
|
+
r = test_consumer_poll("consume", rk, testid, 1 /*exp eof*/,
|
|
522
|
+
500 /* base msgid */,
|
|
523
|
+
-1 /* remaining messages */, &mv);
|
|
524
|
+
TEST_ASSERT_LATER(r == 500, "expected %d messages, got %d", 500, r);
|
|
525
|
+
|
|
526
|
+
test_msgver_verify("consumed", &mv, TEST_MSGVER_ALL_PART, 500, 500);
|
|
527
|
+
test_msgver_clear(&mv);
|
|
528
|
+
|
|
529
|
+
rd_kafka_topic_partition_list_destroy(parts);
|
|
530
|
+
|
|
531
|
+
test_consumer_close(rk);
|
|
532
|
+
|
|
533
|
+
rd_kafka_destroy(rk);
|
|
534
|
+
|
|
535
|
+
SUB_TEST_PASS();
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
int main_0026_consume_pause(int argc, char **argv) {
|
|
540
|
+
|
|
541
|
+
consume_pause();
|
|
542
|
+
consume_pause_resume_after_reassign();
|
|
543
|
+
consume_subscribe_assign_pause_resume();
|
|
544
|
+
consume_seek_pause_resume();
|
|
545
|
+
|
|
546
|
+
return 0;
|
|
547
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* librdkafka - Apache Kafka C library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2012-2022, Magnus Edenhill
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following conditions are met:
|
|
9
|
+
*
|
|
10
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
11
|
+
* this list of conditions and the following disclaimer.
|
|
12
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
* and/or other materials provided with the distribution.
|
|
15
|
+
*
|
|
16
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
19
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
20
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
#include "test.h"
|
|
30
|
+
|
|
31
|
+
/* Typical include path would be <librdkafka/rdkafka.h>, but this program
|
|
32
|
+
* is built from within the librdkafka source tree and thus differs. */
|
|
33
|
+
#include "rdkafka.h" /* for Kafka driver */
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Test long topic names (>=255 characters), issue #529.
|
|
38
|
+
* This broker-side issue only seems to occur when explicitly creating
|
|
39
|
+
* topics with kafka-topics.sh --create, not with auto-created topics.
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
int main_0028_long_topicnames(int argc, char **argv) {
|
|
44
|
+
const int msgcnt = 1000;
|
|
45
|
+
uint64_t testid;
|
|
46
|
+
char topic[256];
|
|
47
|
+
rd_kafka_t *rk_c;
|
|
48
|
+
|
|
49
|
+
if (!test_can_create_topics(1))
|
|
50
|
+
return 0;
|
|
51
|
+
|
|
52
|
+
memset(topic, 'a', sizeof(topic) - 1);
|
|
53
|
+
topic[sizeof(topic) - 1] = '\0';
|
|
54
|
+
|
|
55
|
+
strncpy(topic, test_mk_topic_name(topic, 1), sizeof(topic) - 1);
|
|
56
|
+
|
|
57
|
+
TEST_SAY("Using topic name of %d bytes: %s\n", (int)strlen(topic),
|
|
58
|
+
topic);
|
|
59
|
+
|
|
60
|
+
/* First try a non-verifying consumer. The consumer has been known
|
|
61
|
+
* to crash when the broker bug kicks in. */
|
|
62
|
+
rk_c = test_create_consumer(topic, NULL, NULL, NULL);
|
|
63
|
+
|
|
64
|
+
/* Create topic */
|
|
65
|
+
test_create_topic_wait_exists(rk_c, topic, 1, 1, 5000);
|
|
66
|
+
|
|
67
|
+
test_consumer_subscribe(rk_c, topic);
|
|
68
|
+
test_consumer_poll_no_msgs("consume.nomsgs", rk_c, 0, 5000);
|
|
69
|
+
test_consumer_close(rk_c);
|
|
70
|
+
|
|
71
|
+
/* Produce messages */
|
|
72
|
+
testid =
|
|
73
|
+
test_produce_msgs_easy(topic, 0, RD_KAFKA_PARTITION_UA, msgcnt);
|
|
74
|
+
|
|
75
|
+
/* Consume messages */
|
|
76
|
+
test_consume_msgs_easy(NULL, topic, testid, -1, msgcnt, NULL);
|
|
77
|
+
|
|
78
|
+
return 0;
|
|
79
|
+
}
|