[Xapian-tickets] [Xapian] #713: valgrind leak checking false positives on OS X 10.11
Xapian
nobody at xapian.org
Fri Feb 15 06:17:19 GMT 2019
#713: valgrind leak checking false positives on OS X 10.11
------------------------+-------------------------------
Reporter: Kronuz | Owner: olly
Type: defect | Status: reopened
Priority: normal | Milestone:
Component: Test Suite | Version: git master
Severity: normal | Resolution:
Keywords: | Blocked By:
Blocking: | Operating System: Mac OS X
------------------------+-------------------------------
Comment (by olly):
Using travis-ci (by just adding `valgrind` to the list of homebrew
packages to install) I tested on macOS 10.13.3 with valgrind 3.14.0 and
there are multiple issues reported for the first testcase tried (which is
not a complex testcase):
{{{
Running test './apitest' under valgrind
warning: no debug symbols in executable (-arch x86_64)
warning: no debug symbols in executable (-arch x86_64)
Running tests with backend "honey"...
Running test: zerodocid1...==33750== Conditional jump or move depends on
uninitialised value(s)
==33750== at 0x100E76F86: ccaes_vng_ctr_crypt (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7AE00: bcc_update (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7AEA4: df_bcc_update (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7AA8D: df (in /usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A6A9: nistctr_init (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A0F3: init (in /usr/lib/system/libcorecrypto.dylib)
==33750== by 0x101027E5A: arc4_init (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x101027F78: arc4random_buf (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x1010130CC: uuid_generate_random (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x10084FE9D: Uuid::generate() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100931517: GlassVersion::create(unsigned int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975BE: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750==
==33750== Conditional jump or move depends on uninitialised value(s)
==33750== at 0x100E76F86: ccaes_vng_ctr_crypt (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7AE00: bcc_update (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7AF34: df_bcc_update (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7AA8D: df (in /usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A6A9: nistctr_init (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A0F3: init (in /usr/lib/system/libcorecrypto.dylib)
==33750== by 0x101027E5A: arc4_init (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x101027F78: arc4random_buf (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x1010130CC: uuid_generate_random (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x10084FE9D: Uuid::generate() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100931517: GlassVersion::create(unsigned int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975BE: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750==
==33750== Conditional jump or move depends on uninitialised value(s)
==33750== at 0x100E76F86: ccaes_vng_ctr_crypt (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7AE00: bcc_update (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7AAE6: df (in /usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A6A9: nistctr_init (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A0F3: init (in /usr/lib/system/libcorecrypto.dylib)
==33750== by 0x101027E5A: arc4_init (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x101027F78: arc4random_buf (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x1010130CC: uuid_generate_random (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x10084FE9D: Uuid::generate() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100931517: GlassVersion::create(unsigned int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975BE: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100896473:
GlassDatabase::GlassDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750==
==33750== Conditional jump or move depends on uninitialised value(s)
==33750== at 0x100E76F86: ccaes_vng_ctr_crypt (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7ABA8: df (in /usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A6A9: nistctr_init (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A0F3: init (in /usr/lib/system/libcorecrypto.dylib)
==33750== by 0x101027E5A: arc4_init (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x101027F78: arc4random_buf (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x1010130CC: uuid_generate_random (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x10084FE9D: Uuid::generate() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100931517: GlassVersion::create(unsigned int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975BE: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100896473:
GlassDatabase::GlassDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A236D:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750==
==33750== Conditional jump or move depends on uninitialised value(s)
==33750== at 0x100E7AD34: drbg_update (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A722: nistctr_init (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A0F3: init (in /usr/lib/system/libcorecrypto.dylib)
==33750== by 0x101027E5A: arc4_init (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x101027F78: arc4random_buf (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x1010130CC: uuid_generate_random (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x10084FE9D: Uuid::generate() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100931517: GlassVersion::create(unsigned int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975BE: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100896473:
GlassDatabase::GlassDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A236D:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A2538:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750==
==33750== Conditional jump or move depends on uninitialised value(s)
==33750== at 0x100E76F86: ccaes_vng_ctr_crypt (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A296: generate (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x101027FE3: arc4random_buf (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x1010130CC: uuid_generate_random (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x10084FE9D: Uuid::generate() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100931517: GlassVersion::create(unsigned int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975BE: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100896473:
GlassDatabase::GlassDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A236D:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A2538:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100845596:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100849648:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750==
==33750== Conditional jump or move depends on uninitialised value(s)
==33750== at 0x100E76F86: ccaes_vng_ctr_crypt (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7ACB7: drbg_update (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A2E1: generate (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x101027FE3: arc4random_buf (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x1010130CC: uuid_generate_random (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x10084FE9D: Uuid::generate() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100931517: GlassVersion::create(unsigned int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975BE: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100896473:
GlassDatabase::GlassDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A236D:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A2538:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100845596:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750==
==33750== Conditional jump or move depends on uninitialised value(s)
==33750== at 0x100E7ACD4: drbg_update (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A2E1: generate (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x101027FE3: arc4random_buf (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x1010130CC: uuid_generate_random (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x10084FE9D: Uuid::generate() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100931517: GlassVersion::create(unsigned int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975BE: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100896473:
GlassDatabase::GlassDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A236D:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A2538:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100845596:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100849648:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750==
==33750== Conditional jump or move depends on uninitialised value(s)
==33750== at 0x100E7AD34: drbg_update (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x100E7A2E1: generate (in
/usr/lib/system/libcorecrypto.dylib)
==33750== by 0x101027FE3: arc4random_buf (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x1010130CC: uuid_generate_random (in
/usr/lib/system/libsystem_c.dylib)
==33750== by 0x10084FE9D: Uuid::generate() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100931517: GlassVersion::create(unsigned int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975BE: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100896473:
GlassDatabase::GlassDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A236D:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A2538:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100845596:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100849648:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750==
==33750== Syscall param write(buf) points to uninitialised byte(s)
==33750== at 0x1012F79D2: write (in
/usr/lib/system/libsystem_kernel.dylib)
==33750== by 0x100AAABD0: io_write(int, char const*, unsigned long) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x10093084C: GlassVersion::write(unsigned int, int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975F6: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100896473:
GlassDatabase::GlassDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A236D:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A2538:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100845596:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100849648:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x10053AA20:
BackendManagerHoney::do_get_database_path(std::__1::vector<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >,
std::__1::allocator<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) (in
/Users/travis/build/ojwb/xapian/xapian-core/tests/.libs/apitest)
==33750== by 0x10050E1A4:
BackendManager::do_get_database(std::__1::vector<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >,
std::__1::allocator<std::_s/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975F6: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100896473:
GlassDatabase::GlassDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A236D:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A2538:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100845596:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750==
==33750== Syscall param write(buf) points to uninitialised byte(s)
==33750== at 0x1012F79D2: write (in
/usr/lib/system/libsystem_kernel.dylib)
==33750== by 0x100AAABD0: io_write(int, char const*, unsigned long) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x10093084C: GlassVersion::write(unsigned int, int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x10089AE5D: GlassDatabase::set_revision_number(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x10089F7BC: GlassDatabase::apply() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A29FD: GlassWritableDatabase::apply() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A2900: GlassWritableDatabase::commit() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x10072965C: Xapian::WritableDatabase::commit() (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x10053AA8C:
BackendManagerHoney::do_get_database_path(std::__1::vector<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >,
std::__1::allocator<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) (in
/Users/travis/build/ojwb/xapian/xapian-core/tests/.libs/apitest)
==33750== by 0x10050E1A4:
BackendManager::do_get_database(std::__1::vector<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >,
std::__1::allocator<std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) (in
/Users/travis/build/ojwb/xapian/xapian-core/tests/.libs/apitest)
==33750== by 0x10050E291:
BackendManager::get_database(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&) (in
/Users/tra.dylib)
==33750== by 0x100F07AB3: libdispatch_init (in
/usr/lib/system/libdispatch.dylib)
==33750== by 0x100E179C2: libSystem_initializer (in
/usr/lib/libSystem.B.dylib)
==33750== by 0x100671A09:
ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in
/usr/lib/dyld)
==33750== by 0x100671C39:
ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in
/usr/lib/dyld)
==33750==
==33750== 104 (32 direct, 72 indirect) bytes in 1 blocks are definitely
lost in loss record 73 of 96
==33750== at 0x1007042FE: malloc_zone_malloc (in
/usr/local/Cellar/valgrind/3.14.0/lib/valgrind/vgpreload_memcheck-
amd64-darwin.so)
750== by 0x100931517: GlassVersion::create(unsigned int) (in
/Users/travis/build/ojwb/xapian/xapian-core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008975BE: GlassDatabase::create_and_open_tables(int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100896473:
GlassDatabase::GlassDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int,
unsigned int) (in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A236D:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x1008A2538:
GlassWritableDatabase::GlassWritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100845596:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750== by 0x100849648:
Xapian::WritableDatabase::WritableDatabase(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, int)
(in /Users/travis/build/ojwb/xapian/xapian-
core/.libs/libxapian-1.5.0.dylib)
==33750==
==33750== 3,264 bytes in 51 blocks are definitely lost in loss
}}}
It seems that valgrind support for recent macOS is too poor to be
automatically enabling, and this isn't some transient situation as it
seems to have been problematic for close to 3 years, perhaps more.
I'm thinking we should just adjust `configure.ac` so that on macOS the
default is to not use valgrind (and people can use `./configure
VALGRIND=valgrind` if the really want to enable it).
Perhaps we should change that default for all platforms - ubsan and asan
cover much of what valgrind can do with significantly less overhead. It's
annoying that memsan is hard to use for C++ code (you need to recompile
the standard C library with memsan for it to work usefully). The main
thing we get with valgrind alone is per test-case leak checking due to
integration into our test harness. Most such leaks will be the same on
macOS and Linux at least.
--
Ticket URL: <https://trac.xapian.org/ticket/713#comment:11>
Xapian <https://xapian.org/>
Xapian
More information about the Xapian-tickets
mailing list