cpp-samples icon indicating copy to clipboard operation
cpp-samples copied to clipboard

Fix avro_read segfault

Open alevenberg opened this issue 1 year ago • 3 comments

Current behavior:

❯ .build/avro_read alevenb-test usa_names top10_names [1] 1002898 segmentation fault .build/avro_read alevenb-test usa_names top10_names

GDB shows:


Thread 1 "avro_read" received signal SIGSEGV, Segmentation fault.
0x0000000000000040 in ?? ()
(gdb) bt
#0  0x0000000000000040 in ?? ()
#1  0x00005555556af4c7 in avro::GenericDatum* std::__do_uninit_copy<__gnu_cxx::__normal_iterator<avro::GenericDatum const*, std::vector<avro::GenericDatum, std::allocator<avro::GenericDatum> > >, avro::GenericDatum*>(__gnu_cxx::__normal_iterator<avro::GenericDatum const*, std::vector<avro::GenericDatum, std::allocator<avro::GenericDatum> > >, __gnu_cxx::__normal_iterator<avro::GenericDatum const*, std::vector<avro::GenericDatum, std::allocator<avro::GenericDatum> > >, avro::GenericDatum*) ()
#2  0x00005555556c8109 in avro::makeRecordNode(avro::json::Entity const&, avro::Name const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, avro::json::Entity, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::alloc--Type <RET> for more, q to quit, c to continue without paging--
ator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, avro::json::Entity> > > const&, std::map<avro::Name, std::shared_ptr<avro::Node>, std::less<avro::Name>, std::allocator<std::pair<avro::Name const, std::shared_ptr<avro::Node> > > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#3  0x00005555556c9517 in avro::makeNode(avro::json::Entity const&, std::map<avro::Name, std::shared_ptr<avro::Node>, std::less<avro::Name>, std::allocator<std::pair<avro::Name const, std::shared_ptr<avro::Node> > > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#4  0x00005555556ca9d6 in avro::compileJsonSchemaFromStream(avro::InputStream&) ()
#5  0x00005555556cac52 in avro::compileJsonSchema(std::istream&, avro::ValidSchema&) ()
--Type <RET> for more, q to quit, c to continue without paging--
#6  0x00005555556a83bb in main ()
(gdb) 

alevenberg avatar Jun 03 '24 19:06 alevenberg

Sorry, I didn't have time to work on this :(

Unassigning

alevenberg avatar Jun 20 '24 20:06 alevenberg

https://stackoverflow.com/questions/78556922/apache-avro-c-seg-fault

cuiy0006 avatar Sep 03 '24 20:09 cuiy0006

I am testing with avro-cpp 1.11.3. Compiling with c++14 also requires boost dependencies.

I can reproduce this segfault on both c++14 and c++17.

I also tried to load a very simple json from file, but got similar segfault.

cuiy0006 avatar Sep 04 '24 15:09 cuiy0006