[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